mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
145 lines
4.9 KiB
YAML
145 lines
4.9 KiB
YAML
name: CI Suite
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
jobs:
|
|
run_linters:
|
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
|
name: Run Linters
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Restore SpacemanDMM cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/SpacemanDMM
|
|
key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }}
|
|
- name: Restore Yarn cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: tgui/.yarn/cache
|
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ secrets.CACHE_PURGE_KEY }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
- name: Install Tools
|
|
run: |
|
|
pip3 install setuptools --upgrade
|
|
bash tools/ci/install_node.sh
|
|
bash tools/ci/install_spaceman_dmm.sh dreamchecker
|
|
tools/bootstrap/python -c ''
|
|
- name: Run Linters
|
|
run: |
|
|
bash tools/ci/check_filedirs.sh tgstation.dme
|
|
bash tools/ci/check_changelogs.sh
|
|
bash tools/ci/check_grep.sh
|
|
find . -name "*.php" -print0 | xargs -0 -n1 php -l
|
|
find . -name "*.json" -not -path "*/node_modules/*" -print0 | xargs -0 python3 ./tools/json_verifier.py
|
|
tools/build/build --ci lint
|
|
tools/bootstrap/python -m dmi.test
|
|
tools/bootstrap/python -m mapmerge2.dmm_test
|
|
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
|
|
- name: Annotate Lints
|
|
uses: yogstation13/DreamAnnotate@v2
|
|
if: always()
|
|
with:
|
|
outputFile: output-annotations.txt
|
|
|
|
compile_all_maps:
|
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
|
name: Compile Maps
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Restore BYOND cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/BYOND
|
|
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
|
- name: Compile All Maps
|
|
run: |
|
|
bash tools/ci/install_byond.sh
|
|
source $HOME/BYOND/byond/bin/byondsetup
|
|
tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS
|
|
run_all_tests:
|
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
|
name: Integration Tests
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
mysql:
|
|
image: mysql:latest
|
|
env:
|
|
MYSQL_ROOT_PASSWORD: root
|
|
ports:
|
|
- 3306
|
|
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Restore BYOND cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/BYOND
|
|
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
|
- name: Restore Yarn cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: tgui/.yarn/cache
|
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ secrets.CACHE_PURGE_KEY }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
- name: Setup database
|
|
run: |
|
|
sudo systemctl start mysql
|
|
mysql -u root -proot -e 'CREATE DATABASE tg_ci;'
|
|
mysql -u root -proot tg_ci < SQL/tgstation_schema.sql
|
|
mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;'
|
|
mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql
|
|
- name: Install rust-g
|
|
run: |
|
|
bash tools/ci/install_rust_g.sh
|
|
- name: Install auxmos
|
|
run: |
|
|
sudo apt update || true
|
|
bash tools/ci/install_auxmos.sh
|
|
- name: Compile and run tests
|
|
run: |
|
|
bash tools/ci/install_byond.sh
|
|
source $HOME/BYOND/byond/bin/byondsetup
|
|
tools/build/build --ci -DCIBUILDING
|
|
bash tools/ci/run_server.sh
|
|
test_windows:
|
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
|
name: Windows Build
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Restore Yarn cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: tgui/.yarn/cache
|
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ secrets.CACHE_PURGE_KEY }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
- name: Compile
|
|
run: pwsh tools/ci/build.ps1
|
|
env:
|
|
DM_EXE: "C:\\byond\\bin\\dm.exe"
|
|
- name: Create artifact
|
|
run: |
|
|
md deploy
|
|
bash tools/deploy.sh ./deploy
|
|
- name: Deploy artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: deploy
|
|
path: deploy
|