mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 17:14:47 +01:00
34289bfce8
## About The Pull Request <img width="908" height="878" alt="image" src="https://github.com/user-attachments/assets/7262576b-f7d9-4be4-8cff-6662f85698fd" /> Our application of Ubuntu 22.04 versus Ubuntu 24.04 (which is presently the version for `ubuntu-latest`) is pretty inconsistent even within the same suites, I figure we bump it up and set one standard moving forwards. This PR was originally set to autoset it to `ubuntu-latest` but wow the issues are agonizing so let's just bump it up and keep it synchronized also bumps python to `3.11.0` and whatever dependency versions needed that as that was necessary
90 lines
2.6 KiB
YAML
90 lines
2.6 KiB
YAML
name: CI Suite
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- "project/**"
|
|
merge_group:
|
|
branches:
|
|
- master
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
start_gate:
|
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
|
name: Start Gate
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Mandatory Empty Step
|
|
run: exit 0
|
|
|
|
run_linters:
|
|
name: Run Linters
|
|
needs: start_gate
|
|
uses: ./.github/workflows/run_linters.yml
|
|
|
|
collect_data:
|
|
name: Collect data and setup caches for other tasks
|
|
needs: start_gate
|
|
uses: ./.github/workflows/collect_data.yml
|
|
|
|
compile_all_maps:
|
|
name: Compile Maps
|
|
needs: collect_data
|
|
uses: ./.github/workflows/compile_all_maps.yml
|
|
with:
|
|
max_required_byond_client: ${{ needs.collect_data.outputs.max_required_byond_client }}
|
|
|
|
setup_build_artifacts:
|
|
name: Setup build artifacts
|
|
needs: collect_data
|
|
uses: ./.github/workflows/setup_build_artifacts.yml
|
|
with:
|
|
build_versions: ${{ needs.collect_data.outputs.required_build_versions }}
|
|
|
|
run_all_tests:
|
|
name: Integration Tests
|
|
needs: [collect_data, setup_build_artifacts]
|
|
uses: ./.github/workflows/perform_regular_version_tests.yml
|
|
with:
|
|
maps: ${{ needs.collect_data.outputs.maps }}
|
|
max_required_byond_client: ${{ needs.collect_data.outputs.max_required_byond_client }}
|
|
|
|
run_alternate_tests:
|
|
if: needs.collect_data.outputs.alternate_tests != '[]'
|
|
name: Alternate Tests
|
|
needs: [collect_data, setup_build_artifacts]
|
|
uses: ./.github/workflows/perform_alternate_version_tests.yml
|
|
with:
|
|
alternate_tests: ${{ needs.collect_data.outputs.alternate_tests }}
|
|
default_max_required_byond_client: ${{ needs.collect_data.outputs.max_required_byond_client }}
|
|
|
|
compare_screenshots:
|
|
if: needs.collect_data.outputs.alternate_tests == '[]' || needs.run_alternate_tests.result == 'success'
|
|
needs: [collect_data, run_all_tests, run_alternate_tests]
|
|
name: Compare Screenshot Tests
|
|
uses: ./.github/workflows/compare_screenshots.yml
|
|
|
|
completion_gate: # Serves as a non-moving target for branch rulesets
|
|
if: always() && !cancelled()
|
|
name: Completion Gate
|
|
needs:
|
|
[
|
|
compare_screenshots,
|
|
compile_all_maps,
|
|
run_all_tests,
|
|
run_alternate_tests,
|
|
run_linters,
|
|
]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Decide whether the needed jobs succeeded or failed
|
|
uses: re-actors/alls-green@release/v1
|
|
with:
|
|
jobs: ${{ toJSON(needs) }}
|
|
allowed-skips: compare_screenshots
|