mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
## 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
108 lines
4.4 KiB
YAML
108 lines
4.4 KiB
YAML
name: Run Linters
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
linters:
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Restore SpacemanDMM cache
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: ~/SpacemanDMM
|
|
key: ${{ runner.os }}-spacemandmm-${{ hashFiles('dependencies.sh') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-spacemandmm-
|
|
- name: Setup Bun
|
|
uses: ./.github/actions/setup_bun
|
|
- name: Restore Bootstrap cache
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: tools/bootstrap/.cache
|
|
key: ${{ runner.os }}-bootstrap-${{ hashFiles('/tools/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-bootstrap-
|
|
- name: Restore Rust cache
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: ~/.cargo
|
|
key: ${{ runner.os }}-rust-${{ hashFiles('/tools/ci/ci_dependencies.sh')}}
|
|
restore-keys: |
|
|
${{ runner.os }}-rust-
|
|
- name: Restore Cutter cache
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: tools/icon_cutter/cache
|
|
key: ${{ runner.os }}-cutter-${{ hashFiles('dependencies.sh') }}
|
|
- name: Setup .NET SDK
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: 9.x
|
|
- name: Install OpenDream
|
|
uses: robinraju/release-downloader@v1.12
|
|
with:
|
|
repository: "OpenDreamProject/OpenDream"
|
|
tag: "latest"
|
|
fileName: "DMCompiler_linux-x64.tar.gz"
|
|
extract: true
|
|
- name: Install Tools
|
|
run: |
|
|
pip3 install setuptools
|
|
bash tools/ci/install_spaceman_dmm.sh dreamchecker
|
|
bash tools/ci/install_ripgrep.sh
|
|
tools/bootstrap/python -c ''
|
|
- name: Give Linters A Go
|
|
id: linter-setup
|
|
run: ":"
|
|
- name: Ensure genesis_call.dme is unchanged
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: bash tools/ci/check_genesis.sh
|
|
- name: Run Grep Checks
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: bash tools/ci/check_grep.sh
|
|
- name: Ticked File Enforcement
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: |
|
|
tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/tgstation_dme.json
|
|
tools/bootstrap/python tools/ticked_file_enforcement/ticked_file_enforcement.py < tools/ticked_file_enforcement/schemas/unit_tests.json
|
|
- name: Check Define Sanity
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: tools/bootstrap/python -m define_sanity.check
|
|
- name: Check Trait Validity
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: tools/bootstrap/python -m trait_validity.check
|
|
- name: Run DreamChecker
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
shell: bash
|
|
run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh
|
|
- name: Run OpenDream
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: ./DMCompiler_linux-x64/DMCompiler tgstation.dme --suppress-unimplemented --define=CIBUILDING | bash tools/ci/annotate_od.sh
|
|
- name: Run Map Checks
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: |
|
|
tools/bootstrap/python -m mapmerge2.dmm_test
|
|
tools/bootstrap/python -m tools.maplint.source
|
|
- name: Check Cutter
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: tools/bootstrap/python -m tools.icon_cutter.check
|
|
- name: Run DMI Tests
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: tools/bootstrap/python -m dmi.test
|
|
- name: Check File Directories
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: bash tools/ci/check_filedirs.sh tgstation.dme
|
|
- name: Check Changelogs
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: bash tools/ci/check_changelogs.sh
|
|
- name: Check Miscellaneous Files
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: bash tools/ci/check_misc.sh
|
|
- name: Run TGUI Checks
|
|
if: steps.linter-setup.conclusion == 'success' && !cancelled()
|
|
run: tools/build/build.sh --ci lint tgui-test
|