Update workflow

This commit is contained in:
Accelerator 2024-05-07 22:55:15 +03:00
parent c7ee545ce9
commit 5b19701a0e
7 changed files with 66 additions and 149 deletions

View File

@ -1,4 +1,4 @@
name: l4d2-build name: build
on: on:
push: push:
@ -59,23 +59,6 @@ jobs:
echo "CC=clang" >> $GITHUB_ENV echo "CC=clang" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV echo "CXX=clang++" >> $GITHUB_ENV
- name: Add msbuild to PATH (Windows)
if: startsWith(runner.os, 'Windows')
uses: microsoft/setup-msbuild@v2
- name: Install (Windows)
if: startsWith(runner.os, 'Windows')
shell: cmd
run: |
:: See https://github.com/microsoft/vswhere/wiki/Find-VC
for /f "usebackq delims=*" %%i in (`vswhere -latest -property installationPath`) do (
call "%%i"\Common7\Tools\vsdevcmd.bat -arch=x86 -host_arch=x64
)
:: Loop over all environment variables and make them global.
for /f "delims== tokens=1,2" %%a in ('set') do (
echo>>"%GITHUB_ENV%" %%a=%%b
)
- name: Checking out MM:Source - name: Checking out MM:Source
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
@ -91,7 +74,14 @@ jobs:
- name: Setting up ambuild - name: Setting up ambuild
run: | run: |
python -m pip install wheel python -m pip install wheel
pip install git+https://github.com/accelerator74/ambuild pip install git+https://github.com/accelerator74/ambuild@nog3
- name: Checking out hl2sdk-l4d
uses: actions/checkout@v4
with:
repository: alliedmodders/hl2sdk
ref: l4d
path: hl2sdk-l4d
- name: Checking out hl2sdk-l4d2 - name: Checking out hl2sdk-l4d2
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -105,16 +95,63 @@ jobs:
with: with:
path: src path: src
- name: Compiling ${{ github.event.repository.name }} files - name: Compiling ${{ github.event.repository.name }}-l4d files
shell: bash
working-directory: src working-directory: src
run: | run: |
mkdir build mkdir build_l4d
cd build cd build_l4d
python ../configure.py --enable-optimize --sdks="l4d" --mms-path="${{ github.workspace }}/metamod-${{ matrix.mm_version }}"
ambuild
- name: Compiling ${{ github.event.repository.name }}-l4d2 files
shell: bash
working-directory: src
run: |
mkdir build_l4d2
cd build_l4d2
python ../configure.py --enable-optimize --sdks="l4d2" --mms-path="${{ github.workspace }}/metamod-${{ matrix.mm_version }}" python ../configure.py --enable-optimize --sdks="l4d2" --mms-path="${{ github.workspace }}/metamod-${{ matrix.mm_version }}"
ambuild ambuild
- name: Uploading package - name: Uploading l4d package
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}-l4d-${{ matrix.os_short }}-${{ env.GITHUB_SHA_SHORT }}
path: src/build_l4d/package
- name: Uploading l4d2 package
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ github.event.repository.name }}-l4d2-${{ matrix.os_short }}-${{ env.GITHUB_SHA_SHORT }} name: ${{ github.event.repository.name }}-l4d2-${{ matrix.os_short }}-${{ env.GITHUB_SHA_SHORT }}
path: src/build/package path: src/build_l4d2/package
release:
name: Release
if: startsWith(github.ref, 'refs/tags/')
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Package
run: |
version=`echo $GITHUB_REF | sed "s/refs\/tags\///"`
ls -Rall
for folder in ${{ github.event.repository.name }}*; do
if [ -d "$folder" ]; then
echo "Processing folder: $folder"
cd $folder
tar -czf ../$folder.tar.gz -T <(\ls -1)
cd ..
fi
done
- name: Release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: '*.tar.gz'
tag: ${{ github.ref }}
file_glob: true

View File

@ -1,120 +0,0 @@
name: l4d-build
on:
push:
branches:
- main
- master
tags:
- '*'
paths-ignore:
- LICENSE
- README.md
pull_request:
branches:
- main
- master
paths-ignore:
- LICENSE
- README.md
schedule:
- cron: '30 03 01 */3 *' # Artifacts expire every 3 months
jobs:
build:
name: build with mms${{ matrix.mm_version }} on ${{ matrix.os_short }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
mm_version:
- "master"
include:
- mm_version: "master"
mm_branch: "master"
- os: ubuntu-latest
os_short: linux
- os: windows-latest
os_short: win
steps:
- name: Prepare env
shell: bash
run: |
echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Install (Linux)
if: startsWith(runner.os, 'Linux')
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y clang g++-multilib
echo "CC=clang" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV
- name: Add msbuild to PATH (Windows)
if: startsWith(runner.os, 'Windows')
uses: microsoft/setup-msbuild@v2
- name: Install (Windows)
if: startsWith(runner.os, 'Windows')
shell: cmd
run: |
:: See https://github.com/microsoft/vswhere/wiki/Find-VC
for /f "usebackq delims=*" %%i in (`vswhere -latest -property installationPath`) do (
call "%%i"\Common7\Tools\vsdevcmd.bat -arch=x86 -host_arch=x64
)
:: Loop over all environment variables and make them global.
for /f "delims== tokens=1,2" %%a in ('set') do (
echo>>"%GITHUB_ENV%" %%a=%%b
)
- name: Checking out MM:Source
uses: actions/checkout@v4
with:
repository: alliedmodders/metamod-source
ref: ${{ matrix.mm_branch }}
path: metamod-${{ matrix.mm_version }}
- name: Setting up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Setting up ambuild
run: |
python -m pip install wheel
pip install git+https://github.com/accelerator74/ambuild
- name: Checking out hl2sdk-l4d
uses: actions/checkout@v4
with:
repository: alliedmodders/hl2sdk
ref: l4d
path: hl2sdk-l4d
- name: Checking out own repository
uses: actions/checkout@v4
with:
path: src
- name: Compiling ${{ github.event.repository.name }} files
working-directory: src
run: |
mkdir build
cd build
python ../configure.py --enable-optimize --sdks="l4d" --mms-path="${{ github.workspace }}/metamod-${{ matrix.mm_version }}"
ambuild
- name: Uploading package
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}-l4d-${{ matrix.os_short }}-${{ env.GITHUB_SHA_SHORT }}
path: src/build/package

View File

@ -14,7 +14,7 @@ builder.options.add_option('--enable-debug', action='store_const', const='1', de
help='Enable debugging symbols') help='Enable debugging symbols')
builder.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt', builder.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt',
help='Enable optimization') help='Enable optimization')
builder.options.add_option('-s', '--sdks', default='all', dest='sdks', builder.options.add_option('-s', '--sdks', default='present', dest='sdks',
help='Build against specified SDKs; valid args are "all", "present", or ' help='Build against specified SDKs; valid args are "all", "present", or '
'comma-delimited list of engine names (default: %default)') 'comma-delimited list of engine names (default: %default)')

View File

@ -3,7 +3,7 @@
const char* engine_dll = "engine.so"; const char* engine_dll = "engine.so";
int slots_offs = 94; // m_numGameSlots (in CGameServer::ExecGameTypeCfg) int slots_offs = 94; // m_numGameSlots (in CGameServer::ExecGameTypeCfg)
int reserved_offs = 360; // IsReserved() (in CBaseServer::ReplyReservationRequest) int reserved_offs = 360; // m_nReservationCookie (in CBaseServer::ReplyReservationRequest)
int reservation_idx = 60; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable int reservation_idx = 60; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable
int maxhuman_idx = 132; // CTerrorGameRules::GetMaxHumanPlayers vtable int maxhuman_idx = 132; // CTerrorGameRules::GetMaxHumanPlayers vtable

View File

@ -3,7 +3,7 @@
int sv_offs = 6; // IServer pointer (in IVEngineServer::CreateFakeClient) int sv_offs = 6; // IServer pointer (in IVEngineServer::CreateFakeClient)
int slots_offs = 96; // m_numGameSlots (in CGameServer::ExecGameTypeCfg) int slots_offs = 96; // m_numGameSlots (in CGameServer::ExecGameTypeCfg)
int reserved_offs = 46; // IsReserved() (in CBaseServer::ReplyReservationRequest) int reserved_offs = 46; // m_nReservationCookie (in CBaseServer::ReplyReservationRequest)
int reservation_idx = 59; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable int reservation_idx = 59; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable
int maxhuman_idx = 131; // CTerrorGameRules::GetMaxHumanPlayers vtable int maxhuman_idx = 131; // CTerrorGameRules::GetMaxHumanPlayers vtable

View File

@ -3,7 +3,7 @@
const char* engine_dll = "engine_srv.so"; const char* engine_dll = "engine_srv.so";
int slots_offs = 95; // m_numGameSlots (in CGameServer::ExecGameTypeCfg) int slots_offs = 95; // m_numGameSlots (in CGameServer::ExecGameTypeCfg)
int reserved_offs = 364; // IsReserved() (in CBaseServer::ReplyReservationRequest) int reserved_offs = 364; // m_nReservationCookie (in CBaseServer::ReplyReservationRequest)
int reservation_idx = 62; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable int reservation_idx = 62; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable
int maxhuman_idx = 137; // CTerrorGameRules::GetMaxHumanPlayers vtable int maxhuman_idx = 137; // CTerrorGameRules::GetMaxHumanPlayers vtable

View File

@ -3,7 +3,7 @@
int sv_offs = 8; // IServer pointer (in IVEngineServer::CreateFakeClient) int sv_offs = 8; // IServer pointer (in IVEngineServer::CreateFakeClient)
int slots_offs = 96; // m_numGameSlots (in CGameServer::ExecGameTypeCfg) int slots_offs = 96; // m_numGameSlots (in CGameServer::ExecGameTypeCfg)
int reserved_offs = 46; // IsReserved() (in CBaseServer::ReplyReservationRequest) int reserved_offs = 46; // m_nReservationCookie (in CBaseServer::ReplyReservationRequest)
int reservation_idx = 61; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable int reservation_idx = 61; // CBaseServer::ReplyReservationRequest(netadr_s&, bf_read&) vtable
int maxhuman_idx = 136; // CTerrorGameRules::GetMaxHumanPlayers vtable int maxhuman_idx = 136; // CTerrorGameRules::GetMaxHumanPlayers vtable