mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 07:57:50 +00:00
* The TGS thing * Revert the 516 revert * Further segment the world/New() proc * Fixes an issue here
113 lines
3.8 KiB
YAML
113 lines
3.8 KiB
YAML
name: CI
|
|
|
|
# Controls when the action will run.
|
|
on:
|
|
# Triggers the workflow on push or pull request events but only for the Bleeding-Edge branch
|
|
push:
|
|
branches: [ Bleeding-Edge ]
|
|
paths-ignore:
|
|
- 'html/changelogs/**'
|
|
pull_request:
|
|
branches: [ Bleeding-Edge ]
|
|
paths:
|
|
- '**.dm'
|
|
- '**.dmm'
|
|
- '**.dmi'
|
|
- 'vgstation13.dme'
|
|
- '.github/workflows/**'
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
BYOND_MAJOR: 516
|
|
BYOND_MINOR: 1659
|
|
|
|
#This can be declared here because build.py will ignore it if DM_UNIT_TESTS is true.
|
|
ALL_MAPS: tgstation metaclub defficiency packedstation roidstation test_tiny test_vault snaxi tgstation-sec tgstation-snow LampreyStation xoq synergy bagelstation lowfatbagel Dorfstation waystation line horizon wheelstation
|
|
|
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
jobs:
|
|
lint:
|
|
name: Run linters
|
|
# The type of runner that the job will run on
|
|
runs-on: ubuntu-latest
|
|
# Don't run this job if the commit message contains that string.
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@v3
|
|
# - uses: actions/setup-python@v4
|
|
# with:
|
|
# python-version: '3.x'
|
|
|
|
- name: Setup Python
|
|
run: |
|
|
tools/bootstrap/python -c ''
|
|
|
|
#TODO: Cache Dreamchecker install
|
|
- name: Run dreamchecker
|
|
run: |
|
|
SPACEMAN_DMM_GIT_TAG="suite-1.8" tools/travis/install_spaceman_dmm.sh dreamchecker
|
|
~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh
|
|
|
|
- name: Run map checker
|
|
run: python tools/travis/check_map_files.py maps/
|
|
|
|
#TODO: Cache pip directory
|
|
- name: Validhunt DMIs
|
|
run: |
|
|
pip install Pillow
|
|
python tools/dmi-validhunt/dmi-validhunt.py icons/ || true
|
|
- name: Make sure test maps or vaults aren't ticked
|
|
run: find -name '*.dme' -exec cat {} \; | awk '/maps\\test.*|\.dmm/ { exit 1 }'
|
|
|
|
# OpenDream linting
|
|
- name: Setup .NET SDK
|
|
uses: actions/setup-dotnet@v4.2.0
|
|
with:
|
|
dotnet-version: 9.x
|
|
- name: Install OpenDream
|
|
uses: robinraju/release-downloader@v1.9
|
|
with:
|
|
repository: "OpenDreamProject/OpenDream"
|
|
tag: "latest"
|
|
fileName: "DMCompiler_linux-x64.tar.gz"
|
|
extract: true
|
|
- name: Run OpenDream
|
|
run: ./DMCompiler_linux-x64/DMCompiler vgstation13.dme --suppress-unimplemented --define=CIBUILDING --version=516.1655 | bash tools/ci/annotate_od.sh
|
|
|
|
build:
|
|
name: ${{matrix.job-name}}
|
|
runs-on: ubuntu-latest
|
|
# Don't run this job if the commit message contains that string.
|
|
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- dm-unit-tests: 0
|
|
job-name: Compile all maps
|
|
|
|
- dm-unit-tests: 1
|
|
job-name: Compile and run tests
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/cache@v3
|
|
name: Cache BYOND installation
|
|
with:
|
|
path: ~/BYOND-${{env.BYOND_MAJOR}}.${{env.BYOND_MINOR}}
|
|
key: BYOND-${{runner.os}}-${{env.BYOND_MAJOR}}.${{env.BYOND_MINOR}}
|
|
|
|
- name: ${{matrix.job-name}}
|
|
env:
|
|
DM_UNIT_TESTS: ${{matrix.dm-unit-tests}}
|
|
run: |
|
|
tools/travis/install-byond.sh
|
|
source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup
|
|
tools/travis/build.py 2>&1 | tee /dev/stderr | awk '/warning:|error:/ { exit 1 }'
|
|
cp tools/travis/config/config.txt config/
|
|
tools/travis/run_tests.py 2>&1 | tee /dev/stderr | awk '/UNIT TEST FAIL/ { exit 1 }'
|