Skip to content

tweak(tree): Decouple tree sway, topple and sink time step from render update #3495

tweak(tree): Decouple tree sway, topple and sink time step from render update

tweak(tree): Decouple tree sway, topple and sink time step from render update #3495

Workflow file for this run

name: GenCI
permissions:
contents: read
pull-requests: write
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
detect-changes:
name: Detect File Changes
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
generals: ${{ steps.filter.outputs.generals }}
generalsmd: ${{ steps.filter.outputs.generalsmd }}
shared: ${{ steps.filter.outputs.shared }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Filter Changed Paths
uses: dorny/paths-filter@v3
id: filter
with:
token: ''
filters: |
generals:
- 'Generals/**'
generalsmd:
- 'GeneralsMD/**'
shared:
- '.github/workflows/**'
- 'CMakeLists.txt'
- 'CMakePresets.json'
- 'cmake/**'
- 'Core/**'
- 'Dependencies/**'
- name: Changes Summary
run: |
echo "### πŸ” File Changes Summary" >> $GITHUB_STEP_SUMMARY
echo "- Generals: ${{ steps.filter.outputs.generals == 'true' && 'βœ…' || '❌' }}" >> $GITHUB_STEP_SUMMARY
echo "- GeneralsMD: ${{ steps.filter.outputs.generalsmd == 'true' && 'βœ…' || '❌' }}" >> $GITHUB_STEP_SUMMARY
echo "- Shared: ${{ steps.filter.outputs.shared == 'true' && 'βœ…' || '❌' }}" >> $GITHUB_STEP_SUMMARY
build-generals:
name: Build Generals${{ matrix.preset && '' }}
needs: detect-changes
if: ${{ github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.generals == 'true' || needs.detect-changes.outputs.shared == 'true' }}
strategy:
matrix:
include:
- preset: "vc6"
tools: true
extras: true
- preset: "vc6-profile"
tools: true
extras: true
- preset: "vc6-debug"
tools: true
extras: true
- preset: "win32"
tools: true
extras: true
- preset: "win32-profile"
tools: true
extras: true
- preset: "win32-debug"
tools: true
extras: true
# vcpkg builds have been disabled for now due to excessive build times of 30 minutes per preset
# - preset: "win32-vcpkg"
# tools: true
# extras: true
# - preset: "win32-vcpkg-profile"
# tools: true
# extras: true
# - preset: "win32-vcpkg-debug"
# tools: true
# extras: true
fail-fast: false
uses: ./.github/workflows/build-toolchain.yml
with:
game: "Generals"
preset: ${{ matrix.preset }}
tools: ${{ matrix.tools }}
extras: ${{ matrix.extras }}
secrets: inherit
# Note build-generalsmd is split into two jobs for vc6 and win32 because replaycheck-generalsmd
# only requires the vc6 build and compiling vc6 is much faster than win32
build-generalsmd-vc6:
name: Build GeneralsMD${{ matrix.preset && '' }}
needs: detect-changes
if: ${{ github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.generalsmd == 'true' || needs.detect-changes.outputs.shared == 'true' }}
strategy:
matrix:
include:
- preset: "vc6"
tools: true
extras: true
- preset: "vc6-profile"
tools: true
extras: true
- preset: "vc6-debug"
tools: true
extras: true
- preset: "vc6-releaselog"
tools: true
extras: true
fail-fast: false
uses: ./.github/workflows/build-toolchain.yml
with:
game: "GeneralsMD"
preset: ${{ matrix.preset }}
tools: ${{ matrix.tools }}
extras: ${{ matrix.extras }}
secrets: inherit
build-generalsmd-win32:
name: Build GeneralsMD${{ matrix.preset && '' }}
needs: detect-changes
if: ${{ github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.generalsmd == 'true' || needs.detect-changes.outputs.shared == 'true' }}
strategy:
matrix:
include:
- preset: "win32"
tools: true
extras: true
- preset: "win32-profile"
tools: true
extras: true
- preset: "win32-debug"
tools: true
extras: true
# vcpkg builds have been disabled for now due to excessive build times of 30 minutes per preset
# - preset: "win32-vcpkg"
# tools: true
# extras: true
# - preset: "win32-vcpkg-profile"
# tools: true
# extras: true
# - preset: "win32-vcpkg-debug"
# tools: true
# extras: true
fail-fast: false
uses: ./.github/workflows/build-toolchain.yml
with:
game: "GeneralsMD"
preset: ${{ matrix.preset }}
tools: ${{ matrix.tools }}
extras: ${{ matrix.extras }}
secrets: inherit
replaycheck-generalsmd:
name: Replay Check GeneralsMD${{ matrix.preset && '' }}
needs: build-generalsmd-vc6
if: ${{ github.event_name == 'workflow_dispatch' || needs.detect-changes.outputs.generalsmd == 'true' || needs.detect-changes.outputs.shared == 'true' }}
strategy:
matrix:
include:
- preset: "vc6+t+e"
- preset: "vc6-releaselog+t+e" # optimized build with logging and crashing enabled should be compatible, so we test that here.
fail-fast: false
uses: ./.github/workflows/check-replays.yml
with:
game: "GeneralsMD"
userdata: "GeneralsReplays/GeneralsZH/1.04"
preset: ${{ matrix.preset }}
secrets: inherit