Skip to content

Linter Improvements #20102

Linter Improvements

Linter Improvements #20102

Workflow file for this run

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: 515
BYOND_MINOR: 1603
#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: Install OpenDream
uses: robinraju/[email protected]
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 | 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 }'