mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-03-30 22:39:03 +03:00
GitHub build workflows (#204)
This commit is contained in:
parent
03fffae585
commit
3f5807f1fd
24
.github/CONTRIBUTING.md
vendored
24
.github/CONTRIBUTING.md
vendored
@ -23,12 +23,12 @@ All contributions must follow the following rules:
|
|||||||
is usually not fit for Mapbase.
|
is usually not fit for Mapbase.
|
||||||
|
|
||||||
* All content in a contribution must be either already legally open-source or done with the
|
* 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
|
full permission of the content's original creator(s). If a license is involved, the contributor
|
||||||
must ensure Mapbase follows said licensing.
|
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
|
* **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.
|
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
|
Contributions which can draw from them without actually distributing the licensed content may be excepted
|
||||||
be excepted from this rule.
|
from this rule.
|
||||||
|
|
||||||
* Contributions must not break existing maps/content or interfere with them in a negative or non-objective way.
|
* Contributions must not break existing maps/content or interfere with them in a negative or non-objective way.
|
||||||
|
|
||||||
@ -41,13 +41,19 @@ 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.
|
* 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.
|
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.
|
||||||
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. 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", 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:
|
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/wiki/Mapbase-Credits#Contributors
|
||||||
https://github.com/mapbase-source/source-sdk-2013/blob/master/README
|
https://github.com/mapbase-source/source-sdk-2013/blob/master/README
|
||||||
|
27
.github/labeler.yml
vendored
Normal file
27
.github/labeler.yml
vendored
Normal file
@ -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**'
|
68
.github/workflows/mapbase_build-base-dispatch.yml
vendored
Normal file
68
.github/workflows/mapbase_build-base-dispatch.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#
|
||||||
|
# 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:
|
||||||
|
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
|
||||||
|
game:
|
||||||
|
description: 'Name of the game to build (if relevant)'
|
||||||
|
default: 'episodic'
|
||||||
|
required: false
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- episodic
|
||||||
|
- hl2
|
||||||
|
project-group:
|
||||||
|
description: 'Which group of projects to compile'
|
||||||
|
required: true
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- all
|
||||||
|
- game
|
||||||
|
- shaders
|
||||||
|
- maptools
|
||||||
|
solution-name:
|
||||||
|
description: 'Name of the solution/makefile'
|
||||||
|
required: true
|
||||||
|
type: choice
|
||||||
|
options:
|
||||||
|
- everything
|
||||||
|
- games
|
||||||
|
- shaders
|
||||||
|
- maptools
|
||||||
|
build-on-linux:
|
||||||
|
description: 'Build on Ubuntu/Linux?'
|
||||||
|
default: true
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_manual:
|
||||||
|
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 }}'
|
265
.github/workflows/mapbase_build-base.yml
vendored
Normal file
265
.github/workflows/mapbase_build-base.yml
vendored
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
#
|
||||||
|
# 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:
|
||||||
|
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
|
||||||
|
game:
|
||||||
|
description: 'The name of the game to build (if relevant)'
|
||||||
|
default: 'episodic'
|
||||||
|
required: false
|
||||||
|
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
|
||||||
|
build-on-linux:
|
||||||
|
description: 'Build on Ubuntu/Linux?'
|
||||||
|
default: true
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_windows:
|
||||||
|
name: Windows (VS2022)
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- 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: Pick 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}}/' create${{inputs.project-group}}projects.bat
|
||||||
|
|
||||||
|
- 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}} fgdlib\fgdlib.vcxproj
|
||||||
|
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vbsp\vbsp.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_dll.vcxproj
|
||||||
|
msbuild -m -p:Configuration=${{inputs.configuration}} utils\vrad_launcher\vrad_launcher.vcxproj
|
||||||
|
|
||||||
|
- name: Build 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_${{inputs.game}}.vcxproj
|
||||||
|
|
||||||
|
- name: Build 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: |
|
||||||
|
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
|
||||||
|
msbuild -m -p:Configuration=${{inputs.configuration}} game\server\server_hl2.vcxproj
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
|
||||||
|
- name: Publish Windows game DLLs
|
||||||
|
if: inputs.project-group == 'all' || inputs.project-group == 'game'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
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
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
- name: Publish Windows shader DLL
|
||||||
|
if: inputs.project-group == 'shaders'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Publish Windows map tools
|
||||||
|
if: inputs.project-group == 'maptools'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: 'Windows Map Tools [${{ inputs.configuration }}]'
|
||||||
|
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@v3
|
||||||
|
with:
|
||||||
|
name: 'Everything (Windows) [${{ inputs.configuration }}]'
|
||||||
|
path: |
|
||||||
|
${{inputs.branch}}/game/bin
|
||||||
|
${{inputs.branch}}/game/mod_*/bin
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build_ubuntu:
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Install GCC/G++ multilib
|
||||||
|
run: sudo apt-get install gcc-multilib g++-multilib
|
||||||
|
|
||||||
|
- name: Pick 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}}/' create${{inputs.project-group}}projects
|
||||||
|
|
||||||
|
- name: Set configuration
|
||||||
|
working-directory: '${{inputs.branch}}/src'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
config=${{inputs.configuration}}
|
||||||
|
export CFG=${config,,}
|
||||||
|
echo "config=${CFG}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Create project files
|
||||||
|
working-directory: '${{inputs.branch}}/src'
|
||||||
|
run: sudo ./create${{inputs.project-group}}projects
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
working-directory: '${{inputs.branch}}/src'
|
||||||
|
run: make CFG=${{env.config}} -f ${{inputs.solution-name}}.mak
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
|
||||||
|
- name: Publish Linux game SOs
|
||||||
|
if: inputs.project-group == 'game'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
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
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
- name: Publish Linux shader SO
|
||||||
|
if: inputs.project-group == 'shaders'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
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
|
||||||
|
|
||||||
|
#- name: Publish Linux map tools
|
||||||
|
# if: inputs.project-group == 'maptools'
|
||||||
|
# uses: actions/upload-artifact@v3
|
||||||
|
# with:
|
||||||
|
# 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
|
||||||
|
|
||||||
|
- name: Publish everything (Linux)
|
||||||
|
if: inputs.project-group == 'all'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: 'Everything (Linux) [${{ inputs.configuration }}]'
|
||||||
|
path: |
|
||||||
|
${{inputs.branch}}/game/bin
|
||||||
|
${{inputs.branch}}/game/mod_*/bin
|
||||||
|
if-no-files-found: error
|
37
.github/workflows/mapbase_build-sp-games.yml
vendored
Normal file
37
.github/workflows/mapbase_build-sp-games.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# 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:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/mapbase_build-sp-rel-games.yml'
|
||||||
|
- 'sp/src/vpc_scripts/**'
|
||||||
|
- 'sp/src/game/**'
|
||||||
|
- 'sp/src/mathlib/**'
|
||||||
|
- 'sp/src/responserules/runtime/**'
|
||||||
|
- 'sp/src/tier1/**'
|
||||||
|
- 'sp/src/vgui2/vgui_controls/**'
|
||||||
|
- 'sp/src/vscript/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
games:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
configuration: [Release, Debug]
|
||||||
|
uses: ./.github/workflows/mapbase_build-base.yml
|
||||||
|
with:
|
||||||
|
configuration: ${{ matrix.configuration }}
|
||||||
|
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
|
38
.github/workflows/mapbase_build-sp-maptools.yml
vendored
Normal file
38
.github/workflows/mapbase_build-sp-maptools.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# 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:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 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/**'
|
||||||
|
- 'sp/src/utils/vrad/**'
|
||||||
|
- 'sp/src/utils/vrad_launcher/**'
|
||||||
|
- 'sp/src/mathlib/**'
|
||||||
|
- 'sp/src/tier1/**'
|
||||||
|
- 'sp/src/vgui2/vgui_controls/**'
|
||||||
|
- 'sp/src/vscript/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
maptools:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
configuration: [Release, Debug]
|
||||||
|
uses: ./.github/workflows/mapbase_build-base.yml
|
||||||
|
with:
|
||||||
|
configuration: ${{ matrix.configuration }}
|
||||||
|
branch: 'sp'
|
||||||
|
project-group: 'maptools'
|
||||||
|
solution-name: 'maptools'
|
33
.github/workflows/mapbase_build-sp-shaders.yml
vendored
Normal file
33
.github/workflows/mapbase_build-sp-shaders.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# 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:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/mapbase_build-sp-rel-shaders.yml'
|
||||||
|
- 'sp/src/vpc_scripts/**'
|
||||||
|
- 'sp/src/materialsystem/**'
|
||||||
|
- 'sp/src/mathlib/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
shaders:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
configuration: [Release, Debug]
|
||||||
|
uses: ./.github/workflows/mapbase_build-base.yml
|
||||||
|
with:
|
||||||
|
configuration: ${{ matrix.configuration }}
|
||||||
|
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
|
23
.github/workflows/mapbase_pr.yml
vendored
Normal file
23
.github/workflows/mapbase_pr.yml
vendored
Normal file
@ -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 }}"
|
5
sp/src/createmaptoolsprojects
Executable file
5
sp/src/createmaptoolsprojects
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pushd `dirname $0`
|
||||||
|
devtools/bin/vpc /hl2 /episodic +maptools /mksln maptools
|
||||||
|
popd
|
1
sp/src/createmaptoolsprojects.bat
Normal file
1
sp/src/createmaptoolsprojects.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
devtools\bin\vpc.exe +maptools /mksln maptools.sln
|
5
sp/src/createshadersprojects
Executable file
5
sp/src/createshadersprojects
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pushd `dirname $0`
|
||||||
|
devtools/bin/vpc /hl2 /episodic +shaders /mksln shaders
|
||||||
|
popd
|
1
sp/src/createshadersprojects.bat
Normal file
1
sp/src/createshadersprojects.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
devtools\bin\vpc.exe /hl2 /episodic +shaders /mksln shaders.sln
|
@ -26,9 +26,15 @@ $Group "game"
|
|||||||
"responserules"
|
"responserules"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$Group "shaderdlls"
|
||||||
|
{
|
||||||
|
"game_shader_dx9"
|
||||||
|
}
|
||||||
|
|
||||||
$Group "shaders"
|
$Group "shaders"
|
||||||
{
|
{
|
||||||
"game_shader_dx9"
|
"game_shader_dx9"
|
||||||
|
"mathlib"
|
||||||
}
|
}
|
||||||
|
|
||||||
$Group "everything"
|
$Group "everything"
|
||||||
|
@ -67,8 +67,9 @@ $Configuration
|
|||||||
|
|
||||||
$PostBuildEvent [!$ANALYZE]
|
$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 "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" \
|
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $OUTBINDIR\$(TargetFileName) >nul" "\n" \
|
||||||
"if ERRORLEVEL 1 goto BuildEventFailed" "\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"
|
"if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map >nul" "\n"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user