Skip to content

[pull] master from goonstation:master #15270

[pull] master from goonstation:master

[pull] master from goonstation:master #15270

Workflow file for this run

# 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