Initial commit
This commit is contained in:
commit
3dd53cf457
105 changed files with 35670 additions and 0 deletions
133
.github/workflows/main.yml
vendored
Normal file
133
.github/workflows/main.yml
vendored
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
name: Continuous Integration
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
name: Build on Linux via Docker Compose
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build plugin inside container
|
||||
run: docker compose -f docker/docker-compose.yml up --build --abort-on-container-exit
|
||||
|
||||
- name: Upload Linux artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: TemplatePlugin-linux
|
||||
path: build/addons
|
||||
|
||||
build-windows:
|
||||
name: Build on Windows (MSVC)
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Prepare SDK directory
|
||||
shell: powershell
|
||||
run: |
|
||||
$SDK = "C:\sdk"
|
||||
$HL2SDK = "$SDK\hl2sdk-cs2"
|
||||
$MMS = "$SDK\metamod-source"
|
||||
$PROTO = "$SDK\Protobufs"
|
||||
|
||||
if (Test-Path $SDK) { Remove-Item $SDK -Recurse -Force }
|
||||
New-Item -ItemType Directory -Path $SDK | Out-Null
|
||||
|
||||
Write-Host "=== Downloading HL2SDK-CS2 ==="
|
||||
git clone --depth=1 -b cs2 https://github.com/alliedmodders/hl2sdk $HL2SDK
|
||||
|
||||
Write-Host "=== Downloading Metamod-Source ==="
|
||||
git clone --depth=1 https://github.com/alliedmodders/metamod-source $MMS
|
||||
|
||||
Write-Host "=== Downloading Protobufs ==="
|
||||
git clone --depth=1 https://github.com/SteamDatabase/Protobufs $PROTO
|
||||
|
||||
$HL2SDK_UNIX = $HL2SDK.Replace("\", "/")
|
||||
$MMS_UNIX = $MMS.Replace("\", "/")
|
||||
$PROTO_UNIX = "$($PROTO.Replace('\','/'))/csgo"
|
||||
|
||||
echo "HL2SDKCS2=$HL2SDK_UNIX" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
echo "MMSOURCE_DEV=$MMS_UNIX" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
echo "CSGO_PROTO=$PROTO_UNIX" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
|
||||
Write-Host "Using HL2SDKCS2=$HL2SDK_UNIX"
|
||||
Write-Host "Using MMSOURCE_DEV=$MMS_UNIX"
|
||||
Write-Host "Using CSGO_PROTO=$PROTO_UNIX"
|
||||
|
||||
- name: Configure + Build with MSVC
|
||||
shell: cmd
|
||||
run: |
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
cmake -S . -B build -A x64 -DCMAKE_BUILD_TYPE=Release ^
|
||||
-DHL2SDKCS2=%HL2SDKCS2% -DMMSOURCE_DEV=%MMSOURCE_DEV% -DCSGO_PROTO=%CSGO_PROTO%
|
||||
cmake --build build --config Release --target TemplatePlugin
|
||||
|
||||
- name: Strip symbols (Windows)
|
||||
run: |
|
||||
llvm-strip build/Release/TemplatePlugin.dll
|
||||
|
||||
- name: Copy addons structure
|
||||
run: |
|
||||
mkdir -p build/addons/TemplatePlugin/bin/win64
|
||||
copy build/Release/TemplatePlugin.dll build/addons/TemplatePlugin/bin/win64/
|
||||
|
||||
- name: Upload Windows artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: TemplatePlugin-wwindows
|
||||
path: build/addons
|
||||
|
||||
release:
|
||||
name: Release
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
needs: [build-linux, build-windows]
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Download Linux artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: TemplatePlugin-linux
|
||||
path: ./build/linux
|
||||
|
||||
- name: Download Windows artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: TemplatePlugin-windows
|
||||
path: ./build/windows
|
||||
|
||||
- name: Archive packages
|
||||
run: |
|
||||
version="${GITHUB_REF#refs/tags/}"
|
||||
tar -czf TemplatePlugin-${version}-linux.tar.gz -C build/linux .
|
||||
tar -czf TemplatePlugin-${version}-windows.tar.gz -C build/windows .
|
||||
|
||||
- name: Upload release archive
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: TemplatePlugin-*.tar.gz
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
release_name: "${{ github.ref_name }} - Download"
|
||||
Loading…
Add table
Add a link
Reference in a new issue