Andrey Akhmichin
2 years ago
17 changed files with 206 additions and 50 deletions
@ -0,0 +1,113 @@
@@ -0,0 +1,113 @@
|
||||
name: manual build |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
inputs: |
||||
buildtype: |
||||
type: choice |
||||
description: Build Type |
||||
options: |
||||
- Release |
||||
- Debug |
||||
usevgui: |
||||
type: choice |
||||
description: Use VGUI |
||||
options: |
||||
- 'OFF' |
||||
- 'ON' |
||||
jobs: |
||||
build: |
||||
runs-on: ${{ matrix.os }} |
||||
strategy: |
||||
matrix: |
||||
include: |
||||
- os: ubuntu-latest |
||||
cc: gcc |
||||
cxx: g++ |
||||
- os: windows-2019 |
||||
cc: cl |
||||
cxx: cl |
||||
env: |
||||
CC: ${{ matrix.cc }} |
||||
CXX: ${{ matrix.cxx }} |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v2 |
||||
with: |
||||
submodules: recursive |
||||
|
||||
- name: Checkout steam-runtime |
||||
if: startsWith(matrix.os, 'ubuntu') |
||||
uses: actions/checkout@v2 |
||||
with: |
||||
repository: ValveSoftware/steam-runtime |
||||
path: steam-runtime |
||||
- name: Cache steam-runtime |
||||
if: startsWith(matrix.os, 'ubuntu') |
||||
id: cache-steam-runtime |
||||
uses: actions/cache@v2 |
||||
with: |
||||
path: com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz |
||||
key: ${{ runner.os }}-steam-runtime |
||||
- name: Download steam-runtime |
||||
if: startsWith(matrix.os, 'ubuntu') && steps.cache-steam-runtime.outputs.cache-hit != 'true' |
||||
run: wget --no-verbose https://repo.steampowered.com/steamrt-images-scout/snapshots/0.20210610.0/com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz |
||||
- name: Install steam runtime |
||||
if: startsWith(matrix.os, 'ubuntu') |
||||
run: | |
||||
sudo apt update |
||||
./steam-runtime/setup_chroot.sh --i386 --tarball ./com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz |
||||
sudo sed -i 's/groups=sudo/groups=adm/g' /etc/schroot/chroot.d/steamrt_scout_i386.conf |
||||
|
||||
- name: Copy vgui.so |
||||
if: ${{ startsWith(matrix.os, 'ubuntu') && github.event.inputs.usevgui == 'ON' }} |
||||
run: | |
||||
mkdir -p build/cl_dll |
||||
cp vgui_support/vgui-dev/lib/vgui.so build/cl_dll |
||||
- name: Build on Linux |
||||
if: startsWith(matrix.os, 'ubuntu') |
||||
run: | |
||||
schroot --chroot steamrt_scout_i386 -- cmake -B build -S . -DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined" -DCMAKE_BUILD_TYPE=${{ github.event.inputs.buildtype }} -DCMAKE_INSTALL_PREFIX="$PWD/dist" -DUSE_VGUI=${{ github.event.inputs.usevgui }} |
||||
schroot --chroot steamrt_scout_i386 -- cmake --build build --target all |
||||
schroot --chroot steamrt_scout_i386 -- cmake --build build --target install |
||||
|
||||
- name: Add msbuild to PATH |
||||
if: startsWith(matrix.os, 'windows') |
||||
uses: microsoft/setup-msbuild@v1.0.2 |
||||
- name: Build on Windows |
||||
if: startsWith(matrix.os, 'windows') |
||||
run: | |
||||
cmake -G "Visual Studio 16 2019" -A Win32 -B build -DCMAKE_INSTALL_PREFIX="dist" -DUSE_VGUI=${{ github.event.inputs.usevgui }} |
||||
msbuild -verbosity:normal /property:Configuration=${{ github.event.inputs.buildtype }} build/INSTALL.vcxproj |
||||
|
||||
- name: Extract branch name |
||||
shell: bash |
||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/} | tr '/' '_')" |
||||
id: extract_branch |
||||
- name: Extract gamedir |
||||
shell: bash |
||||
run: echo "##[set-output name=gamedir;]$(grep build/CMakeCache.txt -Ee 'GAMEDIR:STRING=[a-z]+' | cut -d '=' -f 2)" |
||||
id: extract_gamedir |
||||
- name: Copy pdbs to dist dir |
||||
if: ${{ startsWith(matrix.os, 'windows') && github.event.inputs.buildtype == 'Debug' }} |
||||
run: | |
||||
copy build/cl_dll/Debug/client.pdb dist/${{ steps.extract_gamedir.outputs.gamedir }}/cl_dlls/ |
||||
copy build/dlls/Debug/hl.pdb dist/${{ steps.extract_gamedir.outputs.gamedir }}/dlls/ |
||||
- name: Delete .lib files from dist |
||||
if: startsWith(matrix.os, 'windows') |
||||
run: | |
||||
Remove-Item -Force -Path dist/${{ steps.extract_gamedir.outputs.gamedir }}/cl_dlls/client.lib |
||||
Remove-Item -Force -Path dist/${{ steps.extract_gamedir.outputs.gamedir }}/dlls/hl.lib |
||||
- name: Upload linux artifact |
||||
if: startsWith(matrix.os, 'ubuntu') |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-linux |
||||
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} |
||||
- name: Upload windows artifact |
||||
if: startsWith(matrix.os, 'windows') |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: hlsdk-${{ steps.extract_branch.outputs.branch }}-windows |
||||
path: dist/${{ steps.extract_gamedir.outputs.gamedir }} |
||||
|
Loading…
Reference in new issue