From 1b6bc30f5fcf0637c3909787242a5e3aeea465cf Mon Sep 17 00:00:00 2001 From: SuperCake Date: Sat, 15 Aug 2026 21:01:10 +0200 Subject: [PATCH 1/4] refactor(gh): merge release and debug jobs into a matrix and move down missionchooser step --- .github/workflows/build.yaml | 62 +++++++----------------------------- 1 file changed, 11 insertions(+), 51 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 100004ff4..2c3a550ea 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,78 +14,38 @@ on: # https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions jobs: - release: - name: build release + build: + name: build ${{ matrix.configuration }} runs-on: windows-2025-vs2026 timeout-minutes: 30 + strategy: + matrix: + configuration: [Release, Debug] + steps: - #checkout project - uses: actions/checkout@v4 - # setup msbuild - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 - # missionchooser.dll - - name: Build missionchooser.dll - working-directory: src/game/missionchooser - run: MSBuild.exe swarm_sdk_missionchooser.vcxproj -property:Configuration=Release -property:Platform=Win32 - - # server.dll - name: Build server.dll working-directory: src/game/server - run: MSBuild.exe swarm_sdk_server.vcxproj -property:Configuration=Release -property:Platform=Win32 + run: MSBuild.exe swarm_sdk_server.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 - # client.dll - name: Build client.dll working-directory: src/game/client - run: MSBuild.exe swarm_sdk_client.vcxproj -property:Configuration=Release -property:Platform=Win32 + run: MSBuild.exe swarm_sdk_client.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 - # store artifacts - # make sure retention is low, this can become huge otherwise - - name: Store build - uses: actions/upload-artifact@v4 - with: - name: Release - path: | - reactivedrop/bin/missionchooser.dll - reactivedrop/bin/server.dll - reactivedrop/bin/client.dll - - debug: - name: build debug - runs-on: windows-2025-vs2026 - timeout-minutes: 30 - steps: - #checkout project - - uses: actions/checkout@v4 - - # setup msbuild - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v2 - - # missionchooser.dll - name: Build missionchooser.dll working-directory: src/game/missionchooser - run: MSBuild.exe swarm_sdk_missionchooser.vcxproj -property:Configuration=Debug -property:Platform=Win32 - - # server.dll - - name: Build server.dll - working-directory: src/game/server - run: MSBuild.exe swarm_sdk_server.vcxproj -property:Configuration=Debug -property:Platform=Win32 + run: MSBuild.exe swarm_sdk_missionchooser.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 - # client.dll - - name: Build client.dll - working-directory: src/game/client - run: MSBuild.exe swarm_sdk_client.vcxproj -property:Configuration=Debug -property:Platform=Win32 - - # store artifacts # make sure retention is low, this can become huge otherwise - name: Store build uses: actions/upload-artifact@v4 with: - name: Debug + name: ${{ matrix.configuration }} path: | - reactivedrop/bin/missionchooser.dll reactivedrop/bin/server.dll reactivedrop/bin/client.dll + reactivedrop/bin/missionchooser.dll From 2c111003d617d719a951bc488e0096c8b121ea88 Mon Sep 17 00:00:00 2001 From: SuperCake Date: Sat, 15 Aug 2026 22:06:29 +0200 Subject: [PATCH 2/4] feat(gh): add workflow dispatch --- .github/workflows/build.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2c3a550ea..7a5e9c883 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,4 +1,6 @@ name: Continuous integration +run-name: ${{ inputs.title }} + on: push: branches: @@ -8,6 +10,20 @@ on: branches: - reactivedrop_public - reactivedrop_beta + workflow_dispatch: + inputs: + title: + type: string + default: Workflow dispatch + configuration: + description: "Configuration to build" + required: true + type: choice + options: + - Release + - Debug + - All + default: All # GitHub Actions usage is FREE for both public repositories and self-hosted runners. # We can use it to build our project and do some automated builds and in future quality tests. @@ -20,7 +36,11 @@ jobs: timeout-minutes: 30 strategy: matrix: - configuration: [Release, Debug] + configuration: ${{ fromJSON( + (github.event_name != 'workflow_dispatch' || inputs.configuration == 'All') + && '["Release","Debug"]' + || format('["{0}"]', inputs.configuration) + ) }} steps: - uses: actions/checkout@v4 From b4a5f2ff2a4604c4a7c9c7a41f19e5edc6001b78 Mon Sep 17 00:00:00 2001 From: SuperCake Date: Fri, 28 Aug 2026 15:37:52 +0200 Subject: [PATCH 3/4] feat(gh): add dll chooser for workflow dispatch --- .github/workflows/build.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7a5e9c883..c508fc14f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,6 +24,18 @@ on: - Debug - All default: All + server: + description: server.dll + type: boolean + default: true + client: + description: client.dll + type: boolean + default: true + missionchooser: + description: missionchooser.dll + type: boolean + default: true # GitHub Actions usage is FREE for both public repositories and self-hosted runners. # We can use it to build our project and do some automated builds and in future quality tests. @@ -43,20 +55,30 @@ jobs: ) }} steps: + - name: Validate workflow dispatch dll selection + if: ${{ github.event_name == 'workflow_dispatch' && !inputs.server && !inputs.client && !inputs.missionchooser }} + shell: bash + run: | + echo "::error::Select at least one dll to build." + exit 1 + - uses: actions/checkout@v4 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 - name: Build server.dll + if: ${{ github.event_name != 'workflow_dispatch' || inputs.server }} working-directory: src/game/server run: MSBuild.exe swarm_sdk_server.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 - name: Build client.dll + if: ${{ github.event_name != 'workflow_dispatch' || inputs.client }} working-directory: src/game/client run: MSBuild.exe swarm_sdk_client.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 - name: Build missionchooser.dll + if: ${{ github.event_name != 'workflow_dispatch' || inputs.missionchooser }} working-directory: src/game/missionchooser run: MSBuild.exe swarm_sdk_missionchooser.vcxproj -property:Configuration=${{ matrix.configuration }} -property:Platform=Win32 From af71b6529d04751d15bf1b681bdc6fea72a13588 Mon Sep 17 00:00:00 2001 From: SuperCake Date: Fri, 28 Aug 2026 15:56:10 +0200 Subject: [PATCH 4/4] update github actions checkout@v7, setup-msbuild@v3, upload-artifact@v7 --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c508fc14f..faa738d11 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -44,7 +44,7 @@ on: jobs: build: name: build ${{ matrix.configuration }} - runs-on: windows-2025-vs2026 + runs-on: windows-2025 timeout-minutes: 30 strategy: matrix: @@ -62,10 +62,10 @@ jobs: echo "::error::Select at least one dll to build." exit 1 - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@v3 - name: Build server.dll if: ${{ github.event_name != 'workflow_dispatch' || inputs.server }} @@ -84,7 +84,7 @@ jobs: # make sure retention is low, this can become huge otherwise - name: Store build - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ matrix.configuration }} path: |