Skip to content

Implement a more robust cleanup strategy #70

Implement a more robust cleanup strategy

Implement a more robust cleanup strategy #70

Workflow file for this run

name: Build gFwens (pull request)
on:
pull_request:
paths-ignore:
- "README.md"
- 'examples/**'
- ".gitignore"
- ".github/workflows/build-master.yml"
env:
STEAMWORKS_LIB_BASEDIR: "./deps"
jobs:
fetch-dependencies:
runs-on: ubuntu-latest
env:
STEAMWORKS_URL: ${{ secrets.STEAMWORKS_SDK_URL }}
STEAMWORKS_SDK_URL_150: ${{ secrets.STEAMWORKS_SDK_URL_150 }}
steps:
- run: |
wget https://github.com/premake/premake-core/releases/download/v5.0.0-alpha15/premake-5.0.0-alpha15-windows.zip -qO- | busybox unzip -
wget $STEAMWORKS_URL -qO- | busybox unzip -
wget https://github.com/premake/premake-core/releases/download/v5.0.0-alpha15/premake-5.0.0-alpha15-linux.tar.gz -qO- | tar zxf -
- uses: actions/upload-artifact@v4
with:
name: premake-persistence
path: ./premake*
- uses: actions/upload-artifact@v4
with:
name: sdk-persistence-32
path: ./sdk*
# Dealing with the difference in the x64 steamworks requirements
- run: |
rm -R ./sdk
wget $STEAMWORKS_SDK_URL_150 -qO- | busybox unzip -
- uses: actions/upload-artifact@v4
with:
name: sdk-persistence-64
path: ./sdk*
###
build-win:
runs-on: windows-2019
needs: fetch-dependencies
strategy:
matrix:
arch: [32, 64]
steps:
- uses: actions/checkout@v4
with:
repository: facepunch/gmod-module-base
ref: refs/heads/development
path: gmodheaders
- uses: actions/checkout@v4
with:
path: gfwens
- uses: actions/download-artifact@v4
with:
name: premake-persistence
path: gfwens
- uses: actions/download-artifact@v4
with:
name: sdk-persistence-64
path: gfwens/deps
- uses: microsoft/setup-msbuild@v2
# Dumb way of doing this but oh well. Saves fight premake on this.
- name: "Compile Binary"
if: ${{ matrix.arch == 64 }}
run: |
cd gfwens
./premake5.exe vs2019
MSBuild.exe /p:Configuration=Release /property:Platform=x${{matrix.arch}}
- name: "Compile Binary"
if: ${{ matrix.arch != 64 }}
run: |
cd gfwens
./premake5.exe vs2019
MSBuild.exe /p:Configuration=Release
- uses: actions/upload-artifact@v4
with:
name: gmsv_fwens_win${{matrix.arch}}.dll
path: gfwens\bin\release\gmsv_fwens_win${{matrix.arch}}.dll
###
build-linux:
runs-on: ubuntu-latest
needs: fetch-dependencies
strategy:
matrix:
arch: [32, 64]
steps:
- uses: actions/checkout@v4
with:
repository: facepunch/gmod-module-base
ref: refs/heads/development
path: gmodheaders
- uses: actions/checkout@v4
with:
path: gfwens
- uses: actions/download-artifact@v4
with:
name: premake-persistence
path: gfwens
- uses: actions/download-artifact@v4
with:
name: sdk-persistence-64
path: gfwens/deps
- name: "Compile Binary"
run: |
sudo apt update && sudo apt install gcc-multilib g++-multilib -y
cd gfwens
chmod +x ./premake5
./premake5 gmake2
make config=release_x${{matrix.arch}}
- uses: actions/upload-artifact@v4
if: ${{ matrix.arch != 64 }}
with:
name: gmsv_fwens_linux.dll
path: gfwens/bin/release/gmsv_fwens_linux.dll
release:
name: Build Cleanup
runs-on: ubuntu-latest
if: always()
needs: [build-linux, build-win]
steps:
- uses: geekyeggo/delete-artifact@v5
with:
name: |
premake-persistence
sdk-persistence-32
sdk-persistence-64