Skip to content

Run UpdatePaths

Run UpdatePaths #1018

Workflow file for this run

# Beepsky, Goonstation's replacement for a CI service like Travis, utilizing GitHub Actions
# Based on Turdis by Yogstation
name: Beepsky
on:
pull_request:
branches: [master]
push:
jobs:
lint:
name: Run Linters
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout@v6
- name: Read SpacemanDMM ref from config
id: smver
run: |
REF="$(grep -E '^SPACEMAN_DMM_REF=' buildByond.conf | cut -d= -f2)"
if [[ -z "$REF" ]]; then echo "SPACEMAN_DMM_REF missing"; exit 1; fi
echo "ref=$REF" >> "$GITHUB_OUTPUT"
- name: Cache SpacemanDMM
id: smcache
uses: actions/cache@v5
with:
path: /home/runner/SpacemanDMM
key: ${{ runner.os }}-spacemandmm-${{ steps.smver.outputs.ref }}
- name: Setup Rust
uses: hecrj/setup-rust-action@v2.0.1
- name: Install musl toolchain
if: steps.smcache.outputs.cache-hit != 'true'
run: |
rustup target add x86_64-unknown-linux-musl
sudo apt-get update
sudo apt-get install -y musl-tools
- uses: actions/setup-node@v6
with:
node-version: 24.14.1
cache: "yarn"
cache-dependency-path: |
./tgui/yarn.lock
./tgui/package.json
- uses: actions/setup-python@v6
with:
python-version: "3.10"
cache: pip
- name: Install Dependencies
run: |
touch +secret/__secret.dme
pip3 install setuptools
tools/ci/install_build_tools.sh
tools/bootstrap/python -c ''
- name: Build SpacemanDMM
if: steps.smcache.outputs.cache-hit != 'true'
run: |
tools/ci/install_spaceman_dmm.sh dreamchecker
- name: Check TGUI
run: |
tgui/bin/tgui --ci
- name: Misc Checks
run: |
tools/ci/check_filedirs.sh goonstation.dme
tools/ci/check_grep.sh
tools/bootstrap/python tools/ci/validate_dme.py <goonstation.dme
- name: Check Maps
run: |
tools/bootstrap/python -m dmi.test
tools/bootstrap/python -m mapmerge2.dmm_test
- name: Check Duplicate DMI Icon States
uses: spacestation13/dmi-duplicate-state-checker@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run Linter
id: linter
run: |
~/SpacemanDMM/dreamchecker
odlint:
name: Lint with OpenDream
runs-on: ubuntu-latest
steps:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5.2.0
with:
dotnet-version: 10
- uses: actions/checkout@v6
- uses: robinraju/release-downloader@v1.13
with:
repository: "OpenDreamProject/OpenDream"
tag: "latest"
fileName: "DMCompiler_linux-x64.tar.gz"
extract: true
- run: ./DMCompiler_linux-x64/DMCompiler --suppress-unimplemented goonstation.dme --version=516.1666
compile:
name: Compile
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-byond
- name: Compile
run: |
tools/ci/dm.sh -DCIBUILD goonstation.dme
# - name: Prepare Artifacts
# run: |
# mkdir artifacts
# cp goonstation.dmb artifacts
# cp goonstation.rsc artifacts
# - name: Upload Artifacts
# uses: actions/upload-artifact@v4
# with:
# name: DMB + RSC
# path: ${{github.workspace}}/artifacts
compile_full:
name: "Compile and Lint with Secret Submodule"
runs-on: ubuntu-latest
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')
steps:
- uses: actions/checkout@v6
with:
submodules: true
token: "${{ secrets.ROBUDDYBOT_PAT }}"
- uses: ./.github/actions/setup-byond
- name: Read SpacemanDMM ref from config
id: smver
run: |
REF="$(grep -E '^SPACEMAN_DMM_REF=' buildByond.conf | cut -d= -f2)"
if [[ -z "$REF" ]]; then echo "SPACEMAN_DMM_REF missing"; exit 1; fi
echo "ref=$REF" >> "$GITHUB_OUTPUT"
- name: Cache SpacemanDMM
id: smcache
uses: actions/cache@v5
with:
path: /home/runner/SpacemanDMM
key: ${{ runner.os }}-spacemandmm-${{ steps.smver.outputs.ref }}
- name: Setup Rust
uses: hecrj/setup-rust-action@v2.0.1
- name: Install musl toolchain
if: steps.smcache.outputs.cache-hit != 'true'
run: |
rustup target add x86_64-unknown-linux-musl
sudo apt-get update
sudo apt-get install -y musl-tools
- uses: actions/setup-node@v6
with:
node-version: 24.14.1
cache: "yarn"
cache-dependency-path: |
./tgui/yarn.lock
./tgui/package.json
- uses: actions/setup-python@v6
with:
python-version: "3.10"
cache: pip
- name: Install Dependencies
run: |
pip3 install setuptools
tools/ci/install_build_tools.sh
tools/bootstrap/python -c ''
- name: Build SpacemanDMM
if: steps.smcache.outputs.cache-hit != 'true'
run: |
tools/ci/install_spaceman_dmm.sh dreamchecker
- name: Misc Checks
run: |
tools/ci/check_filedirs.sh goonstation.dme
tgui/bin/tgui --ci
tools/ci/check_grep_secret.sh
tools/bootstrap/python tools/ci/validate_dme.py <goonstation.dme
tools/bootstrap/python -m dmi.test
tools/bootstrap/python -m mapmerge2.dmm_test
- name: Run Linter
id: linter
run: |
~/SpacemanDMM/dreamchecker
- name: Compile
run: |
tools/ci/dm.sh -DCIBUILD goonstation.dme