Merge remote-tracking branch 'upstream/main' #181
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: BYOND Build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
BYOND_MAJOR: 515 | |
BYOND_MINOR: 1636 | |
SPACEMAN_DMM_VERSION: suite-1.9 | |
jobs: | |
run-linters: | |
if: ( !contains(github.event.head_commit.message, '[ci skip]') ) | |
name: Run Linters | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/SpacemanDMM | |
key: ${{ runner.os }}-spacemandmm-${{ hashFiles('dependencies.sh') }} | |
restore-keys: | | |
${{ runner.os }}-spacemandmm- | |
- name: Restore Rust cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-rust-${{ hashFiles('tools/ci/ci_dependencies.sh')}} | |
restore-keys: | | |
${{ runner.os }}-rust- | |
- name: Install Tools | |
run: | | |
pip3 install setuptools | |
bash tools/ci/install_spaceman_dmm.sh dreamchecker | |
bash tools/ci/install_ripgrep.sh | |
tools/bootstrap/python -c '' | |
- name: Run Linters | |
run: | | |
bash tools/ci/check_filedirs.sh stonekeep.dme | |
bash tools/ci/check_changelogs.sh | |
find . -name "*.php" -print0 | xargs -0 -n1 php -l | |
bash tools/ci/check_grep.sh | |
tools/bootstrap/python tools/ci/validate_dme.py < stonekeep.dme | |
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 | |
OpenDream: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Python setup | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Setup Cache | |
uses: actions/cache@v4 | |
with: | |
path: $HOME/spaceman_dmm/$SPACEMAN_DMM_VERSION | |
key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} | |
- 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 stonekeep.dme --suppress-unimplemented --skip-anything-typecheck --version=${BYOND_MAJOR}.${BYOND_MINOR} | python tools/od_annotator/__main__.py "$@" | |
compile_all_maps: | |
if: ( !contains(github.event.head_commit.message, '[ci skip]') ) | |
name: Compile Maps | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup 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 | |
python3 tools/ci/template_dm_generator.py | |
DreamMaker -DCIBUILDING -DCITESTING -DALL_MAPS stonekeep.dme | |
run_all_tests: | |
if: ( !contains(github.event.head_commit.message, '[ci skip]') ) | |
name: Integration Tests | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
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: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore BYOND cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/BYOND | |
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }} | |
- 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: | | |
sudo dpkg --add-architecture i386 | |
sudo apt update || true | |
sudo apt install zlib1g-dev:i386 | |
bash tools/ci/install_rust_g.sh | |
- name: Compile and run tests | |
run: | | |
bash tools/ci/install_byond.sh | |
source $HOME/BYOND/byond/bin/byondsetup | |
DreamMaker -DCIBUILDING stonekeep.dme | |
bash tools/ci/run_server.sh roguetest | |
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 BYOND cache | |
uses: actions/cache@v4 | |
with: | |
path: C:\\byond | |
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }} | |
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 |