From 78b5b359859556e66104a5c541c9048e7cc356c8 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 12:25:34 -0500 Subject: [PATCH 01/46] Create mapbase_msbuild.yml Originally created by z33ky --- .github/workflows/mapbase_msbuild.yml | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/mapbase_msbuild.yml diff --git a/.github/workflows/mapbase_msbuild.yml b/.github/workflows/mapbase_msbuild.yml new file mode 100644 index 00000000000..93eb1e01f85 --- /dev/null +++ b/.github/workflows/mapbase_msbuild.yml @@ -0,0 +1,71 @@ +name: Mapbase MSBuild + +on: + push: + paths: + - .github/workflows/mapbase_msbuild.yml + - sp/src/** + +env: + # Configuration type to build. + # You can convert this to a build matrix if you need coverage of multiple configuration types. + # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + BUILD_CONFIGURATION: Release + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1.1 + + - name: Enable VS2019 + working-directory: sp/src/vpc_scripts + shell: bash + run: sed -i 's/^\($Conditional[ ]\+VS2019[ ]\+\).*/\1"1"/' default.vgc + + - name: Create projectfiles + working-directory: sp/src + shell: cmd + # https://github.com/ValveSoftware/source-sdk-2013/issues/72 + run: | + reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f + creategameprojects.bat + + - name: Build + working-directory: sp/src + # Add additional options to the MSBuild command line here (like platform or verbosity level). + # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference + shell: cmd + run: | + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} mathlib\mathlib.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} raytrace\raytrace.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} tier1\tier1.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} vgui2\vgui_controls\vgui_controls.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} vscript\vscript.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\client\client_episodic.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\client\client_hl2.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\server\server_episodic.vcxproj + msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\server\server_hl2.vcxproj + + - name: Publish Windows game DLLs (HL2 Episodic) + uses: actions/upload-artifact@v2 + with: + name: DLLs + path: | + sp/game/mod_episodic/bin/client.dll + sp/game/mod_episodic/bin/server.dll + if-no-files-found: error + + - name: Publish Windows game PDBs (HL2 Episodic) + uses: actions/upload-artifact@v2 + with: + name: PDBs + path: | + sp/game/mod_episodic/bin/client.pdb + sp/game/mod_episodic/bin/server.pdb + if-no-files-found: error From df2c45029bbace85c4240f309a879a334628f904 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 12:30:43 -0500 Subject: [PATCH 02/46] Create mapbase-c-cpp.yml --- .github/workflows/mapbase-c-cpp.yml | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/mapbase-c-cpp.yml diff --git a/.github/workflows/mapbase-c-cpp.yml b/.github/workflows/mapbase-c-cpp.yml new file mode 100644 index 00000000000..245357deed0 --- /dev/null +++ b/.github/workflows/mapbase-c-cpp.yml @@ -0,0 +1,40 @@ +name: Mapbase C/C++ CI + +on: + push: + paths: + - .github/workflows/mapbase_c-cpp.yml + - sp/src/** + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Create projectfiles + working-directory: sp/src + run: ./creategameprojects + + - name: Build + working-directory: sp/src + run: make -f games.mak + + - name: Publish Linux game SOs (HL2 Episodic) + uses: actions/upload-artifact@v2 + with: + name: SOs + path: | + sp/game/mod_episodic/bin/client.so + sp/game/mod_episodic/bin/server.so + if-no-files-found: error + + - name: Publish Linux game DBGs (HL2 Episodic) + uses: actions/upload-artifact@v2 + with: + name: DBGs + path: | + sp/game/mod_episodic/bin/client.so.dbg + sp/game/mod_episodic/bin/server.so.dbg + if-no-files-found: error From d7f95465897d93f37386a6a4fddf4866114a225d Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 12:34:03 -0500 Subject: [PATCH 03/46] Fix mapbase_msbuild.yml toolset --- .github/workflows/mapbase_msbuild.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mapbase_msbuild.yml b/.github/workflows/mapbase_msbuild.yml index 93eb1e01f85..a5b34816b57 100644 --- a/.github/workflows/mapbase_msbuild.yml +++ b/.github/workflows/mapbase_msbuild.yml @@ -22,10 +22,10 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 - - name: Enable VS2019 + - name: Enable VS2022 working-directory: sp/src/vpc_scripts shell: bash - run: sed -i 's/^\($Conditional[ ]\+VS2019[ ]\+\).*/\1"1"/' default.vgc + run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - name: Create projectfiles working-directory: sp/src From 310858afb946d17441854d4f255a37fe81c77713 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 13:01:31 -0500 Subject: [PATCH 04/46] Install GCC/G++ libraries for mapbase-c-cpp.yml --- .github/workflows/mapbase-c-cpp.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/mapbase-c-cpp.yml b/.github/workflows/mapbase-c-cpp.yml index 245357deed0..0c4dda97971 100644 --- a/.github/workflows/mapbase-c-cpp.yml +++ b/.github/workflows/mapbase-c-cpp.yml @@ -12,6 +12,9 @@ jobs: steps: - uses: actions/checkout@v2 + + - name: Install GCC/G++ multilib + run: sudo apt-get install gcc-multilib g++-multilib - name: Create projectfiles working-directory: sp/src From 5d70d39e1b1947863b3f70cdf74f3639a2d47d84 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 13:33:21 -0500 Subject: [PATCH 05/46] Renamed workflow files and refined paths --- ...e-c-cpp.yml => mapbase_sp-games-c-cpp.yml} | 20 +++++++++++++------ ...build.yml => mapbase_sp-games-msbuild.yml} | 18 ++++++++++++----- 2 files changed, 27 insertions(+), 11 deletions(-) rename .github/workflows/{mapbase-c-cpp.yml => mapbase_sp-games-c-cpp.yml} (68%) rename .github/workflows/{mapbase_msbuild.yml => mapbase_sp-games-msbuild.yml} (88%) diff --git a/.github/workflows/mapbase-c-cpp.yml b/.github/workflows/mapbase_sp-games-c-cpp.yml similarity index 68% rename from .github/workflows/mapbase-c-cpp.yml rename to .github/workflows/mapbase_sp-games-c-cpp.yml index 0c4dda97971..e97503e059c 100644 --- a/.github/workflows/mapbase-c-cpp.yml +++ b/.github/workflows/mapbase_sp-games-c-cpp.yml @@ -1,10 +1,18 @@ -name: Mapbase C/C++ CI +name: Mapbase GCC/G++ (SP games.sln) on: push: + pull_request: + branches: + - develop paths: - - .github/workflows/mapbase_c-cpp.yml - - sp/src/** + - .github/workflows/mapbase_sp-games-c-cpp.yml + - sp/src/game/** + - sp/src/mathlib/** + - sp/src/responserules/runtime/** + - sp/src/tier1/** + - sp/src/vgui2/vgui_controls/** + - sp/src/vscript/** jobs: build: @@ -16,7 +24,7 @@ jobs: - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib - - name: Create projectfiles + - name: Create game projects working-directory: sp/src run: ./creategameprojects @@ -27,7 +35,7 @@ jobs: - name: Publish Linux game SOs (HL2 Episodic) uses: actions/upload-artifact@v2 with: - name: SOs + name: Game SOs path: | sp/game/mod_episodic/bin/client.so sp/game/mod_episodic/bin/server.so @@ -36,7 +44,7 @@ jobs: - name: Publish Linux game DBGs (HL2 Episodic) uses: actions/upload-artifact@v2 with: - name: DBGs + name: Game DBGs path: | sp/game/mod_episodic/bin/client.so.dbg sp/game/mod_episodic/bin/server.so.dbg diff --git a/.github/workflows/mapbase_msbuild.yml b/.github/workflows/mapbase_sp-games-msbuild.yml similarity index 88% rename from .github/workflows/mapbase_msbuild.yml rename to .github/workflows/mapbase_sp-games-msbuild.yml index a5b34816b57..3ae55b8b193 100644 --- a/.github/workflows/mapbase_msbuild.yml +++ b/.github/workflows/mapbase_sp-games-msbuild.yml @@ -1,10 +1,18 @@ -name: Mapbase MSBuild +name: Mapbase VS2022 (SP games.sln) on: push: + pull_request: + branches: + - develop paths: - - .github/workflows/mapbase_msbuild.yml - - sp/src/** + - .github/workflows/mapbase_games-msbuild.yml + - sp/src/game/** + - sp/src/mathlib/** + - sp/src/responserules/runtime/** + - sp/src/tier1/** + - sp/src/vgui2/vgui_controls/** + - sp/src/vscript/** env: # Configuration type to build. @@ -55,7 +63,7 @@ jobs: - name: Publish Windows game DLLs (HL2 Episodic) uses: actions/upload-artifact@v2 with: - name: DLLs + name: Game DLLs path: | sp/game/mod_episodic/bin/client.dll sp/game/mod_episodic/bin/server.dll @@ -64,7 +72,7 @@ jobs: - name: Publish Windows game PDBs (HL2 Episodic) uses: actions/upload-artifact@v2 with: - name: PDBs + name: Game PDBs path: | sp/game/mod_episodic/bin/client.pdb sp/game/mod_episodic/bin/server.pdb From 2a707889f182fa97bf7135abfe823b39e3e6b960 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 13:35:32 -0500 Subject: [PATCH 06/46] Fix workflow path typo --- .github/workflows/mapbase_sp-games-msbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mapbase_sp-games-msbuild.yml b/.github/workflows/mapbase_sp-games-msbuild.yml index 3ae55b8b193..70b00d36f6d 100644 --- a/.github/workflows/mapbase_sp-games-msbuild.yml +++ b/.github/workflows/mapbase_sp-games-msbuild.yml @@ -6,7 +6,7 @@ on: branches: - develop paths: - - .github/workflows/mapbase_games-msbuild.yml + - .github/workflows/mapbase_sp-games-msbuild.yml - sp/src/game/** - sp/src/mathlib/** - sp/src/responserules/runtime/** From 6f101f7135ab397d38d32503fade70c15cacbbf9 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:26:22 -0500 Subject: [PATCH 07/46] Testing new workflow structure --- .github/workflows/mapbase_build-base.yml | 196 ++++++++++++++++++ .../workflows/mapbase_build-sp-rel-games.yml | 25 +++ .../mapbase_build-sp-rel-maptools.yml | 28 +++ .../workflows/mapbase_build-sp-rel-none.yml | 29 +++ .../mapbase_build-sp-rel-shaders.yml | 21 ++ .github/workflows/mapbase_sp-games-c-cpp.yml | 51 ----- .../workflows/mapbase_sp-games-msbuild.yml | 79 ------- 7 files changed, 299 insertions(+), 130 deletions(-) create mode 100644 .github/workflows/mapbase_build-base.yml create mode 100644 .github/workflows/mapbase_build-sp-rel-games.yml create mode 100644 .github/workflows/mapbase_build-sp-rel-maptools.yml create mode 100644 .github/workflows/mapbase_build-sp-rel-none.yml create mode 100644 .github/workflows/mapbase_build-sp-rel-shaders.yml delete mode 100644 .github/workflows/mapbase_sp-games-c-cpp.yml delete mode 100644 .github/workflows/mapbase_sp-games-msbuild.yml diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml new file mode 100644 index 00000000000..2c605f2cd43 --- /dev/null +++ b/.github/workflows/mapbase_build-base.yml @@ -0,0 +1,196 @@ +name: Mapbase - Build Projects + +on: + workflow_call: + inputs: + configuration: + description: 'Which configuration to build with' + default: 'Release' + required: true + type: choice + options: + - Release + - Debug + branch: + description: 'Which Source 2013 engine branch to compile for' + default: 'sp' + required: true + type: choice + options: + - sp + - mp + project-group: + description: 'Which group of projects to compile' + required: true + type: choice + options: + - all + - game + - shaders + - maptools + solution-name: + description: 'The name of the solution/makefile' + required: true + type: choice + options: + - everything + - games + - shaders + - maptools + +jobs: + build_windows: + name: Build Windows (VS2022) + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1.1 + + - name: Enable VS2022 + working-directory: ${{inputs.branch}}/src/vpc_scripts + shell: bash + run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc + + - name: Create project files + working-directory: ${{inputs.branch}}/src + shell: cmd + # https://github.com/ValveSoftware/source-sdk-2013/issues/72 + run: | + reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f + create${{inputs.project-group}}projects.bat + + # -------------------------------------------------------------------- + + # "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work." + # https://github.com/mapbase-source/source-sdk-2013/pull/162 + + - name: Build mathlib + #if: steps.filter.outputs.game == 'true' + working-directory: ${{inputs.branch}}/src + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} mathlib\mathlib.vcxproj + + - name: Build Base Libraries + if: inputs.project-group == 'all' || inputs.project-group == 'game' || inputs.project-group == 'maptools' + working-directory: ${{inputs.branch}}/src + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} raytrace\raytrace.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} tier1\tier1.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} vscript\vscript.vcxproj + + - name: Build Map Tools + if: inputs.project-group == 'all' || inputs.project-group == 'maptools' + working-directory: ${{inputs.branch}}/src + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj + + - name: Build Shaders + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + working-directory: ${{inputs.branch}}/src + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj + + - name: Build Game + if: inputs.project-group == 'all' || inputs.project-group == 'game' + working-directory: ${{inputs.branch}}/src + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_hl2.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_hl2.vcxproj + + # -------------------------------------------------------------------- + + - name: Publish Windows game DLLs (HL2 Episodic) + if: inputs.project-group == 'all' || inputs.project-group == 'game' + uses: actions/upload-artifact@v2 + with: + name: Game DLLs + path: | + ${{inputs.branch}}/game/mod_episodic/bin/client.dll + ${{inputs.branch}}/game/mod_episodic/bin/client.pdb + ${{inputs.branch}}/game/mod_episodic/bin/server.dll + ${{inputs.branch}}/game/mod_episodic/bin/server.pdb + if-no-files-found: error + + - name: Publish Windows shader DLL (HL2 Episodic) + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + uses: actions/upload-artifact@v2 + with: + name: Shader DLL + path: | + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb + if-no-files-found: error + + - name: Publish Windows map tools (HL2 Episodic) + if: inputs.project-group == 'all' || inputs.project-group == 'maptools' + uses: actions/upload-artifact@v2 + with: + name: Map Tools (Windows) + path: | + ${{inputs.branch}}/game/bin/vbsp.exe + ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vvis_dll.dll + ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad_dll.dll + if-no-files-found: error + + build_linux: + name: Build Ubuntu + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install GCC/G++ multilib + run: sudo apt-get install gcc-multilib g++-multilib + + - name: Create game projects + working-directory: ${{inputs.branch}}/src + run: ./create${{inputs.project-group}}projects + + # -------------------------------------------------------------------- + + - name: Build + working-directory: ${{inputs.branch}}/src + run: make -f ${{inputs.solution-name}}.mak + + # -------------------------------------------------------------------- + + - name: Publish Linux game SOs (HL2 Episodic) + if: inputs.project-group == 'all' || inputs.project-group == 'game' + uses: actions/upload-artifact@v2 + with: + name: Game SOs + path: | + ${{inputs.branch}}/game/mod_episodic/bin/client.so + ${{inputs.branch}}/game/mod_episodic/bin/client.so.dbg + ${{inputs.branch}}/game/mod_episodic/bin/server.so + ${{inputs.branch}}/game/mod_episodic/bin/server.so.dbg + if-no-files-found: error + + - name: Publish Linux shader SO + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + uses: actions/upload-artifact@v2 + with: + name: Game SOs + path: | + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg + if-no-files-found: error diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml new file mode 100644 index 00000000000..f42231c8f52 --- /dev/null +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -0,0 +1,25 @@ +name: Mapbase - Build Projects (SP Release) + +on: + push: + pull_request: + branches: + - develop + paths: + - '.github/workflows/mapbase_build-sp-rel-games.yml' + - 'sp/src/game/**' + - 'sp/src/mathlib/**' + - 'sp/src/responserules/runtime/**' + - 'sp/src/tier1/**' + - 'sp/src/vgui2/vgui_controls/**' + - 'sp/src/vscript/**' + +jobs: + build_games: + name: Build Game Projects (SP Release) + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + with: + configuration: 'Release' + branch: 'sp' + project-group: 'game' + solution-name: 'games' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml new file mode 100644 index 00000000000..6ab2cea46e0 --- /dev/null +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -0,0 +1,28 @@ +name: Mapbase - Build Projects (SP Release) + +on: + push: + pull_request: + branches: + - develop + paths: + - '.github/workflows/mapbase_build-sp-rel-maptools.yml' + - 'sp/src/utils/vbsp/**' + - 'sp/src/utils/vvis/**' + - 'sp/src/utils/vvis_launcher/**' + - 'sp/src/utils/vrad/**' + - 'sp/src/utils/vrad_launcher/**' + - 'sp/src/mathlib/**' + - 'sp/src/tier1/**' + - 'sp/src/vgui2/vgui_controls/**' + - 'sp/src/vscript/**' + +jobs: + build_shaders: + name: Build Map Tools Projects (SP Release) + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + with: + configuration: 'Release' + branch: 'sp' + project-group: 'maptools' + solution-name: 'maptools' diff --git a/.github/workflows/mapbase_build-sp-rel-none.yml b/.github/workflows/mapbase_build-sp-rel-none.yml new file mode 100644 index 00000000000..6f45b5718ec --- /dev/null +++ b/.github/workflows/mapbase_build-sp-rel-none.yml @@ -0,0 +1,29 @@ +name: Mapbase - Build Projects (SP Release) + +on: + push: + pull_request: + branches: + - develop + paths-ignore: + - '.github/workflows/mapbase_build-sp-rel-games.yml' + - '.github/workflows/mapbase_build-sp-rel-shaders.yml' + - '.github/workflows/mapbase_build-sp-rel-maptools.yml' + - 'sp/src/game/**' + - 'sp/src/mathlib/**' + - 'sp/src/responserules/runtime/**' + - 'sp/src/tier1/**' + - 'sp/src/vgui2/vgui_controls/**' + - 'sp/src/vscript/**' + - 'sp/src/materialsystem/**' + - 'sp/src/utils/vbsp/**' + - 'sp/src/utils/vvis/**' + - 'sp/src/utils/vvis_launcher/**' + - 'sp/src/utils/vrad/**' + - 'sp/src/utils/vrad_launcher/**' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: 'echo "No matching build workflow" ' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml new file mode 100644 index 00000000000..8776d320ca8 --- /dev/null +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -0,0 +1,21 @@ +name: Mapbase - Build Projects (SP Release) + +on: + push: + pull_request: + branches: + - develop + paths: + - '.github/workflows/mapbase_build-sp-rel-shaders.yml' + - 'sp/src/materialsystem/**' + - 'sp/src/mathlib/**' + +jobs: + build_shaders: + name: Build Shader Projects (SP Release) + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + with: + configuration: 'Release' + branch: 'sp' + project-group: 'shaders' + solution-name: 'shaders' diff --git a/.github/workflows/mapbase_sp-games-c-cpp.yml b/.github/workflows/mapbase_sp-games-c-cpp.yml deleted file mode 100644 index e97503e059c..00000000000 --- a/.github/workflows/mapbase_sp-games-c-cpp.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Mapbase GCC/G++ (SP games.sln) - -on: - push: - pull_request: - branches: - - develop - paths: - - .github/workflows/mapbase_sp-games-c-cpp.yml - - sp/src/game/** - - sp/src/mathlib/** - - sp/src/responserules/runtime/** - - sp/src/tier1/** - - sp/src/vgui2/vgui_controls/** - - sp/src/vscript/** - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Install GCC/G++ multilib - run: sudo apt-get install gcc-multilib g++-multilib - - - name: Create game projects - working-directory: sp/src - run: ./creategameprojects - - - name: Build - working-directory: sp/src - run: make -f games.mak - - - name: Publish Linux game SOs (HL2 Episodic) - uses: actions/upload-artifact@v2 - with: - name: Game SOs - path: | - sp/game/mod_episodic/bin/client.so - sp/game/mod_episodic/bin/server.so - if-no-files-found: error - - - name: Publish Linux game DBGs (HL2 Episodic) - uses: actions/upload-artifact@v2 - with: - name: Game DBGs - path: | - sp/game/mod_episodic/bin/client.so.dbg - sp/game/mod_episodic/bin/server.so.dbg - if-no-files-found: error diff --git a/.github/workflows/mapbase_sp-games-msbuild.yml b/.github/workflows/mapbase_sp-games-msbuild.yml deleted file mode 100644 index 70b00d36f6d..00000000000 --- a/.github/workflows/mapbase_sp-games-msbuild.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Mapbase VS2022 (SP games.sln) - -on: - push: - pull_request: - branches: - - develop - paths: - - .github/workflows/mapbase_sp-games-msbuild.yml - - sp/src/game/** - - sp/src/mathlib/** - - sp/src/responserules/runtime/** - - sp/src/tier1/** - - sp/src/vgui2/vgui_controls/** - - sp/src/vscript/** - -env: - # Configuration type to build. - # You can convert this to a build matrix if you need coverage of multiple configuration types. - # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - BUILD_CONFIGURATION: Release - -jobs: - build: - runs-on: windows-latest - - steps: - - uses: actions/checkout@v2 - - - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v1.1 - - - name: Enable VS2022 - working-directory: sp/src/vpc_scripts - shell: bash - run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - - - name: Create projectfiles - working-directory: sp/src - shell: cmd - # https://github.com/ValveSoftware/source-sdk-2013/issues/72 - run: | - reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f - creategameprojects.bat - - - name: Build - working-directory: sp/src - # Add additional options to the MSBuild command line here (like platform or verbosity level). - # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference - shell: cmd - run: | - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} mathlib\mathlib.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} raytrace\raytrace.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} responserules\runtime\responserules.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} tier1\tier1.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} vgui2\vgui_controls\vgui_controls.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} vscript\vscript.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\client\client_episodic.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\client\client_hl2.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\server\server_episodic.vcxproj - msbuild -m -p:Configuration=${{env.BUILD_CONFIGURATION}} game\server\server_hl2.vcxproj - - - name: Publish Windows game DLLs (HL2 Episodic) - uses: actions/upload-artifact@v2 - with: - name: Game DLLs - path: | - sp/game/mod_episodic/bin/client.dll - sp/game/mod_episodic/bin/server.dll - if-no-files-found: error - - - name: Publish Windows game PDBs (HL2 Episodic) - uses: actions/upload-artifact@v2 - with: - name: Game PDBs - path: | - sp/game/mod_episodic/bin/client.pdb - sp/game/mod_episodic/bin/server.pdb - if-no-files-found: error From 96a7fbd72d768fec0d5de3a23634cc6b02e266b9 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:35:18 -0500 Subject: [PATCH 08/46] Fix workflow syntax --- .github/workflows/mapbase_build-base.yml | 120 ++++++++++++----------- 1 file changed, 65 insertions(+), 55 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 2c605f2cd43..f2a657092f8 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -45,22 +45,27 @@ jobs: steps: - uses: actions/checkout@v2 + with: + configuration: ${{ inputs.configuration }} + branch: ${{ inputs.branch }} + project-group: ${{ inputs.project-group }} + solution-name: ${{ inputs.solution-name }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: Enable VS2022 - working-directory: ${{inputs.branch}}/src/vpc_scripts + working-directory: ${{env.branch}}/src/vpc_scripts shell: bash run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - name: Create project files - working-directory: ${{inputs.branch}}/src + working-directory: ${{env.branch}}/src shell: cmd # https://github.com/ValveSoftware/source-sdk-2013/issues/72 run: | reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f - create${{inputs.project-group}}projects.bat + create${{env.project-group}}projects.bat # -------------------------------------------------------------------- @@ -69,86 +74,86 @@ jobs: - name: Build mathlib #if: steps.filter.outputs.game == 'true' - working-directory: ${{inputs.branch}}/src + working-directory: ${{env.branch}}/src shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} mathlib\mathlib.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} mathlib\mathlib.vcxproj - name: Build Base Libraries - if: inputs.project-group == 'all' || inputs.project-group == 'game' || inputs.project-group == 'maptools' - working-directory: ${{inputs.branch}}/src + if: env.project-group == 'all' || env.project-group == 'game' || env.project-group == 'maptools' + working-directory: ${{env.branch}}/src shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} raytrace\raytrace.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} tier1\tier1.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} vscript\vscript.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} raytrace\raytrace.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} tier1\tier1.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} vscript\vscript.vcxproj - name: Build Map Tools - if: inputs.project-group == 'all' || inputs.project-group == 'maptools' - working-directory: ${{inputs.branch}}/src + if: env.project-group == 'all' || env.project-group == 'maptools' + working-directory: ${{env.branch}}/src shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} utils\vbsp\vbsp.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} utils\vvis\vvis.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} utils\vrad\vrad.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj - name: Build Shaders - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' - working-directory: ${{inputs.branch}}/src + if: env.project-group == 'all' || env.project-group == 'shaders' + working-directory: ${{env.branch}}/src shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj - name: Build Game - if: inputs.project-group == 'all' || inputs.project-group == 'game' - working-directory: ${{inputs.branch}}/src + if: env.project-group == 'all' || env.project-group == 'game' + working-directory: ${{env.branch}}/src shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_episodic.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_hl2.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_episodic.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_hl2.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} game\client\client_episodic.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} game\client\client_hl2.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} game\server\server_episodic.vcxproj + msbuild -m -p:Configuration=${{env.configuration}} game\server\server_hl2.vcxproj # -------------------------------------------------------------------- - name: Publish Windows game DLLs (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'game' + if: env.project-group == 'all' || env.project-group == 'game' uses: actions/upload-artifact@v2 with: name: Game DLLs path: | - ${{inputs.branch}}/game/mod_episodic/bin/client.dll - ${{inputs.branch}}/game/mod_episodic/bin/client.pdb - ${{inputs.branch}}/game/mod_episodic/bin/server.dll - ${{inputs.branch}}/game/mod_episodic/bin/server.pdb + ${{env.branch}}/game/mod_episodic/bin/client.dll + ${{env.branch}}/game/mod_episodic/bin/client.pdb + ${{env.branch}}/game/mod_episodic/bin/server.dll + ${{env.branch}}/game/mod_episodic/bin/server.pdb if-no-files-found: error - name: Publish Windows shader DLL (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + if: env.project-group == 'all' || env.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Shader DLL path: | - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb + ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.dll + ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb if-no-files-found: error - name: Publish Windows map tools (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'maptools' + if: env.project-group == 'all' || env.project-group == 'maptools' uses: actions/upload-artifact@v2 with: name: Map Tools (Windows) path: | - ${{inputs.branch}}/game/bin/vbsp.exe - ${{inputs.branch}}/game/bin/vvis.exe - ${{inputs.branch}}/game/bin/vvis_dll.dll - ${{inputs.branch}}/game/bin/vrad.exe - ${{inputs.branch}}/game/bin/vrad_dll.dll + ${{env.branch}}/game/bin/vbsp.exe + ${{env.branch}}/game/bin/vvis.exe + ${{env.branch}}/game/bin/vvis_dll.dll + ${{env.branch}}/game/bin/vrad.exe + ${{env.branch}}/game/bin/vrad_dll.dll if-no-files-found: error build_linux: @@ -157,40 +162,45 @@ jobs: steps: - uses: actions/checkout@v2 + with: + configuration: ${{ inputs.configuration }} + branch: ${{ inputs.branch }} + project-group: ${{ inputs.project-group }} + solution-name: ${{ inputs.solution-name }} - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib - name: Create game projects - working-directory: ${{inputs.branch}}/src - run: ./create${{inputs.project-group}}projects + working-directory: ${{env.branch}}/src + run: ./create${{env.project-group}}projects # -------------------------------------------------------------------- - name: Build - working-directory: ${{inputs.branch}}/src - run: make -f ${{inputs.solution-name}}.mak + working-directory: ${{env.branch}}/src + run: make -f ${{env.solution-name}}.mak # -------------------------------------------------------------------- - name: Publish Linux game SOs (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'game' + if: env.project-group == 'all' || env.project-group == 'game' uses: actions/upload-artifact@v2 with: name: Game SOs path: | - ${{inputs.branch}}/game/mod_episodic/bin/client.so - ${{inputs.branch}}/game/mod_episodic/bin/client.so.dbg - ${{inputs.branch}}/game/mod_episodic/bin/server.so - ${{inputs.branch}}/game/mod_episodic/bin/server.so.dbg + ${{env.branch}}/game/mod_episodic/bin/client.so + ${{env.branch}}/game/mod_episodic/bin/client.so.dbg + ${{env.branch}}/game/mod_episodic/bin/server.so + ${{env.branch}}/game/mod_episodic/bin/server.so.dbg if-no-files-found: error - name: Publish Linux shader SO - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + if: env.project-group == 'all' || env.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Game SOs path: | - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg + ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.so + ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg if-no-files-found: error From 3417bdb42e6d48e31dde81f9e119f05766044046 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:40:20 -0500 Subject: [PATCH 09/46] Update mapbase_build-base.yml --- .github/workflows/mapbase_build-base.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index f2a657092f8..c73d3acd1df 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -45,7 +45,7 @@ jobs: steps: - uses: actions/checkout@v2 - with: + env: configuration: ${{ inputs.configuration }} branch: ${{ inputs.branch }} project-group: ${{ inputs.project-group }} @@ -156,13 +156,13 @@ jobs: ${{env.branch}}/game/bin/vrad_dll.dll if-no-files-found: error - build_linux: + build_ubuntu: name: Build Ubuntu runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - with: + env: configuration: ${{ inputs.configuration }} branch: ${{ inputs.branch }} project-group: ${{ inputs.project-group }} From 2f0c8592a36558c9f415bbd54d8fb883ba57cdb4 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:41:52 -0500 Subject: [PATCH 10/46] Fix whitespace in mapbase_build-base.yml --- .github/workflows/mapbase_build-base.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index c73d3acd1df..bb7b146e2f8 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -66,9 +66,9 @@ jobs: run: | reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f create${{env.project-group}}projects.bat - + # -------------------------------------------------------------------- - + # "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work." # https://github.com/mapbase-source/source-sdk-2013/pull/162 From 8926fecd52d045c73a2cd331b2a2c8ad8eae16fe Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:43:54 -0500 Subject: [PATCH 11/46] Fix whitespace in mapbase_build-base.yml (properly) --- .github/workflows/mapbase_build-base.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index bb7b146e2f8..aa5b197921d 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -118,7 +118,7 @@ jobs: msbuild -m -p:Configuration=${{env.configuration}} game\client\client_hl2.vcxproj msbuild -m -p:Configuration=${{env.configuration}} game\server\server_episodic.vcxproj msbuild -m -p:Configuration=${{env.configuration}} game\server\server_hl2.vcxproj - + # -------------------------------------------------------------------- - name: Publish Windows game DLLs (HL2 Episodic) @@ -155,7 +155,7 @@ jobs: ${{env.branch}}/game/bin/vrad.exe ${{env.branch}}/game/bin/vrad_dll.dll if-no-files-found: error - + build_ubuntu: name: Build Ubuntu runs-on: ubuntu-latest @@ -174,13 +174,13 @@ jobs: - name: Create game projects working-directory: ${{env.branch}}/src run: ./create${{env.project-group}}projects - + # -------------------------------------------------------------------- - name: Build working-directory: ${{env.branch}}/src run: make -f ${{env.solution-name}}.mak - + # -------------------------------------------------------------------- - name: Publish Linux game SOs (HL2 Episodic) From 75bdae107a1a63f11755ea12087b9a71129bfdc5 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:47:48 -0500 Subject: [PATCH 12/46] Temporarily changed workflow targets to feature/github-workflows --- .github/workflows/mapbase_build-sp-rel-games.yml | 2 +- .github/workflows/mapbase_build-sp-rel-maptools.yml | 2 +- .github/workflows/mapbase_build-sp-rel-shaders.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index f42231c8f52..cf73af72f8b 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -17,7 +17,7 @@ on: jobs: build_games: name: Build Game Projects (SP Release) - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' branch: 'sp' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index 6ab2cea46e0..9bb93db3e1e 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -20,7 +20,7 @@ on: jobs: build_shaders: name: Build Map Tools Projects (SP Release) - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' branch: 'sp' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 8776d320ca8..73bc1a606d6 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -13,7 +13,7 @@ on: jobs: build_shaders: name: Build Shader Projects (SP Release) - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@develop + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' branch: 'sp' From d8de98156dea7b90197ec7cdf6d223ba9e059958 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 16:55:08 -0500 Subject: [PATCH 13/46] Update mapbase_build-base.yml --- .github/workflows/mapbase_build-base.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index aa5b197921d..105f1433f5a 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -1,7 +1,7 @@ name: Mapbase - Build Projects on: - workflow_call: + workflow_dispatch: inputs: configuration: description: 'Which configuration to build with' @@ -37,6 +37,26 @@ on: - games - shaders - maptools + workflow_call: + inputs: + configuration: + description: 'Which configuration to build with' + default: 'Release' + required: true + type: string + branch: + description: 'Which Source 2013 engine branch to compile for' + default: 'sp' + required: true + type: string + project-group: + description: 'Which group of projects to compile' + required: true + type: string + solution-name: + description: 'The name of the solution/makefile' + required: true + type: string jobs: build_windows: From 33af066feeeed4fe0dca02ed03696a9c1ee169b2 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 17:01:43 -0500 Subject: [PATCH 14/46] Update mapbase_build-base.yml --- .github/workflows/mapbase_build-base.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 105f1433f5a..e9266dadc34 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -75,12 +75,12 @@ jobs: uses: microsoft/setup-msbuild@v1.1 - name: Enable VS2022 - working-directory: ${{env.branch}}/src/vpc_scripts + working-directory: '${{env.branch}}/src/vpc_scripts' shell: bash run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - name: Create project files - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd # https://github.com/ValveSoftware/source-sdk-2013/issues/72 run: | @@ -94,14 +94,14 @@ jobs: - name: Build mathlib #if: steps.filter.outputs.game == 'true' - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd run: | msbuild -m -p:Configuration=${{env.configuration}} mathlib\mathlib.vcxproj - name: Build Base Libraries if: env.project-group == 'all' || env.project-group == 'game' || env.project-group == 'maptools' - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd run: | msbuild -m -p:Configuration=${{env.configuration}} raytrace\raytrace.vcxproj @@ -111,7 +111,7 @@ jobs: - name: Build Map Tools if: env.project-group == 'all' || env.project-group == 'maptools' - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd run: | msbuild -m -p:Configuration=${{env.configuration}} utils\vbsp\vbsp.vcxproj @@ -122,7 +122,7 @@ jobs: - name: Build Shaders if: env.project-group == 'all' || env.project-group == 'shaders' - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd run: | msbuild -m -p:Configuration=${{env.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj @@ -130,7 +130,7 @@ jobs: - name: Build Game if: env.project-group == 'all' || env.project-group == 'game' - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' shell: cmd run: | msbuild -m -p:Configuration=${{env.configuration}} responserules\runtime\responserules.vcxproj @@ -192,13 +192,13 @@ jobs: run: sudo apt-get install gcc-multilib g++-multilib - name: Create game projects - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' run: ./create${{env.project-group}}projects # -------------------------------------------------------------------- - name: Build - working-directory: ${{env.branch}}/src + working-directory: '${{env.branch}}/src' run: make -f ${{env.solution-name}}.mak # -------------------------------------------------------------------- From 091d33bc4f25ec89c59f2a0e9a080756be580895 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 17:10:07 -0500 Subject: [PATCH 15/46] Update mapbase_build-base.yml --- .github/workflows/mapbase_build-base.yml | 156 ++++++++--------------- 1 file changed, 55 insertions(+), 101 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index e9266dadc34..4055e3b70c2 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -1,42 +1,6 @@ name: Mapbase - Build Projects on: - workflow_dispatch: - inputs: - configuration: - description: 'Which configuration to build with' - default: 'Release' - required: true - type: choice - options: - - Release - - Debug - branch: - description: 'Which Source 2013 engine branch to compile for' - default: 'sp' - required: true - type: choice - options: - - sp - - mp - project-group: - description: 'Which group of projects to compile' - required: true - type: choice - options: - - all - - game - - shaders - - maptools - solution-name: - description: 'The name of the solution/makefile' - required: true - type: choice - options: - - everything - - games - - shaders - - maptools workflow_call: inputs: configuration: @@ -65,27 +29,22 @@ jobs: steps: - uses: actions/checkout@v2 - env: - configuration: ${{ inputs.configuration }} - branch: ${{ inputs.branch }} - project-group: ${{ inputs.project-group }} - solution-name: ${{ inputs.solution-name }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: Enable VS2022 - working-directory: '${{env.branch}}/src/vpc_scripts' + working-directory: '${{inputs.branch}}/src/vpc_scripts' shell: bash run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - name: Create project files - working-directory: '${{env.branch}}/src' + working-directory: '${{inputs.branch}}/src' shell: cmd # https://github.com/ValveSoftware/source-sdk-2013/issues/72 run: | reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f - create${{env.project-group}}projects.bat + create${{inputs.project-group}}projects.bat # -------------------------------------------------------------------- @@ -94,86 +53,86 @@ jobs: - name: Build mathlib #if: steps.filter.outputs.game == 'true' - working-directory: '${{env.branch}}/src' + working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{env.configuration}} mathlib\mathlib.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} mathlib\mathlib.vcxproj - name: Build Base Libraries - if: env.project-group == 'all' || env.project-group == 'game' || env.project-group == 'maptools' - working-directory: '${{env.branch}}/src' + if: inputs.project-group == 'all' || inputs.project-group == 'game' || inputs.project-group == 'maptools' + working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{env.configuration}} raytrace\raytrace.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} tier1\tier1.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} vscript\vscript.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} raytrace\raytrace.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} tier1\tier1.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} vgui2\vgui_controls\vgui_controls.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} vscript\vscript.vcxproj - name: Build Map Tools - if: env.project-group == 'all' || env.project-group == 'maptools' - working-directory: '${{env.branch}}/src' + if: inputs.project-group == 'all' || inputs.project-group == 'maptools' + working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{env.configuration}} utils\vbsp\vbsp.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} utils\vvis\vvis.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} utils\vrad\vrad.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj - name: Build Shaders - if: env.project-group == 'all' || env.project-group == 'shaders' - working-directory: '${{env.branch}}/src' + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{env.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj - name: Build Game - if: env.project-group == 'all' || env.project-group == 'game' - working-directory: '${{env.branch}}/src' + if: inputs.project-group == 'all' || inputs.project-group == 'game' + working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{env.configuration}} responserules\runtime\responserules.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} game\client\client_episodic.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} game\client\client_hl2.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} game\server\server_episodic.vcxproj - msbuild -m -p:Configuration=${{env.configuration}} game\server\server_hl2.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_hl2.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_hl2.vcxproj # -------------------------------------------------------------------- - name: Publish Windows game DLLs (HL2 Episodic) - if: env.project-group == 'all' || env.project-group == 'game' + if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: name: Game DLLs path: | - ${{env.branch}}/game/mod_episodic/bin/client.dll - ${{env.branch}}/game/mod_episodic/bin/client.pdb - ${{env.branch}}/game/mod_episodic/bin/server.dll - ${{env.branch}}/game/mod_episodic/bin/server.pdb + ${{inputs.branch}}/game/mod_episodic/bin/client.dll + ${{inputs.branch}}/game/mod_episodic/bin/client.pdb + ${{inputs.branch}}/game/mod_episodic/bin/server.dll + ${{inputs.branch}}/game/mod_episodic/bin/server.pdb if-no-files-found: error - name: Publish Windows shader DLL (HL2 Episodic) - if: env.project-group == 'all' || env.project-group == 'shaders' + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Shader DLL path: | - ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.dll - ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb if-no-files-found: error - name: Publish Windows map tools (HL2 Episodic) - if: env.project-group == 'all' || env.project-group == 'maptools' + if: inputs.project-group == 'all' || inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: name: Map Tools (Windows) path: | - ${{env.branch}}/game/bin/vbsp.exe - ${{env.branch}}/game/bin/vvis.exe - ${{env.branch}}/game/bin/vvis_dll.dll - ${{env.branch}}/game/bin/vrad.exe - ${{env.branch}}/game/bin/vrad_dll.dll + ${{inputs.branch}}/game/bin/vbsp.exe + ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vvis_dll.dll + ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad_dll.dll if-no-files-found: error build_ubuntu: @@ -182,45 +141,40 @@ jobs: steps: - uses: actions/checkout@v2 - env: - configuration: ${{ inputs.configuration }} - branch: ${{ inputs.branch }} - project-group: ${{ inputs.project-group }} - solution-name: ${{ inputs.solution-name }} - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib - name: Create game projects - working-directory: '${{env.branch}}/src' - run: ./create${{env.project-group}}projects + working-directory: '${{inputs.branch}}/src' + run: ./create${{inputs.project-group}}projects # -------------------------------------------------------------------- - name: Build - working-directory: '${{env.branch}}/src' - run: make -f ${{env.solution-name}}.mak + working-directory: '${{inputs.branch}}/src' + run: make -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- - name: Publish Linux game SOs (HL2 Episodic) - if: env.project-group == 'all' || env.project-group == 'game' + if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: name: Game SOs path: | - ${{env.branch}}/game/mod_episodic/bin/client.so - ${{env.branch}}/game/mod_episodic/bin/client.so.dbg - ${{env.branch}}/game/mod_episodic/bin/server.so - ${{env.branch}}/game/mod_episodic/bin/server.so.dbg + ${{inputs.branch}}/game/mod_episodic/bin/client.so + ${{inputs.branch}}/game/mod_episodic/bin/client.so.dbg + ${{inputs.branch}}/game/mod_episodic/bin/server.so + ${{inputs.branch}}/game/mod_episodic/bin/server.so.dbg if-no-files-found: error - name: Publish Linux shader SO - if: env.project-group == 'all' || env.project-group == 'shaders' + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Game SOs path: | - ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.so - ${{env.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so + ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg if-no-files-found: error From c43d608964de949f83542a6bce713bf84fc60708 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 18:37:13 -0500 Subject: [PATCH 16/46] Updating GitHub workflows --- .../workflows/mapbase_build-base-dispatch.yml | 49 +++++++++++++++ .github/workflows/mapbase_build-base.yml | 61 ++++++++++++++----- .../workflows/mapbase_build-sp-rel-games.yml | 4 +- .../mapbase_build-sp-rel-maptools.yml | 4 +- .../workflows/mapbase_build-sp-rel-none.yml | 5 +- .../mapbase_build-sp-rel-shaders.yml | 4 +- 6 files changed, 98 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/mapbase_build-base-dispatch.yml diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml new file mode 100644 index 00000000000..ecb4255842c --- /dev/null +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -0,0 +1,49 @@ +name: Mapbase - Build Projects (Manual) + +on: + workflow_dispatch: + inputs: + configuration: + description: 'Which configuration to build with' + default: 'Release' + required: true + type: choice + options: + - Release + - Debug + branch: + description: 'Which Source 2013 engine branch to compile for' + default: 'sp' + required: true + type: choice + options: + - sp + - mp + project-group: + description: 'Which group of projects to compile' + required: true + type: choice + options: + - all + - game + - shaders + - maptools + solution-name: + description: 'The name of the solution/makefile' + required: true + type: choice + options: + - everything + - games + - shaders + - maptools + +jobs: + build_shaders: + name: Build Map Tools Projects (SP Release) + uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows + with: + configuration: '${{ github.event.inputs.configuration }}' + branch: '${{ github.event.inputs.branch }}' + project-group: '${{ github.event.inputs.project-group }}' + solution-name: '${{ github.event.inputs.solution-name }}' diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 4055e3b70c2..b281c44ea7f 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -107,23 +107,33 @@ jobs: name: Game DLLs path: | ${{inputs.branch}}/game/mod_episodic/bin/client.dll - ${{inputs.branch}}/game/mod_episodic/bin/client.pdb ${{inputs.branch}}/game/mod_episodic/bin/server.dll - ${{inputs.branch}}/game/mod_episodic/bin/server.pdb if-no-files-found: error - name: Publish Windows shader DLL (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Shader DLL path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.pdb if-no-files-found: error - - name: Publish Windows map tools (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'maptools' + - name: Publish Windows map tools + if: inputs.project-group == 'maptools' + uses: actions/upload-artifact@v2 + with: + name: Map Tools (Windows) + path: | + ${{inputs.branch}}/game/bin/vbsp.exe + ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vvis_dll.dll + ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad_dll.dll + if-no-files-found: error + + - name: Publish Windows map tools + if: inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: name: Map Tools (Windows) @@ -135,13 +145,24 @@ jobs: ${{inputs.branch}}/game/bin/vrad_dll.dll if-no-files-found: error + - name: Publish everything (Windows) + if: inputs.project-group == 'all' + uses: actions/upload-artifact@v2 + with: + name: Everything (Windows) + path: | + ${{inputs.branch}}/game/bin + ${{inputs.branch}}/game/mod_episodic/bin + ${{inputs.branch}}/game/mod_hl2/bin + if-no-files-found: error + build_ubuntu: - name: Build Ubuntu + name: Build Ubuntu (GCC/G++ 9) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - + - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib @@ -156,25 +177,33 @@ jobs: run: make -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- - + - name: Publish Linux game SOs (HL2 Episodic) - if: inputs.project-group == 'all' || inputs.project-group == 'game' + if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: name: Game SOs path: | ${{inputs.branch}}/game/mod_episodic/bin/client.so - ${{inputs.branch}}/game/mod_episodic/bin/client.so.dbg ${{inputs.branch}}/game/mod_episodic/bin/server.so - ${{inputs.branch}}/game/mod_episodic/bin/server.so.dbg if-no-files-found: error - - - name: Publish Linux shader SO - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + + - name: Publish Linux shader SO (HL2 Episodic) + if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: Game SOs path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so.dbg + if-no-files-found: error + + - name: Publish everything (Linux) + if: inputs.project-group == 'all' + uses: actions/upload-artifact@v2 + with: + name: Everything (Linux) + path: | + ${{inputs.branch}}/game/bin + ${{inputs.branch}}/game/mod_episodic/bin + ${{inputs.branch}}/game/mod_hl2/bin if-no-files-found: error diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index cf73af72f8b..c82fcd75e18 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -1,7 +1,6 @@ -name: Mapbase - Build Projects (SP Release) +name: Mapbase - Build Game Projects (SP Release) on: - push: pull_request: branches: - develop @@ -16,7 +15,6 @@ on: jobs: build_games: - name: Build Game Projects (SP Release) uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index 9bb93db3e1e..c6e5c087eb0 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -1,7 +1,6 @@ -name: Mapbase - Build Projects (SP Release) +name: Mapbase - Build Map Tool Projects (SP Release) on: - push: pull_request: branches: - develop @@ -19,7 +18,6 @@ on: jobs: build_shaders: - name: Build Map Tools Projects (SP Release) uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' diff --git a/.github/workflows/mapbase_build-sp-rel-none.yml b/.github/workflows/mapbase_build-sp-rel-none.yml index 6f45b5718ec..b2d6401e586 100644 --- a/.github/workflows/mapbase_build-sp-rel-none.yml +++ b/.github/workflows/mapbase_build-sp-rel-none.yml @@ -1,10 +1,7 @@ -name: Mapbase - Build Projects (SP Release) +name: Mapbase - Build Blank SP Projects on: - push: pull_request: - branches: - - develop paths-ignore: - '.github/workflows/mapbase_build-sp-rel-games.yml' - '.github/workflows/mapbase_build-sp-rel-shaders.yml' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 73bc1a606d6..4cdde80846d 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -1,7 +1,6 @@ -name: Mapbase - Build Projects (SP Release) +name: Mapbase - Build Shader Projects (SP Release) on: - push: pull_request: branches: - develop @@ -12,7 +11,6 @@ on: jobs: build_shaders: - name: Build Shader Projects (SP Release) uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' From 59c16279d356a4b9ed6a2b16942f8eeec1879547 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 19:00:14 -0500 Subject: [PATCH 17/46] Added project creation files for map tools and shaders --- sp/src/createmaptoolsprojects | 5 +++++ sp/src/createmaptoolsprojects.bat | 1 + sp/src/createshadersprojects | 5 +++++ sp/src/createshadersprojects.bat | 1 + sp/src/vpc_scripts/groups.vgc | 6 ++++++ 5 files changed, 18 insertions(+) create mode 100644 sp/src/createmaptoolsprojects create mode 100644 sp/src/createmaptoolsprojects.bat create mode 100644 sp/src/createshadersprojects create mode 100644 sp/src/createshadersprojects.bat diff --git a/sp/src/createmaptoolsprojects b/sp/src/createmaptoolsprojects new file mode 100644 index 00000000000..9cc950cbea9 --- /dev/null +++ b/sp/src/createmaptoolsprojects @@ -0,0 +1,5 @@ +#!/bin/bash + +pushd `dirname $0` +devtools/bin/vpc /hl2 /episodic +maptools /mksln maptools +popd diff --git a/sp/src/createmaptoolsprojects.bat b/sp/src/createmaptoolsprojects.bat new file mode 100644 index 00000000000..e21a53ff0a9 --- /dev/null +++ b/sp/src/createmaptoolsprojects.bat @@ -0,0 +1 @@ +devtools\bin\vpc.exe +maptools /mksln maptools.sln diff --git a/sp/src/createshadersprojects b/sp/src/createshadersprojects new file mode 100644 index 00000000000..ff4823e0319 --- /dev/null +++ b/sp/src/createshadersprojects @@ -0,0 +1,5 @@ +#!/bin/bash + +pushd `dirname $0` +devtools/bin/vpc /hl2 /episodic +shaders /mksln shaders +popd diff --git a/sp/src/createshadersprojects.bat b/sp/src/createshadersprojects.bat new file mode 100644 index 00000000000..4847c219cb2 --- /dev/null +++ b/sp/src/createshadersprojects.bat @@ -0,0 +1 @@ +devtools\bin\vpc.exe +shaders /mksln shaders.sln diff --git a/sp/src/vpc_scripts/groups.vgc b/sp/src/vpc_scripts/groups.vgc index 2ab187faafa..b58dc41632d 100644 --- a/sp/src/vpc_scripts/groups.vgc +++ b/sp/src/vpc_scripts/groups.vgc @@ -26,9 +26,15 @@ $Group "game" "responserules" } +$Group "shaderdlls" +{ + "game_shader_dx9" +} + $Group "shaders" { "game_shader_dx9" + "mathlib" } $Group "everything" From b34eeac7a05c9ab45f9d67214023cd4486e82975 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 19:34:31 -0500 Subject: [PATCH 18/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base-dispatch.yml | 4 ++-- .github/workflows/mapbase_build-base.yml | 14 +------------- sp/src/createshadersprojects.bat | 2 +- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml index ecb4255842c..0f7174c43af 100644 --- a/.github/workflows/mapbase_build-base-dispatch.yml +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -1,6 +1,7 @@ name: Mapbase - Build Projects (Manual) on: + push: workflow_dispatch: inputs: configuration: @@ -39,8 +40,7 @@ on: - maptools jobs: - build_shaders: - name: Build Map Tools Projects (SP Release) + build_manual: uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: '${{ github.event.inputs.configuration }}' diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index b281c44ea7f..c26abea2b4b 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -73,6 +73,7 @@ jobs: working-directory: '${{inputs.branch}}/src' shell: cmd run: | + msbuild -m -p:Configuration=${{inputs.configuration}} fgdlib\fgdlib.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj @@ -132,19 +133,6 @@ jobs: ${{inputs.branch}}/game/bin/vrad_dll.dll if-no-files-found: error - - name: Publish Windows map tools - if: inputs.project-group == 'maptools' - uses: actions/upload-artifact@v2 - with: - name: Map Tools (Windows) - path: | - ${{inputs.branch}}/game/bin/vbsp.exe - ${{inputs.branch}}/game/bin/vvis.exe - ${{inputs.branch}}/game/bin/vvis_dll.dll - ${{inputs.branch}}/game/bin/vrad.exe - ${{inputs.branch}}/game/bin/vrad_dll.dll - if-no-files-found: error - - name: Publish everything (Windows) if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 diff --git a/sp/src/createshadersprojects.bat b/sp/src/createshadersprojects.bat index 4847c219cb2..43569ae56c8 100644 --- a/sp/src/createshadersprojects.bat +++ b/sp/src/createshadersprojects.bat @@ -1 +1 @@ -devtools\bin\vpc.exe +shaders /mksln shaders.sln +devtools\bin\vpc.exe /hl2 /episodic +shaders /mksln shaders.sln From eddfc609e6fdafb3392bd0b8dfbbebcaef0fd2f5 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 21:09:38 -0500 Subject: [PATCH 19/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base-dispatch.yml | 1 - .github/workflows/mapbase_build-base.yml | 6 +++--- .github/workflows/mapbase_build-sp-rel-maptools.yml | 2 +- sp/src/vpc_scripts/source_exe_win_win32_base.vpc | 3 ++- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml index 0f7174c43af..783aefa9da6 100644 --- a/.github/workflows/mapbase_build-base-dispatch.yml +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -1,7 +1,6 @@ name: Mapbase - Build Projects (Manual) on: - push: workflow_dispatch: inputs: configuration: diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index c26abea2b4b..42af533e54c 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -75,9 +75,9 @@ jobs: run: | msbuild -m -p:Configuration=${{inputs.configuration}} fgdlib\fgdlib.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis\vvis_dll.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vvis_launcher\vvis_launcher.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad_dll.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj - name: Build Shaders @@ -156,7 +156,7 @@ jobs: - name: Create game projects working-directory: '${{inputs.branch}}/src' - run: ./create${{inputs.project-group}}projects + run: sudo ./create${{inputs.project-group}}projects # -------------------------------------------------------------------- diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index c6e5c087eb0..5e8df8bb7cb 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -17,7 +17,7 @@ on: - 'sp/src/vscript/**' jobs: - build_shaders: + build_maptools: uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows with: configuration: 'Release' diff --git a/sp/src/vpc_scripts/source_exe_win_win32_base.vpc b/sp/src/vpc_scripts/source_exe_win_win32_base.vpc index a6d812bae1c..4d61b306444 100644 --- a/sp/src/vpc_scripts/source_exe_win_win32_base.vpc +++ b/sp/src/vpc_scripts/source_exe_win_win32_base.vpc @@ -67,8 +67,9 @@ $Configuration $PostBuildEvent [!$ANALYZE] { + $CommandLine "if not exist $QUOTE$OUTBINDIR$QUOTE mkdir $QUOTE$OUTBINDIR$QUOTE" "\n" [($VS2015||$VS2017||$VS2019||$VS2022)] + $CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK && ($VS2015||$VS2017||$VS2019||$VS2022)] $CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK && !($VS2015||$VS2017||$VS2019||$VS2022)] - $CommandLine "if not exist $QUOTE$OUTBINDIR$QUOTE mkdir $QUOTE$OUTBINDIR$QUOTE" "\n" [!$SOURCESDK && ($VS2015||$VS2017||$VS2019||$VS2022)] $CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $OUTBINDIR\$(TargetFileName) >nul" "\n" \ "if ERRORLEVEL 1 goto BuildEventFailed" "\n" \ "if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map >nul" "\n" From dab7d6aa10f8d23c354e6ad50f64a68ce1e90f03 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 21:21:43 -0500 Subject: [PATCH 20/46] Updated GitHub workflows --- sp/src/createmaptoolsprojects | 0 sp/src/createshadersprojects | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 sp/src/createmaptoolsprojects mode change 100644 => 100755 sp/src/createshadersprojects diff --git a/sp/src/createmaptoolsprojects b/sp/src/createmaptoolsprojects old mode 100644 new mode 100755 diff --git a/sp/src/createshadersprojects b/sp/src/createshadersprojects old mode 100644 new mode 100755 From 36399df3759354636465f7ae38e7a66a42f3a9ed Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 21:34:21 -0500 Subject: [PATCH 21/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 15 ++++++++++- .../workflows/mapbase_build-sp-rel-none.yml | 26 ------------------- 2 files changed, 14 insertions(+), 27 deletions(-) delete mode 100644 .github/workflows/mapbase_build-sp-rel-none.yml diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 42af533e54c..a1e9338b59c 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -180,11 +180,24 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: Game SOs + name: Shader SOs path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so if-no-files-found: error + - name: Publish Linux map tools + if: inputs.project-group == 'maptools' + uses: actions/upload-artifact@v2 + with: + name: Map Tools (Linux) + path: | + ${{inputs.branch}}/game/bin/vbsp.exe + ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vvis_dll.so + ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad_dll.so + if-no-files-found: error + - name: Publish everything (Linux) if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 diff --git a/.github/workflows/mapbase_build-sp-rel-none.yml b/.github/workflows/mapbase_build-sp-rel-none.yml deleted file mode 100644 index b2d6401e586..00000000000 --- a/.github/workflows/mapbase_build-sp-rel-none.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Mapbase - Build Blank SP Projects - -on: - pull_request: - paths-ignore: - - '.github/workflows/mapbase_build-sp-rel-games.yml' - - '.github/workflows/mapbase_build-sp-rel-shaders.yml' - - '.github/workflows/mapbase_build-sp-rel-maptools.yml' - - 'sp/src/game/**' - - 'sp/src/mathlib/**' - - 'sp/src/responserules/runtime/**' - - 'sp/src/tier1/**' - - 'sp/src/vgui2/vgui_controls/**' - - 'sp/src/vscript/**' - - 'sp/src/materialsystem/**' - - 'sp/src/utils/vbsp/**' - - 'sp/src/utils/vvis/**' - - 'sp/src/utils/vvis_launcher/**' - - 'sp/src/utils/vrad/**' - - 'sp/src/utils/vrad_launcher/**' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - run: 'echo "No matching build workflow" ' From 5f95ab07831f8455452ab53a502ee48f3350df72 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 23:36:49 -0500 Subject: [PATCH 22/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 30 ++++++++++--------- .../workflows/mapbase_build-sp-rel-games.yml | 2 +- .../mapbase_build-sp-rel-maptools.yml | 2 +- .../mapbase_build-sp-rel-shaders.yml | 2 +- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index a1e9338b59c..cd9ad0d69dd 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -105,7 +105,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: Game DLLs + name: Game DLLs (server/client.dll) path: | ${{inputs.branch}}/game/mod_episodic/bin/client.dll ${{inputs.branch}}/game/mod_episodic/bin/server.dll @@ -115,7 +115,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: Shader DLL + name: Shader DLL (game_shader_dx9.dll) path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll if-no-files-found: error @@ -126,12 +126,14 @@ jobs: with: name: Map Tools (Windows) path: | - ${{inputs.branch}}/game/bin/vbsp.exe - ${{inputs.branch}}/game/bin/vvis.exe - ${{inputs.branch}}/game/bin/vvis_dll.dll - ${{inputs.branch}}/game/bin/vrad.exe - ${{inputs.branch}}/game/bin/vrad_dll.dll - if-no-files-found: error + ${{inputs.branch}}/game/bin + if-no-files-found: error # Temporary + + #${{inputs.branch}}/game/bin/vbsp.exe + #${{inputs.branch}}/game/bin/vvis.exe + #${{inputs.branch}}/game/bin/vvis_dll.dll + #${{inputs.branch}}/game/bin/vrad.exe + #${{inputs.branch}}/game/bin/vrad_dll.dll - name: Publish everything (Windows) if: inputs.project-group == 'all' @@ -145,7 +147,7 @@ jobs: if-no-files-found: error build_ubuntu: - name: Build Ubuntu (GCC/G++ 9) + name: Build Ubuntu (GCC/G++) runs-on: ubuntu-latest steps: @@ -170,7 +172,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: Game SOs + name: Game SOs (server/client.so) path: | ${{inputs.branch}}/game/mod_episodic/bin/client.so ${{inputs.branch}}/game/mod_episodic/bin/server.so @@ -180,7 +182,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: Shader SOs + name: Shader SO (game_shader_dx9.dll) path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so if-no-files-found: error @@ -191,10 +193,10 @@ jobs: with: name: Map Tools (Linux) path: | - ${{inputs.branch}}/game/bin/vbsp.exe - ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vbsp + ${{inputs.branch}}/game/bin/vvis ${{inputs.branch}}/game/bin/vvis_dll.so - ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad ${{inputs.branch}}/game/bin/vrad_dll.so if-no-files-found: error diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index c82fcd75e18..28a9d5a68a5 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Game Projects (SP Release) +name: Mapbase - Build Game Projects #(SP Release) on: pull_request: diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index 5e8df8bb7cb..49c452bfcb9 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Map Tool Projects (SP Release) +name: Mapbase - Build Map Tool Projects #(SP Release) on: pull_request: diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 4cdde80846d..4535dbb741a 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Shader Projects (SP Release) +name: Mapbase - Build Shader Projects #(SP Release) on: pull_request: From 0c907af57023cb189660d02a21880d8fba2aa3e8 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 23:44:28 -0500 Subject: [PATCH 23/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index cd9ad0d69dd..3c1c074bfb9 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -126,14 +126,12 @@ jobs: with: name: Map Tools (Windows) path: | - ${{inputs.branch}}/game/bin - if-no-files-found: error # Temporary - - #${{inputs.branch}}/game/bin/vbsp.exe - #${{inputs.branch}}/game/bin/vvis.exe - #${{inputs.branch}}/game/bin/vvis_dll.dll - #${{inputs.branch}}/game/bin/vrad.exe - #${{inputs.branch}}/game/bin/vrad_dll.dll + ${{inputs.branch}}/game/bin/vbsp.exe + ${{inputs.branch}}/game/bin/vvis.exe + ${{inputs.branch}}/game/bin/vvis_dll.dll + ${{inputs.branch}}/game/bin/vrad.exe + ${{inputs.branch}}/game/bin/vrad_dll.dll + if-no-files-found: error - name: Publish everything (Windows) if: inputs.project-group == 'all' @@ -193,12 +191,14 @@ jobs: with: name: Map Tools (Linux) path: | - ${{inputs.branch}}/game/bin/vbsp - ${{inputs.branch}}/game/bin/vvis - ${{inputs.branch}}/game/bin/vvis_dll.so - ${{inputs.branch}}/game/bin/vrad - ${{inputs.branch}}/game/bin/vrad_dll.so - if-no-files-found: error + ${{inputs.branch}}/game/bin + if-no-files-found: error # Temporary + + #${{inputs.branch}}/game/bin/vbsp + #${{inputs.branch}}/game/bin/vvis + #${{inputs.branch}}/game/bin/vvis_dll.so + #${{inputs.branch}}/game/bin/vrad + #${{inputs.branch}}/game/bin/vrad_dll.so - name: Publish everything (Linux) if: inputs.project-group == 'all' From ededf6b09b37523435c6c815608736e43c719b44 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Mon, 17 Oct 2022 23:55:02 -0500 Subject: [PATCH 24/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 3c1c074bfb9..20baf91dc89 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -145,6 +145,7 @@ jobs: if-no-files-found: error build_ubuntu: + if: inputs.project-group != 'maptools' # No Linux map tools for now name: Build Ubuntu (GCC/G++) runs-on: ubuntu-latest @@ -185,20 +186,18 @@ jobs: ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so if-no-files-found: error - - name: Publish Linux map tools - if: inputs.project-group == 'maptools' - uses: actions/upload-artifact@v2 - with: - name: Map Tools (Linux) - path: | - ${{inputs.branch}}/game/bin - if-no-files-found: error # Temporary - - #${{inputs.branch}}/game/bin/vbsp - #${{inputs.branch}}/game/bin/vvis - #${{inputs.branch}}/game/bin/vvis_dll.so - #${{inputs.branch}}/game/bin/vrad - #${{inputs.branch}}/game/bin/vrad_dll.so + #- name: Publish Linux map tools + # if: inputs.project-group == 'maptools' + # uses: actions/upload-artifact@v2 + # with: + # name: Map Tools (Linux) + # path: | + # ${{inputs.branch}}/game/bin/vbsp + # ${{inputs.branch}}/game/bin/vvis + # ${{inputs.branch}}/game/bin/vvis_dll.so + # ${{inputs.branch}}/game/bin/vrad + # ${{inputs.branch}}/game/bin/vrad_dll.so + # if-no-files-found: error # Temporary - name: Publish everything (Linux) if: inputs.project-group == 'all' From b0ec41fb58ca3e88561722cc60d4bfa5c1211d1b Mon Sep 17 00:00:00 2001 From: Blixibon Date: Tue, 18 Oct 2022 00:26:58 -0500 Subject: [PATCH 25/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 20baf91dc89..84fdafd5699 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -105,7 +105,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: Game DLLs (server/client.dll) + name: 'Game DLLs (server/client.dll)' path: | ${{inputs.branch}}/game/mod_episodic/bin/client.dll ${{inputs.branch}}/game/mod_episodic/bin/server.dll @@ -115,7 +115,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: Shader DLL (game_shader_dx9.dll) + name: 'Shader DLL (game_shader_dx9.dll)' path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll if-no-files-found: error @@ -124,7 +124,7 @@ jobs: if: inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: - name: Map Tools (Windows) + name: 'Map Tools (Windows)' path: | ${{inputs.branch}}/game/bin/vbsp.exe ${{inputs.branch}}/game/bin/vvis.exe @@ -137,7 +137,7 @@ jobs: if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: Everything (Windows) + name: 'Everything (Windows)' path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_episodic/bin @@ -171,7 +171,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: Game SOs (server/client.so) + name: 'Game SOs (server/client.so)' path: | ${{inputs.branch}}/game/mod_episodic/bin/client.so ${{inputs.branch}}/game/mod_episodic/bin/server.so @@ -181,7 +181,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: Shader SO (game_shader_dx9.dll) + name: 'Shader SO (game_shader_dx9.dll)' path: | ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so if-no-files-found: error @@ -190,7 +190,7 @@ jobs: # if: inputs.project-group == 'maptools' # uses: actions/upload-artifact@v2 # with: - # name: Map Tools (Linux) + # name: 'Map Tools (Linux)' # path: | # ${{inputs.branch}}/game/bin/vbsp # ${{inputs.branch}}/game/bin/vvis @@ -203,7 +203,7 @@ jobs: if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: Everything (Linux) + name: 'Everything (Linux)' path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_episodic/bin From 990b3daac8be74bba692be0c9b0411bf883c976b Mon Sep 17 00:00:00 2001 From: Blixibon Date: Tue, 18 Oct 2022 00:42:57 -0500 Subject: [PATCH 26/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base-dispatch.yml | 2 +- .github/workflows/mapbase_build-base.yml | 6 +++--- .github/workflows/mapbase_build-sp-rel-games.yml | 3 ++- .github/workflows/mapbase_build-sp-rel-maptools.yml | 3 ++- .github/workflows/mapbase_build-sp-rel-shaders.yml | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml index 783aefa9da6..5686ad001a7 100644 --- a/.github/workflows/mapbase_build-base-dispatch.yml +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Projects (Manual) +name: Build Projects (Manual) on: workflow_dispatch: diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 84fdafd5699..0c9465e31ec 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Projects +name: Build Projects on: workflow_call: @@ -105,7 +105,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Game DLLs (server/client.dll)' + name: 'Game DLLs (server & client.dll)' path: | ${{inputs.branch}}/game/mod_episodic/bin/client.dll ${{inputs.branch}}/game/mod_episodic/bin/server.dll @@ -171,7 +171,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Game SOs (server/client.so)' + name: 'Game SOs (server & client.so)' path: | ${{inputs.branch}}/game/mod_episodic/bin/client.so ${{inputs.branch}}/game/mod_episodic/bin/server.so diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index 28a9d5a68a5..d9f33cb52fd 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Game Projects #(SP Release) +name: Build Game Projects #(SP Release) on: pull_request: @@ -6,6 +6,7 @@ on: - develop paths: - '.github/workflows/mapbase_build-sp-rel-games.yml' + - 'sp/src/vpc_scripts/**' - 'sp/src/game/**' - 'sp/src/mathlib/**' - 'sp/src/responserules/runtime/**' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index 49c452bfcb9..a1dc9cd07f7 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Map Tool Projects #(SP Release) +name: Build Map Tool Projects #(SP Release) on: pull_request: @@ -6,6 +6,7 @@ on: - develop paths: - '.github/workflows/mapbase_build-sp-rel-maptools.yml' + - 'sp/src/vpc_scripts/**' - 'sp/src/utils/vbsp/**' - 'sp/src/utils/vvis/**' - 'sp/src/utils/vvis_launcher/**' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 4535dbb741a..03e5d39797b 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -1,4 +1,4 @@ -name: Mapbase - Build Shader Projects #(SP Release) +name: Build Shader Projects #(SP Release) on: pull_request: @@ -6,6 +6,7 @@ on: - develop paths: - '.github/workflows/mapbase_build-sp-rel-shaders.yml' + - 'sp/src/vpc_scripts/**' - 'sp/src/materialsystem/**' - 'sp/src/mathlib/**' From 590b7e05e5833b8882ff7fc6b21d01b16ea2cda0 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Tue, 18 Oct 2022 03:12:54 -0500 Subject: [PATCH 27/46] Updated GitHub workflows --- .github/CONTRIBUTING.md | 22 +++++++++++-------- .github/workflows/mapbase_build-base.yml | 2 +- .../workflows/mapbase_build-sp-rel-games.yml | 2 +- .../mapbase_build-sp-rel-maptools.yml | 2 +- .../mapbase_build-sp-rel-shaders.yml | 2 +- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c51715cf09c..b7cac7ad522 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -23,12 +23,12 @@ All contributions must follow the following rules: is usually not fit for Mapbase. * All content in a contribution must be either already legally open-source or done with the - full permission of the content's original creator(s). If licensing is involved, the contribution - must ensure Mapbase follows said licensing. + full permission of the content's original creator(s). If a license is involved, the contributor + should ensure Mapbase conforms to its terms. * **NOTE:** Due to concerns with mods which do not wish to be open-source, content using GPL licenses (or any license with similar open-source requirements) are currently not allowed to be distributed with Mapbase. - Contributions which can draw from them without actually distributing the licensed content may theoretically - be excepted from this rule. + Contributions which can draw from them without actually distributing the licensed content may be excepted + from this rule. * Contributions must not break existing maps/content or interfere with them in a negative or non-objective way. @@ -41,13 +41,17 @@ All contributions must follow the following rules: * Do not modify the README to add attribution for your contribution. That is handled by Mapbase's maintainers. -Contributions which do not follow these guidelines cannot be accepted into Mapbase. - -Attempting to contribute content which seriously violates the rules above can lead to being blocked from contributing, -especially if done repeatedly. +Contributions which do not follow these guidelines cannot be accepted into Mapbase. Attempting to contribute content +which seriously violates the rules above can lead to being blocked from contributing, especially if done repeatedly. --- - + +Mapbase uses GitHub Actions to help manage issues and pull requests. Some of these workflows build the code of incoming +contributions to make sure they compile properly. This will compile it for both Visual Studio 2022 and GCC/G++ 9 (Linux). +If these workflows fail, don't freak out! Accidents can happen frequently due to compiler syntax differences and conflicts +from other contributions. You can look at a failed workflow's log by clicking "Details" and find the compiler error(s). +These errors must be resolved by you and/or by any code reviewer(s) before a pull request can be merged. + If your contribution is accepted, you may be listed in Mapbase's credits and the README's external content list: https://github.com/mapbase-source/source-sdk-2013/wiki/Mapbase-Credits#Contributors https://github.com/mapbase-source/source-sdk-2013/blob/master/README diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 0c9465e31ec..5fc4b720d3c 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -155,7 +155,7 @@ jobs: - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib - - name: Create game projects + - name: Create project files working-directory: '${{inputs.branch}}/src' run: sudo ./create${{inputs.project-group}}projects diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index d9f33cb52fd..f4090400835 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -16,7 +16,7 @@ on: jobs: build_games: - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows + uses: ./.github/workflows/mapbase_build-base.yml with: configuration: 'Release' branch: 'sp' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index a1dc9cd07f7..38e1c874846 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -19,7 +19,7 @@ on: jobs: build_maptools: - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows + uses: ./.github/workflows/mapbase_build-base.yml with: configuration: 'Release' branch: 'sp' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 03e5d39797b..25b220c3acb 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -12,7 +12,7 @@ on: jobs: build_shaders: - uses: mapbase-source/source-sdk-2013/.github/workflows/mapbase_build-base.yml@feature/github-workflows + uses: ./.github/workflows/mapbase_build-base.yml with: configuration: 'Release' branch: 'sp' From 0b6e5ec1dafc19ee3d362439e592f0fa26525b1e Mon Sep 17 00:00:00 2001 From: Blixibon Date: Tue, 18 Oct 2022 22:46:38 -0500 Subject: [PATCH 28/46] GitHub workflow cache test --- .github/workflows/mapbase_build-base.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 5fc4b720d3c..4b0c1831b31 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -29,6 +29,9 @@ jobs: steps: - uses: actions/checkout@v2 + - uses: mikehardy/buildcache-action@v1 + with: + cache_key: 'windows-latest' - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 @@ -151,6 +154,9 @@ jobs: steps: - uses: actions/checkout@v2 + - uses: mikehardy/buildcache-action@v1 + with: + cache_key: 'ubuntu-latest' - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib From 3590c4b31df02c4516642890b25792a474507439 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 03:30:53 -0500 Subject: [PATCH 29/46] GitHub workflow cache test --- .github/workflows/mapbase_build-base.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 4b0c1831b31..63d1d991a6a 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -151,6 +151,8 @@ jobs: if: inputs.project-group != 'maptools' # No Linux map tools for now name: Build Ubuntu (GCC/G++) runs-on: ubuntu-latest + env: + BUILDCACHE_DEBUG: 2 steps: - uses: actions/checkout@v2 From 54a8f99bdcd7b94514db5b3a8a61473f2fc68cb1 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 03:37:56 -0500 Subject: [PATCH 30/46] GitHub workflow cache test --- .github/workflows/mapbase_build-base.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 63d1d991a6a..355ba3bc613 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/checkout@v2 - uses: mikehardy/buildcache-action@v1 with: - cache_key: 'windows-latest' + cache_key: ${{ matrix.os }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 @@ -158,7 +158,7 @@ jobs: - uses: actions/checkout@v2 - uses: mikehardy/buildcache-action@v1 with: - cache_key: 'ubuntu-latest' + cache_key: ${{ matrix.os }} - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib From e895908152a6a7cb8938dfdcc50da02ed22491f7 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 04:09:12 -0500 Subject: [PATCH 31/46] GitHub workflow cache test --- .github/workflows/mapbase_build-base.yml | 44 +++++++++++++++++++----- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 355ba3bc613..3981c2e2233 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -29,9 +29,6 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: mikehardy/buildcache-action@v1 - with: - cache_key: ${{ matrix.os }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 @@ -50,6 +47,25 @@ jobs: create${{inputs.project-group}}projects.bat # -------------------------------------------------------------------- + + - name: Cache objects + if: inputs.project-group == 'all' || inputs.project-group == 'game' + uses: actions/cache@v3 + with: + key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' + path: | + ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_episodic/*.obj + ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_hl2/*.obj + ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_episodic/*.obj + ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_hl2/*.obj + + #${{inputs.branch}}/src/mathlib/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/raytrace/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/tier1/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/vgui2/vgui_controls/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/vscript/${{inputs.configuration}}/*.obj + + # -------------------------------------------------------------------- # "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work." # https://github.com/mapbase-source/source-sdk-2013/pull/162 @@ -151,14 +167,9 @@ jobs: if: inputs.project-group != 'maptools' # No Linux map tools for now name: Build Ubuntu (GCC/G++) runs-on: ubuntu-latest - env: - BUILDCACHE_DEBUG: 2 steps: - uses: actions/checkout@v2 - - uses: mikehardy/buildcache-action@v1 - with: - cache_key: ${{ matrix.os }} - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib @@ -168,6 +179,23 @@ jobs: run: sudo ./create${{inputs.project-group}}projects # -------------------------------------------------------------------- + + - name: Cache objects + if: inputs.project-group == 'all' || inputs.project-group == 'game' + uses: actions/cache@v3 + with: + key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' + path: | + ${{inputs.branch}}/src/materialsystem/stdshaders/obj_shaders_episodic_linux32 + ${{inputs.branch}}/src/materialsystem/stdshaders/obj_shaders_hl2_linux32 + + #${{inputs.branch}}/src/mathlib/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/raytrace/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/tier1/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/vgui2/vgui_controls/${{inputs.configuration}}/*.obj + #${{inputs.branch}}/src/vscript/${{inputs.configuration}}/*.obj + + # -------------------------------------------------------------------- - name: Build working-directory: '${{inputs.branch}}/src' From 74288d519ecc1c1123e47bee27a861765af0cab6 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 04:10:37 -0500 Subject: [PATCH 32/46] GitHub workflow whitespace fix --- .github/workflows/mapbase_build-base.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 3981c2e2233..ba59131c6ee 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -47,7 +47,7 @@ jobs: create${{inputs.project-group}}projects.bat # -------------------------------------------------------------------- - + - name: Cache objects if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/cache@v3 @@ -64,7 +64,7 @@ jobs: #${{inputs.branch}}/src/tier1/${{inputs.configuration}}/*.obj #${{inputs.branch}}/src/vgui2/vgui_controls/${{inputs.configuration}}/*.obj #${{inputs.branch}}/src/vscript/${{inputs.configuration}}/*.obj - + # -------------------------------------------------------------------- # "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work." @@ -179,7 +179,7 @@ jobs: run: sudo ./create${{inputs.project-group}}projects # -------------------------------------------------------------------- - + - name: Cache objects if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/cache@v3 From a831720a49be94039bbdff054a7bdbbcc27b8912 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 04:39:29 -0500 Subject: [PATCH 33/46] GitHub workflow cache test --- .github/workflows/mapbase_build-base.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index ba59131c6ee..95e8fa6145d 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -54,10 +54,10 @@ jobs: with: key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' path: | - ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_episodic/*.obj - ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_hl2/*.obj - ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_episodic/*.obj - ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_hl2/*.obj + ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_episodic + ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_hl2 + ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_episodic + ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_hl2 #${{inputs.branch}}/src/mathlib/${{inputs.configuration}}/*.obj #${{inputs.branch}}/src/raytrace/${{inputs.configuration}}/*.obj @@ -181,7 +181,7 @@ jobs: # -------------------------------------------------------------------- - name: Cache objects - if: inputs.project-group == 'all' || inputs.project-group == 'game' + if: inputs.project-group == 'all' || inputs.project-group == 'shaders' uses: actions/cache@v3 with: key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' From 7842fae5881585cca36d5286ef4d9ffd42897282 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 05:05:56 -0500 Subject: [PATCH 34/46] Replaced GitHub workflow cache test with game selection test --- .../workflows/mapbase_build-base-dispatch.yml | 8 ++ .github/workflows/mapbase_build-base.yml | 84 +++++++++---------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml index 5686ad001a7..4ba6c06723b 100644 --- a/.github/workflows/mapbase_build-base-dispatch.yml +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -19,6 +19,14 @@ on: options: - sp - mp + game: + description: 'The name of the game to build (if building game)' + default: 'episodic' + required: false + type: choice + options: + - episodic + - hl2 project-group: description: 'Which group of projects to compile' required: true diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 95e8fa6145d..271094b0384 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -13,6 +13,11 @@ on: default: 'sp' required: true type: string + game: + description: 'The name of the game to build (if building game)' + default: 'episodic' + required: false + type: string project-group: description: 'Which group of projects to compile' required: true @@ -38,6 +43,12 @@ jobs: shell: bash run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc + - name: Pick game + if: inputs.project-group == 'game' + working-directory: '${{inputs.branch}}/src' + shell: bash + run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' creategameprojects.bat + - name: Create project files working-directory: '${{inputs.branch}}/src' shell: cmd @@ -48,25 +59,6 @@ jobs: # -------------------------------------------------------------------- - - name: Cache objects - if: inputs.project-group == 'all' || inputs.project-group == 'game' - uses: actions/cache@v3 - with: - key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' - path: | - ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_episodic - ${{inputs.branch}}/src/game/client/${{inputs.configuration}}_mod_hl2 - ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_episodic - ${{inputs.branch}}/src/game/server/${{inputs.configuration}}_mod_hl2 - - #${{inputs.branch}}/src/mathlib/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/raytrace/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/tier1/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/vgui2/vgui_controls/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/vscript/${{inputs.configuration}}/*.obj - - # -------------------------------------------------------------------- - # "I'm invoking msbuild for each project individually, which looks a bit odd considering there is a solution file which should be able to invoke the builds in their proper order automatically, but passing the solution to msbuild doesn't seem to work." # https://github.com/mapbase-source/source-sdk-2013/pull/162 @@ -99,6 +91,7 @@ jobs: msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad_dll.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj + # TODO: Hook to game naming? - name: Build Shaders if: inputs.project-group == 'all' || inputs.project-group == 'shaders' working-directory: '${{inputs.branch}}/src' @@ -108,7 +101,17 @@ jobs: msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj - name: Build Game - if: inputs.project-group == 'all' || inputs.project-group == 'game' + if: inputs.project-group == 'game' + working-directory: '${{inputs.branch}}/src' + shell: cmd + run: | + msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_${{inputs.game}}.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_${{inputs.game}}.vcxproj + + # TODO: Hook to game naming? + - name: Build everything + if: inputs.project-group == 'all' working-directory: '${{inputs.branch}}/src' shell: cmd run: | @@ -120,14 +123,14 @@ jobs: # -------------------------------------------------------------------- - - name: Publish Windows game DLLs (HL2 Episodic) + - name: Publish Windows game DLLs if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: name: 'Game DLLs (server & client.dll)' path: | - ${{inputs.branch}}/game/mod_episodic/bin/client.dll - ${{inputs.branch}}/game/mod_episodic/bin/server.dll + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.dll + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll if-no-files-found: error - name: Publish Windows shader DLL (HL2 Episodic) @@ -136,7 +139,7 @@ jobs: with: name: 'Shader DLL (game_shader_dx9.dll)' path: | - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.dll + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.dll if-no-files-found: error - name: Publish Windows map tools @@ -174,52 +177,41 @@ jobs: - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib + - name: Pick game + if: inputs.project-group == 'game' + working-directory: '${{inputs.branch}}/src' + shell: bash + run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' creategameprojects + - name: Create project files working-directory: '${{inputs.branch}}/src' run: sudo ./create${{inputs.project-group}}projects # -------------------------------------------------------------------- - - name: Cache objects - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' - uses: actions/cache@v3 - with: - key: '${{runner.os}}-${{inputs.branch}}-${{inputs.configuration}}' - path: | - ${{inputs.branch}}/src/materialsystem/stdshaders/obj_shaders_episodic_linux32 - ${{inputs.branch}}/src/materialsystem/stdshaders/obj_shaders_hl2_linux32 - - #${{inputs.branch}}/src/mathlib/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/raytrace/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/tier1/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/vgui2/vgui_controls/${{inputs.configuration}}/*.obj - #${{inputs.branch}}/src/vscript/${{inputs.configuration}}/*.obj - - # -------------------------------------------------------------------- - - name: Build working-directory: '${{inputs.branch}}/src' run: make -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- - - name: Publish Linux game SOs (HL2 Episodic) + - name: Publish Linux game SOs if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: name: 'Game SOs (server & client.so)' path: | - ${{inputs.branch}}/game/mod_episodic/bin/client.so - ${{inputs.branch}}/game/mod_episodic/bin/server.so + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.so + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.so if-no-files-found: error - - name: Publish Linux shader SO (HL2 Episodic) + - name: Publish Linux shader SO if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: name: 'Shader SO (game_shader_dx9.dll)' path: | - ${{inputs.branch}}/game/mod_episodic/bin/game_shader_dx9.so + ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.so if-no-files-found: error #- name: Publish Linux map tools From 476e6d0943543aa6319b86b39cc22d22ca366e5c Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 12:13:46 -0500 Subject: [PATCH 35/46] Updated GitHub workflows --- .github/workflows/labeler.yml | 27 +++++++++++ .../workflows/mapbase_build-base-dispatch.yml | 16 ++++++- .github/workflows/mapbase_build-base.yml | 46 +++++++++++++------ .../workflows/mapbase_build-sp-rel-games.yml | 10 ++++ .../mapbase_build-sp-rel-maptools.yml | 8 ++++ .../mapbase_build-sp-rel-shaders.yml | 10 ++++ .github/workflows/mapbase_pr.yml | 23 ++++++++++ 7 files changed, 123 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/labeler.yml create mode 100644 .github/workflows/mapbase_pr.yml diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 00000000000..cee65e07263 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,27 @@ +# +# MAPBASE REPO AUTOMATION +# +# Automatically labels pull requests according to changed file paths. +# See mapbase_pr.yml for more information. +# +Repo: + - '*' + - '.github/**' + +Project Generation: + - '**/src/vpc_scripts/**' + - '**/src/devtools/**' + - '**/src/create*' + +Entities: + - '**/src/game/**/**logic**' + - '**/src/game/**/**point**' + +Shaders: + - '**/src/materialsystem/**' + +VScript: + - '**vscript**' + +Tools: + - '**utils**' \ No newline at end of file diff --git a/.github/workflows/mapbase_build-base-dispatch.yml b/.github/workflows/mapbase_build-base-dispatch.yml index 4ba6c06723b..bd461597ac2 100644 --- a/.github/workflows/mapbase_build-base-dispatch.yml +++ b/.github/workflows/mapbase_build-base-dispatch.yml @@ -1,3 +1,10 @@ +# +# MAPBASE SOURCE 2013 CI +# +# This can be used to manually build the codebase. +# +# See mapbase_build-base.yml for more information on how this works. + name: Build Projects (Manual) on: @@ -20,7 +27,7 @@ on: - sp - mp game: - description: 'The name of the game to build (if building game)' + description: 'Name of the game to build (if relevant)' default: 'episodic' required: false type: choice @@ -37,7 +44,7 @@ on: - shaders - maptools solution-name: - description: 'The name of the solution/makefile' + description: 'Name of the solution/makefile' required: true type: choice options: @@ -45,6 +52,11 @@ on: - games - shaders - maptools + build-on-linux: + description: 'Build on Ubuntu/Linux?' + default: true + required: false + type: boolean jobs: build_manual: diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 271094b0384..6721fc931fc 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -1,3 +1,16 @@ +# +# MAPBASE SOURCE 2013 CI +# +# This workflow script automatically builds the Source SDK 2013 codebase on Windows and Linux using GitHub Actions. +# +# This is useful in a number of ways: +# +# 1. It ensures pull requests compile correctly on multiple platforms and provides binaries that can be used to test them. +# 2. It can be used to compile code for releases without having to pull and prepare a local development environment. +# 3. It opens potential for scripts that can employ more principles of CI/CD. (e.g. automatically publishing a release) +# +# This is based on a workflow originally created by z33ky. + name: Build Projects on: @@ -14,7 +27,7 @@ on: required: true type: string game: - description: 'The name of the game to build (if building game)' + description: 'The name of the game to build (if relevant)' default: 'episodic' required: false type: string @@ -26,6 +39,11 @@ on: description: 'The name of the solution/makefile' required: true type: string + build-on-linux: + description: 'Build on Ubuntu/Linux?' + default: true + required: false + type: boolean jobs: build_windows: @@ -44,10 +62,10 @@ jobs: run: sed -i 's/^\($Conditional[ ]\+VS2022[ ]\+\).*/\1"1"/' newer_vs_toolsets.vpc - name: Pick game - if: inputs.project-group == 'game' + if: inputs.project-group == 'game' || inputs.project-group == 'shaders' working-directory: '${{inputs.branch}}/src' shell: bash - run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' creategameprojects.bat + run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects.bat - name: Create project files working-directory: '${{inputs.branch}}/src' @@ -91,14 +109,12 @@ jobs: msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad\vrad_dll.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj - # TODO: Hook to game naming? - name: Build Shaders - if: inputs.project-group == 'all' || inputs.project-group == 'shaders' + if: inputs.project-group == 'shaders' working-directory: '${{inputs.branch}}/src' shell: cmd run: | - msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj - msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_${{inputs.game}}.vcxproj - name: Build Game if: inputs.project-group == 'game' @@ -116,6 +132,8 @@ jobs: shell: cmd run: | msbuild -m -p:Configuration=${{inputs.configuration}} responserules\runtime\responserules.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_episodic.vcxproj + msbuild -m -p:Configuration=${{inputs.configuration}} materialsystem\stdshaders\game_shader_dx9_hl2.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_episodic.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} game\client\client_hl2.vcxproj msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_episodic.vcxproj @@ -133,7 +151,7 @@ jobs: ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll if-no-files-found: error - - name: Publish Windows shader DLL (HL2 Episodic) + - name: Publish Windows shader DLL if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: @@ -162,12 +180,11 @@ jobs: name: 'Everything (Windows)' path: | ${{inputs.branch}}/game/bin - ${{inputs.branch}}/game/mod_episodic/bin - ${{inputs.branch}}/game/mod_hl2/bin + ${{inputs.branch}}/game/mod_*/bin if-no-files-found: error build_ubuntu: - if: inputs.project-group != 'maptools' # No Linux map tools for now + if: inputs.build-on-linux == true && inputs.project-group != 'maptools' # No Linux map tools for now name: Build Ubuntu (GCC/G++) runs-on: ubuntu-latest @@ -178,10 +195,10 @@ jobs: run: sudo apt-get install gcc-multilib g++-multilib - name: Pick game - if: inputs.project-group == 'game' + if: inputs.project-group == 'game' || inputs.project-group == 'shaders' working-directory: '${{inputs.branch}}/src' shell: bash - run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' creategameprojects + run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects.bat - name: Create project files working-directory: '${{inputs.branch}}/src' @@ -234,6 +251,5 @@ jobs: name: 'Everything (Linux)' path: | ${{inputs.branch}}/game/bin - ${{inputs.branch}}/game/mod_episodic/bin - ${{inputs.branch}}/game/mod_hl2/bin + ${{inputs.branch}}/game/mod_*/bin if-no-files-found: error diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-rel-games.yml index f4090400835..9386d5772a1 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-rel-games.yml @@ -1,3 +1,11 @@ +# +# MAPBASE SOURCE 2013 CI +# +# Builds game projects every time a pull request which modifies the game code is opened. +# If you're using a fork of Mapbase, feel free to configure this to meet your repository's needs. +# +# See mapbase_build-base.yml for more information on how this works. + name: Build Game Projects #(SP Release) on: @@ -20,5 +28,7 @@ jobs: with: configuration: 'Release' branch: 'sp' + game: 'episodic' # Change this if your mod is not using HL2/Episodic game projects project-group: 'game' solution-name: 'games' + build-on-linux: true # Disable this if you don't want to compile for Linux diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-rel-maptools.yml index 38e1c874846..d438919ec8d 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-rel-maptools.yml @@ -1,3 +1,11 @@ +# +# MAPBASE SOURCE 2013 CI +# +# Builds map tool projects every time a pull request which modifies the map tool code is opened. +# If you're using a fork of Mapbase, feel free to configure this to meet your repository's needs. +# +# See mapbase_build-base.yml for more information on how this works. + name: Build Map Tool Projects #(SP Release) on: diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-rel-shaders.yml index 25b220c3acb..a100aeda777 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-rel-shaders.yml @@ -1,3 +1,11 @@ +# +# MAPBASE SOURCE 2013 CI +# +# Builds shader projects every time a pull request which modifies the shader code is opened. +# If you're using a fork of Mapbase, feel free to configure this to meet your repository's needs. +# +# See mapbase_build-base.yml for more information on how this works. + name: Build Shader Projects #(SP Release) on: @@ -16,5 +24,7 @@ jobs: with: configuration: 'Release' branch: 'sp' + game: 'episodic' # Change this if your mod is not using HL2/Episodic game projects project-group: 'shaders' solution-name: 'shaders' + build-on-linux: true # Disable this if you don't want to compile for Linux diff --git a/.github/workflows/mapbase_pr.yml b/.github/workflows/mapbase_pr.yml new file mode 100644 index 00000000000..f06982e4168 --- /dev/null +++ b/.github/workflows/mapbase_pr.yml @@ -0,0 +1,23 @@ +# +# MAPBASE REPO AUTOMATION +# +# Automatically labels pull requests according to changed file paths. +# See mapbase_triage-pr.yml for more information. +# +# https://github.com/actions/labeler + +name: Pull Request Automation +on: [pull_request] + +jobs: + label: + + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" From 4ae208911018b8d3eaac55792bd5ea48aebca944 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Wed, 19 Oct 2022 12:23:14 -0500 Subject: [PATCH 36/46] Updated GitHub workflows --- .github/{workflows => }/labeler.yml | 0 .github/workflows/mapbase_build-base.yml | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) rename .github/{workflows => }/labeler.yml (100%) diff --git a/.github/workflows/labeler.yml b/.github/labeler.yml similarity index 100% rename from .github/workflows/labeler.yml rename to .github/labeler.yml diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 6721fc931fc..0e84dd8de46 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -145,7 +145,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Game DLLs (server & client.dll)' + name: 'Windows Game DLLs (server & client.dll)' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.dll ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll @@ -155,7 +155,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Shader DLL (game_shader_dx9.dll)' + name: 'Windows Shader DLL (game_shader_dx9.dll)' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.dll if-no-files-found: error @@ -164,7 +164,7 @@ jobs: if: inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: - name: 'Map Tools (Windows)' + name: 'Windows Map Tools' path: | ${{inputs.branch}}/game/bin/vbsp.exe ${{inputs.branch}}/game/bin/vvis.exe @@ -216,7 +216,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Game SOs (server & client.so)' + name: 'Linux Game SOs (server & client.so)' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.so ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.so @@ -226,7 +226,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Shader SO (game_shader_dx9.dll)' + name: 'Linux Shader SO (game_shader_dx9.so)' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.so if-no-files-found: error @@ -235,7 +235,7 @@ jobs: # if: inputs.project-group == 'maptools' # uses: actions/upload-artifact@v2 # with: - # name: 'Map Tools (Linux)' + # name: 'Linux Map Tools' # path: | # ${{inputs.branch}}/game/bin/vbsp # ${{inputs.branch}}/game/bin/vvis From f0f260d36fab1961941b589de3bc8d4aa6d02b8f Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 11:21:20 -0500 Subject: [PATCH 37/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 22 +++++++++---------- ...l-games.yml => mapbase_build-sp-games.yml} | 5 ++++- ...ools.yml => mapbase_build-sp-maptools.yml} | 5 ++++- ...aders.yml => mapbase_build-sp-shaders.yml} | 5 ++++- 4 files changed, 23 insertions(+), 14 deletions(-) rename .github/workflows/{mapbase_build-sp-rel-games.yml => mapbase_build-sp-games.yml} (89%) rename .github/workflows/{mapbase_build-sp-rel-maptools.yml => mapbase_build-sp-maptools.yml} (89%) rename .github/workflows/{mapbase_build-sp-rel-shaders.yml => mapbase_build-sp-shaders.yml} (88%) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 0e84dd8de46..2c49dc1a6f6 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -145,7 +145,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Windows Game DLLs (server & client.dll)' + name: 'Windows Game DLLs (server & client.dll)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.dll ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll @@ -155,7 +155,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Windows Shader DLL (game_shader_dx9.dll)' + name: 'Windows Shader DLL (game_shader_dx9.dll)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.dll if-no-files-found: error @@ -164,7 +164,7 @@ jobs: if: inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: - name: 'Windows Map Tools' + name: 'Windows Map Tools' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/bin/vbsp.exe ${{inputs.branch}}/game/bin/vvis.exe @@ -177,7 +177,7 @@ jobs: if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: 'Everything (Windows)' + name: 'Everything (Windows)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_*/bin @@ -198,7 +198,7 @@ jobs: if: inputs.project-group == 'game' || inputs.project-group == 'shaders' working-directory: '${{inputs.branch}}/src' shell: bash - run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects.bat + run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects - name: Create project files working-directory: '${{inputs.branch}}/src' @@ -208,7 +208,7 @@ jobs: - name: Build working-directory: '${{inputs.branch}}/src' - run: make -f ${{inputs.solution-name}}.mak + run: make cfg=${{ inputs.configuration }} -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- @@ -216,7 +216,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Linux Game SOs (server & client.so)' + name: 'Linux Game SOs (server & client.so)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.so ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.so @@ -226,7 +226,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Linux Shader SO (game_shader_dx9.so)' + name: 'Linux Shader SO (game_shader_dx9.so)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.so if-no-files-found: error @@ -235,20 +235,20 @@ jobs: # if: inputs.project-group == 'maptools' # uses: actions/upload-artifact@v2 # with: - # name: 'Linux Map Tools' + # name: 'Linux Map Tools' [${{ inputs.configuration }}] # path: | # ${{inputs.branch}}/game/bin/vbsp # ${{inputs.branch}}/game/bin/vvis # ${{inputs.branch}}/game/bin/vvis_dll.so # ${{inputs.branch}}/game/bin/vrad # ${{inputs.branch}}/game/bin/vrad_dll.so - # if-no-files-found: error # Temporary + # if-no-files-found: error - name: Publish everything (Linux) if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: 'Everything (Linux)' + name: 'Everything (Linux)' [${{ inputs.configuration }}] path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_*/bin diff --git a/.github/workflows/mapbase_build-sp-rel-games.yml b/.github/workflows/mapbase_build-sp-games.yml similarity index 89% rename from .github/workflows/mapbase_build-sp-rel-games.yml rename to .github/workflows/mapbase_build-sp-games.yml index 9386d5772a1..33787b00b61 100644 --- a/.github/workflows/mapbase_build-sp-rel-games.yml +++ b/.github/workflows/mapbase_build-sp-games.yml @@ -24,9 +24,12 @@ on: jobs: build_games: + strategy: + matrix: + configuration: [Release, Debug] uses: ./.github/workflows/mapbase_build-base.yml with: - configuration: 'Release' + configuration: ${{ matrix.configuration }} branch: 'sp' game: 'episodic' # Change this if your mod is not using HL2/Episodic game projects project-group: 'game' diff --git a/.github/workflows/mapbase_build-sp-rel-maptools.yml b/.github/workflows/mapbase_build-sp-maptools.yml similarity index 89% rename from .github/workflows/mapbase_build-sp-rel-maptools.yml rename to .github/workflows/mapbase_build-sp-maptools.yml index d438919ec8d..6d0d3e97686 100644 --- a/.github/workflows/mapbase_build-sp-rel-maptools.yml +++ b/.github/workflows/mapbase_build-sp-maptools.yml @@ -27,9 +27,12 @@ on: jobs: build_maptools: + strategy: + matrix: + configuration: [Release, Debug] uses: ./.github/workflows/mapbase_build-base.yml with: - configuration: 'Release' + configuration: ${{ matrix.configuration }} branch: 'sp' project-group: 'maptools' solution-name: 'maptools' diff --git a/.github/workflows/mapbase_build-sp-rel-shaders.yml b/.github/workflows/mapbase_build-sp-shaders.yml similarity index 88% rename from .github/workflows/mapbase_build-sp-rel-shaders.yml rename to .github/workflows/mapbase_build-sp-shaders.yml index a100aeda777..5b1623b1e6b 100644 --- a/.github/workflows/mapbase_build-sp-rel-shaders.yml +++ b/.github/workflows/mapbase_build-sp-shaders.yml @@ -20,9 +20,12 @@ on: jobs: build_shaders: + strategy: + matrix: + configuration: [Release, Debug] uses: ./.github/workflows/mapbase_build-base.yml with: - configuration: 'Release' + configuration: ${{ matrix.configuration }} branch: 'sp' game: 'episodic' # Change this if your mod is not using HL2/Episodic game projects project-group: 'shaders' From a11643f97e8fabc41350edddc2396666a107fb1a Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 11:23:19 -0500 Subject: [PATCH 38/46] GitHub workflow syntax fix --- .github/workflows/mapbase_build-base.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 2c49dc1a6f6..2597b90463c 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -145,7 +145,7 @@ jobs: if: inputs.project-group == 'all' || inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Windows Game DLLs (server & client.dll)' [${{ inputs.configuration }}] + name: 'Windows Game DLLs (server & client.dll) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.dll ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.dll @@ -155,7 +155,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Windows Shader DLL (game_shader_dx9.dll)' [${{ inputs.configuration }}] + name: 'Windows Shader DLL (game_shader_dx9.dll) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.dll if-no-files-found: error @@ -164,7 +164,7 @@ jobs: if: inputs.project-group == 'maptools' uses: actions/upload-artifact@v2 with: - name: 'Windows Map Tools' [${{ inputs.configuration }}] + name: 'Windows Map Tools [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/bin/vbsp.exe ${{inputs.branch}}/game/bin/vvis.exe @@ -177,7 +177,7 @@ jobs: if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: 'Everything (Windows)' [${{ inputs.configuration }}] + name: 'Everything (Windows) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_*/bin @@ -216,7 +216,7 @@ jobs: if: inputs.project-group == 'game' uses: actions/upload-artifact@v2 with: - name: 'Linux Game SOs (server & client.so)' [${{ inputs.configuration }}] + name: 'Linux Game SOs (server & client.so) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/client.so ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/server.so @@ -226,7 +226,7 @@ jobs: if: inputs.project-group == 'shaders' uses: actions/upload-artifact@v2 with: - name: 'Linux Shader SO (game_shader_dx9.so)' [${{ inputs.configuration }}] + name: 'Linux Shader SO (game_shader_dx9.so) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/mod_${{inputs.game}}/bin/game_shader_dx9.so if-no-files-found: error @@ -235,7 +235,7 @@ jobs: # if: inputs.project-group == 'maptools' # uses: actions/upload-artifact@v2 # with: - # name: 'Linux Map Tools' [${{ inputs.configuration }}] + # name: 'Linux Map Tools [${{ inputs.configuration }}]' # path: | # ${{inputs.branch}}/game/bin/vbsp # ${{inputs.branch}}/game/bin/vvis @@ -248,7 +248,7 @@ jobs: if: inputs.project-group == 'all' uses: actions/upload-artifact@v2 with: - name: 'Everything (Linux)' [${{ inputs.configuration }}] + name: 'Everything (Linux) [${{ inputs.configuration }}]' path: | ${{inputs.branch}}/game/bin ${{inputs.branch}}/game/mod_*/bin From 2353a30b33c61c966e40ee62e32d694296c5da46 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 11:54:28 -0500 Subject: [PATCH 39/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 28 ++++++++++--------- .github/workflows/mapbase_build-sp-games.yml | 2 +- .../workflows/mapbase_build-sp-maptools.yml | 2 +- .../workflows/mapbase_build-sp-shaders.yml | 2 +- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 2597b90463c..748129d74ba 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -47,11 +47,11 @@ on: jobs: build_windows: - name: Build Windows (VS2022) + name: Windows (VS2022) runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.1 @@ -143,7 +143,7 @@ jobs: - name: Publish Windows game DLLs if: inputs.project-group == 'all' || inputs.project-group == 'game' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Windows Game DLLs (server & client.dll) [${{ inputs.configuration }}]' path: | @@ -153,7 +153,7 @@ jobs: - name: Publish Windows shader DLL if: inputs.project-group == 'shaders' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Windows Shader DLL (game_shader_dx9.dll) [${{ inputs.configuration }}]' path: | @@ -162,7 +162,7 @@ jobs: - name: Publish Windows map tools if: inputs.project-group == 'maptools' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Windows Map Tools [${{ inputs.configuration }}]' path: | @@ -175,7 +175,7 @@ jobs: - name: Publish everything (Windows) if: inputs.project-group == 'all' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Everything (Windows) [${{ inputs.configuration }}]' path: | @@ -185,11 +185,13 @@ jobs: build_ubuntu: if: inputs.build-on-linux == true && inputs.project-group != 'maptools' # No Linux map tools for now - name: Build Ubuntu (GCC/G++) + name: Ubuntu (GCC/G++) runs-on: ubuntu-latest + env: + cfg: ${{ inputs.configuration }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install GCC/G++ multilib run: sudo apt-get install gcc-multilib g++-multilib @@ -208,13 +210,13 @@ jobs: - name: Build working-directory: '${{inputs.branch}}/src' - run: make cfg=${{ inputs.configuration }} -f ${{inputs.solution-name}}.mak + run: make -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- - name: Publish Linux game SOs if: inputs.project-group == 'game' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Linux Game SOs (server & client.so) [${{ inputs.configuration }}]' path: | @@ -224,7 +226,7 @@ jobs: - name: Publish Linux shader SO if: inputs.project-group == 'shaders' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Linux Shader SO (game_shader_dx9.so) [${{ inputs.configuration }}]' path: | @@ -233,7 +235,7 @@ jobs: #- name: Publish Linux map tools # if: inputs.project-group == 'maptools' - # uses: actions/upload-artifact@v2 + # uses: actions/upload-artifact@v3 # with: # name: 'Linux Map Tools [${{ inputs.configuration }}]' # path: | @@ -246,7 +248,7 @@ jobs: - name: Publish everything (Linux) if: inputs.project-group == 'all' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: 'Everything (Linux) [${{ inputs.configuration }}]' path: | diff --git a/.github/workflows/mapbase_build-sp-games.yml b/.github/workflows/mapbase_build-sp-games.yml index 33787b00b61..3e81ca729fb 100644 --- a/.github/workflows/mapbase_build-sp-games.yml +++ b/.github/workflows/mapbase_build-sp-games.yml @@ -23,7 +23,7 @@ on: - 'sp/src/vscript/**' jobs: - build_games: + games: strategy: matrix: configuration: [Release, Debug] diff --git a/.github/workflows/mapbase_build-sp-maptools.yml b/.github/workflows/mapbase_build-sp-maptools.yml index 6d0d3e97686..0ae631b399f 100644 --- a/.github/workflows/mapbase_build-sp-maptools.yml +++ b/.github/workflows/mapbase_build-sp-maptools.yml @@ -26,7 +26,7 @@ on: - 'sp/src/vscript/**' jobs: - build_maptools: + maptools: strategy: matrix: configuration: [Release, Debug] diff --git a/.github/workflows/mapbase_build-sp-shaders.yml b/.github/workflows/mapbase_build-sp-shaders.yml index 5b1623b1e6b..73036e10082 100644 --- a/.github/workflows/mapbase_build-sp-shaders.yml +++ b/.github/workflows/mapbase_build-sp-shaders.yml @@ -19,7 +19,7 @@ on: - 'sp/src/mathlib/**' jobs: - build_shaders: + shaders: strategy: matrix: configuration: [Release, Debug] From f30257393563fc1d98b9acc07aa4fbe035f0096d Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 12:11:32 -0500 Subject: [PATCH 40/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 748129d74ba..bb1cbfd1aa9 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -187,8 +187,6 @@ jobs: if: inputs.build-on-linux == true && inputs.project-group != 'maptools' # No Linux map tools for now name: Ubuntu (GCC/G++) runs-on: ubuntu-latest - env: - cfg: ${{ inputs.configuration }} steps: - uses: actions/checkout@v3 @@ -202,6 +200,12 @@ jobs: shell: bash run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects + - name: Set configuration + shell: bash + run: | + CFG=${{ inputs.configuration }} + echo ${CFG,,} + - name: Create project files working-directory: '${{inputs.branch}}/src' run: sudo ./create${{inputs.project-group}}projects From 491910b200b8de1bd5ded6c17ce9d8c50f12d435 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 12:17:29 -0500 Subject: [PATCH 41/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index bb1cbfd1aa9..0613e6f1854 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -203,8 +203,8 @@ jobs: - name: Set configuration shell: bash run: | - CFG=${{ inputs.configuration }} - echo ${CFG,,} + config=${{ inputs.configuration }} + export CFG=${config,,} - name: Create project files working-directory: '${{inputs.branch}}/src' From 6050db367b99269b8cb79f1df6d7112913e8a310 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 12:39:23 -0500 Subject: [PATCH 42/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 0613e6f1854..3e30e9ac312 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -201,10 +201,12 @@ jobs: run: sed -i 's/\/hl2 \/episodic/\/${{inputs.game}}/' create${{inputs.project-group}}projects - name: Set configuration + working-directory: '${{inputs.branch}}/src' shell: bash run: | config=${{ inputs.configuration }} export CFG=${config,,} + echo ${CFG} - name: Create project files working-directory: '${{inputs.branch}}/src' @@ -214,7 +216,7 @@ jobs: - name: Build working-directory: '${{inputs.branch}}/src' - run: make -f ${{inputs.solution-name}}.mak + run: make CFG=${CFG} -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- From 40b8c82412da9faba626497833f7a1b47b2e2915 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 12:48:16 -0500 Subject: [PATCH 43/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 3e30e9ac312..e9716a3f50c 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -187,6 +187,8 @@ jobs: if: inputs.build-on-linux == true && inputs.project-group != 'maptools' # No Linux map tools for now name: Ubuntu (GCC/G++) runs-on: ubuntu-latest + env: + config: ${{ inputs.configuration }} steps: - uses: actions/checkout@v3 @@ -204,9 +206,9 @@ jobs: working-directory: '${{inputs.branch}}/src' shell: bash run: | - config=${{ inputs.configuration }} + config=${{inputs.configuration}} export CFG=${config,,} - echo ${CFG} + echo "${CFG}" >> $config - name: Create project files working-directory: '${{inputs.branch}}/src' @@ -216,7 +218,7 @@ jobs: - name: Build working-directory: '${{inputs.branch}}/src' - run: make CFG=${CFG} -f ${{inputs.solution-name}}.mak + run: make CFG=${{env.config}} -f ${{inputs.solution-name}}.mak # -------------------------------------------------------------------- From 075089f09f69704e59679ecb446fc57f4a71d341 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 12:56:24 -0500 Subject: [PATCH 44/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index e9716a3f50c..6f2854b40e5 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -208,7 +208,7 @@ jobs: run: | config=${{inputs.configuration}} export CFG=${config,,} - echo "${CFG}" >> $config + echo "CFG=${CFG}" >> $GITHUB_ENV - name: Create project files working-directory: '${{inputs.branch}}/src' From 51616c615376520c187295f7b199f7a545130a01 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 20 Oct 2022 13:02:06 -0500 Subject: [PATCH 45/46] Updated GitHub workflows --- .github/workflows/mapbase_build-base.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mapbase_build-base.yml b/.github/workflows/mapbase_build-base.yml index 6f2854b40e5..b5542f6efc3 100644 --- a/.github/workflows/mapbase_build-base.yml +++ b/.github/workflows/mapbase_build-base.yml @@ -208,7 +208,7 @@ jobs: run: | config=${{inputs.configuration}} export CFG=${config,,} - echo "CFG=${CFG}" >> $GITHUB_ENV + echo "config=${CFG}" >> $GITHUB_ENV - name: Create project files working-directory: '${{inputs.branch}}/src' From a20b92e743532bf7f19eb60a8855280592e78575 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Fri, 21 Oct 2022 11:54:57 -0500 Subject: [PATCH 46/46] Updated CONTRIBUTING.md --- .github/CONTRIBUTING.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b7cac7ad522..07391b886d4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -47,10 +47,12 @@ which seriously violates the rules above can lead to being blocked from contribu --- Mapbase uses GitHub Actions to help manage issues and pull requests. Some of these workflows build the code of incoming -contributions to make sure they compile properly. This will compile it for both Visual Studio 2022 and GCC/G++ 9 (Linux). +contributions to make sure they compile properly. The code is compiled separately for Visual Studio 2022 and GCC/G++ 9 (Linux) +and on both Debug and Release configurations. + If these workflows fail, don't freak out! Accidents can happen frequently due to compiler syntax differences and conflicts -from other contributions. You can look at a failed workflow's log by clicking "Details" and find the compiler error(s). -These errors must be resolved by you and/or by any code reviewer(s) before a pull request can be merged. +from other contributions. You can look at a failed workflow's log by clicking "Details", which will include the build's output. +Any errors must be resolved by you and/or by code reviewers before a pull request can be merged. If your contribution is accepted, you may be listed in Mapbase's credits and the README's external content list: https://github.com/mapbase-source/source-sdk-2013/wiki/Mapbase-Credits#Contributors