[pull] master from goonstation:master #15269
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Automaton, a beepsky supplement for checking runtime violations in maps and much more | |
# Based on Turdis by Yogstation | |
name: Automaton | |
on: | |
pull_request: | |
branches: [master] | |
push: | |
branches: | |
- "master" | |
jobs: | |
runtime: | |
name: Runtime Checker | |
runs-on: ubuntu-22.04 | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
strategy: | |
fail-fast: false | |
matrix: | |
map: | |
[ | |
"COGMAP", | |
"COGMAP2", | |
"CLARION", | |
"DONUT3", | |
"DONUT2", | |
"OSHAN", | |
"KONDARU", | |
"NADIR", | |
"ATLAS", | |
"SPACE_PREFAB", | |
"UNDERWATER_PREFAB", | |
"RANDOM_ROOMS", | |
"FULL", | |
] | |
compiletype: ["default"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add Architecture | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo sed -i'' -E 's/^(deb|deb-src) http:\/\/(azure.archive|security).ubuntu.com/\1 [arch=amd64,i386] http:\/\/\2.ubuntu.com/' /etc/apt/sources.list | |
sudo apt-get update | |
- name: Install Dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: libssl-dev:i386 libgcc-s1:i386 | |
version: 1.0 | |
- name: Cache BYOND | |
uses: actions/cache@v4 | |
with: | |
path: ~/BYOND | |
key: ${{ runner.os }}-byond-${{ hashFiles('buildByond.conf')}} | |
restore-keys: ${{ runner.os }}-byond | |
- name: Setup BYOND | |
run: | | |
tools/ci/install_byond.sh | |
cd $GITHUB_WORKSPACE | |
printenv | |
echo "BYOND_SYSTEM=/home/runner/BYOND/byond" >> $GITHUB_ENV | |
echo "/home/runner/BYOND/byond/bin" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=/home/runner/BYOND/byond/bin:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "MANPATH=/home/runner/BYOND/byond/man:$MANPATH" >> $GITHUB_ENV | |
- name: Setup for assjam | |
if: "matrix.compiletype == 'ass'" | |
run: | | |
sed -i 's/BUILD_TIME_DAY 01/BUILD_TIME_DAY 13/' _std/__build.dm | |
- name: Setup rust-g | |
run: | | |
tools/ci/install_rust_g.sh | |
- name: Compile map | |
if: "matrix.map != 'SPACE_PREFAB' && matrix.map != 'UNDERWATER_PREFAB' && matrix.map != 'FULL'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DMAP_OVERRIDE_${{ matrix.map}} -DCI_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile space prefabs | |
if: "matrix.map == 'SPACE_PREFAB'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DSPACE_PREFAB_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile underwater prefabs | |
if: "matrix.map == 'UNDERWATER_PREFAB'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DUNDERWATER_PREFAB_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile random rooms | |
if: "matrix.map == 'RANDOM_ROOMS'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DRANDOM_ROOM_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile with full pre-round setup | |
if: "matrix.map == 'FULL'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DCI_RUNTIME_CHECKING goonstation.dme | |
- name: Run map and check for runtime errors | |
run: | | |
tools/ci/run_server.sh | |
runtime_full: | |
name: "Runtime Checker with Secret Submodule" | |
runs-on: ubuntu-22.04 | |
if: | | |
((github.event_name == 'push' && github.repository == 'goonstation/goonstation') || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'goonstation/goonstation')) && !contains(github.event.head_commit.message, 'skip ci') | |
strategy: | |
fail-fast: false | |
matrix: | |
map: | |
[ | |
"COGMAP", | |
"COGMAP2", | |
"CLARION", | |
"DONUT3", | |
"DONUT2", | |
"OSHAN", | |
"KONDARU", | |
"NADIR", | |
"ATLAS", | |
"SPACE_PREFAB", | |
"UNDERWATER_PREFAB", | |
"FULL", | |
] | |
compiletype: ["default"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
token: "${{ secrets.ROBUDDYBOT_PAT }}" | |
- name: Add Architecture | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo sed -i'' -E 's/^(deb|deb-src) http:\/\/(azure.archive|security).ubuntu.com/\1 [arch=amd64,i386] http:\/\/\2.ubuntu.com/' /etc/apt/sources.list | |
sudo apt-get update | |
- name: Install Dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: libssl-dev:i386 libgcc-s1:i386 | |
version: 1.0 | |
- name: Cache BYOND | |
uses: actions/cache@v4 | |
with: | |
path: ~/BYOND | |
key: ${{ runner.os }}-byond-${{ hashFiles('buildByond.conf')}} | |
restore-keys: ${{ runner.os }}-byond | |
- name: Setup BYOND | |
run: | | |
tools/ci/install_byond.sh | |
cd $GITHUB_WORKSPACE | |
printenv | |
echo "BYOND_SYSTEM=/home/runner/BYOND/byond" >> $GITHUB_ENV | |
echo "/home/runner/BYOND/byond/bin" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=/home/runner/BYOND/byond/bin:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "MANPATH=/home/runner/BYOND/byond/man:$MANPATH" >> $GITHUB_ENV | |
- name: Setup for assjam | |
if: "matrix.compiletype == 'ass'" | |
run: | | |
sed -i 's/BUILD_TIME_DAY 01/BUILD_TIME_DAY 13/' _std/__build.dm | |
- name: Setup rust-g | |
run: | | |
tools/ci/install_rust_g.sh | |
- name: Compile map | |
if: "matrix.map != 'SPACE_PREFAB' && matrix.map != 'UNDERWATER_PREFAB' && matrix.map != 'FULL'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DMAP_OVERRIDE_${{ matrix.map}} -DCI_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile space prefabs | |
if: "matrix.map == 'SPACE_PREFAB'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DSPACE_PREFAB_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile underwater prefabs | |
if: "matrix.map == 'UNDERWATER_PREFAB'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DUNDERWATER_PREFAB_RUNTIME_CHECKING -DIM_REALLY_IN_A_FUCKING_HURRY_HERE goonstation.dme | |
- name: Compile with full pre-round setup | |
if: "matrix.map == 'FULL'" | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DCI_RUNTIME_CHECKING goonstation.dme | |
- name: Run map and check for runtime errors | |
run: | | |
tools/ci/run_server.sh | |
unit_test: | |
name: Unit Tests | |
runs-on: ubuntu-22.04 | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add Architecture | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo sed -i'' -E 's/^(deb|deb-src) http:\/\/(azure.archive|security).ubuntu.com/\1 [arch=amd64,i386] http:\/\/\2.ubuntu.com/' /etc/apt/sources.list | |
sudo apt-get update | |
- name: Install Dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: libssl-dev:i386 libgcc-s1:i386 | |
version: 1.0 | |
- name: Cache BYOND | |
uses: actions/cache@v4 | |
with: | |
path: ~/BYOND | |
key: ${{ runner.os }}-byond-${{ hashFiles('buildByond.conf')}} | |
restore-keys: ${{ runner.os }}-byond | |
- name: Setup BYOND | |
run: | | |
tools/ci/install_byond.sh | |
cd $GITHUB_WORKSPACE | |
printenv | |
echo "BYOND_SYSTEM=/home/runner/BYOND/byond" >> $GITHUB_ENV | |
echo "/home/runner/BYOND/byond/bin" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=/home/runner/BYOND/byond/bin:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "MANPATH=/home/runner/BYOND/byond/man:$MANPATH" >> $GITHUB_ENV | |
- name: Setup rust-g | |
run: | | |
tools/ci/install_rust_g.sh | |
- name: Build Unit Tests | |
run: | | |
tools/ci/dm.sh -DCIBUILD -DUNIT_TESTS -DUNIT_TESTS_RUN_TILL_COMPLETION goonstation.dme | |
- name: Run Unit Tests | |
run: | | |
tools/ci/run_server.sh |