Skip to content
This repository has been archived by the owner on Oct 15, 2023. It is now read-only.

Commit

Permalink
Merge branch 'master' into obscured-mouth
Browse files Browse the repository at this point in the history
  • Loading branch information
larentoun committed Jun 27, 2023
2 parents 56a491b + 8363b6d commit 30d4569
Show file tree
Hide file tree
Showing 1,598 changed files with 297,850 additions and 108,570 deletions.
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ This is bad:
````
This is good:
````DM
addtimer(CALLBACK(procsource, .proc/dothing, arg1, arg2, arg3), waittime, timertype)
addtimer(CALLBACK(procsource, PROC_REF(dothing), arg1, arg2, arg3), waittime, timertype)
````
This prevents nesting levels from getting deeper then they need to be.

Expand Down
21 changes: 14 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ on:
- prime
pull_request:
branches:
- master
- prime
- master220
- whitelist220

jobs:
run_linters:
name: Run Linters
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Setup Cache
Expand All @@ -30,6 +30,7 @@ jobs:
tools/ci/build_tgui.sh
tools/ci/check_grep.sh
python3 tools/ci/check_line_endings.py
python3 tools/ci/unticked_files.py ${GITHUB_WORKSPACE}
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
- name: Annotate Lints
uses: yogstation13/DreamAnnotate@v2
Expand All @@ -39,7 +40,7 @@ jobs:

compile_all_maps:
name: Compile All Maps
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Setup Cache
Expand All @@ -56,15 +57,20 @@ jobs:
unit_tests_and_sql:
name: Unit Tests + SQL Validation
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false # Let all map tests run to completion
matrix:
maptype: ['/datum/map/cyberiad', '/datum/map/delta', '/datum/map/cerestation']
byondtype: ['STABLE'] # 'BETA'
services:
mariadb:
image: mariadb:latest
env:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306
options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 10
options: --health-cmd "mariadb-admin ping" --health-interval 10s --health-timeout 5s --health-retries 10
steps:
- uses: actions/checkout@v3
- name: Setup Cache
Expand All @@ -89,8 +95,9 @@ jobs:
bash tools/ci/install_dmjit.sh
- name: Compile & Run Unit Tests
run: |
tools/ci/install_byond.sh
tools/ci/install_byond.sh '${{ matrix.byondtype }}'
source $HOME/BYOND/byond/bin/byondsetup
tools/ci/dm.sh -DCIBUILDING paradise.dme
echo '${{ matrix.maptype }}' > data/next_map.txt
tools/ci/run_server.sh
207 changes: 207 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
name: Deploy

concurrency:
group: deploy

on:
workflow_dispatch:
inputs:
ci_required:
description: 'CI Suite is required'
type: boolean
required: true
default: true
perform_deploy_main:
description: 'Deploy Paradise Main/Secondary'
type: boolean
required: true
default: true
perform_deploy_vega:
description: 'Deploy Paradise Vega'
type: boolean
required: true
default: true
perform_deploy_cleo:
description: 'Deploy Paradise Cleo'
type: boolean
required: true
default: true
perform_deploy_prime:
description: 'Deploy Paradise Prime'
type: boolean
required: true
default: true
perform_deploy_wl:
description: 'Deploy Paradise WL'
type: boolean
required: true
default: true
perform_deploy_tutorial:
description: 'Deploy Paradise Tutorial'
type: boolean
required: true
default: true
# perform_deploy_test:
# description: 'Deploy Paradise Test'
# type: boolean
# required: true
# default: true

jobs:
CI:
uses: ./.github/workflows/ci.yml # use the callable tests job to run tests
if: ${{ inputs.ci_required }}

update-isp-lists:
name: Update ISP Lists
runs-on: ubuntu-latest

steps:
- name: Update ISP Lists
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: /var/lib/byond/update_isp_lists.sh

deploy-main:
name: Deploy Paradise Main/Secondary
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_main

steps:
- name: Update and Build Paradise Main/Secondary
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-main
journalctl --since $TIME -u deploy-main --no-pager --all
systemctl is-failed deploy-main | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
deploy-vega:
name: Deploy Paradise Vega
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_vega

steps:
- name: Update and Build Paradise Vega
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-vega
journalctl --since $TIME -u deploy-vega --no-pager --all
systemctl is-failed deploy-vega | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
deploy-cleo:
name: Deploy Paradise Cleo
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_cleo

steps:
- name: Update and Build Paradise Cleo
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-cleo
journalctl --since $TIME -u deploy-cleo --no-pager --all
systemctl is-failed deploy-cleo | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
deploy-prime:
name: Deploy Paradise Prime
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_prime

steps:
- name: Update and Build Paradise Prime
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-prime
journalctl --since $TIME -u deploy-prime --no-pager --all
systemctl is-failed deploy-prime | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
deploy-wl:
name: Deploy Paradise WL
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_wl

steps:
- name: Update and Build Paradise WL
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-wl
journalctl --since $TIME -u deploy-wl --no-pager --all
systemctl is-failed deploy-wl | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
deploy-tutorial:
name: Deploy Paradise Tutorial
runs-on: ubuntu-latest
needs: [update-isp-lists, CI]
if: always() && !cancelled() && !failure() && inputs.perform_deploy_tutorial

steps:
- name: Update and Build Paradise Tutorial
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PRODUCTION_HOST }}
username: ${{ secrets.PRODUCTION_USERNAME }}
key: ${{ secrets.PRODUCTION_SSH_KEY }}
passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
script: |
TIME=$(date +'%Y-%m-%d%T')
sudo systemctl --wait start deploy-tutorial
journalctl --since $TIME -u deploy-tutorial --no-pager --all
systemctl is-failed deploy-tutorial | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
# deploy-test:
# name: Deploy Paradise Test
# runs-on: ubuntu-latest
# needs: [update-isp-lists, CI]
# if: always() && !cancelled() && !failure() && inputs.perform_deploy_test

# steps:
# - name: Update and Build Paradise Test
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.PRODUCTION_HOST }}
# username: ${{ secrets.PRODUCTION_USERNAME }}
# key: ${{ secrets.PRODUCTION_SSH_KEY }}
# passphrase: ${{ secrets.PRODUCTION_SSH_KEY_PASS }}
# script: |
# TIME=$(date +'%Y-%m-%d%T')
# sudo systemctl --wait start deploy-test
# journalctl --since $TIME -u deploy-test --no-pager --all
# systemctl is-failed deploy-test | grep -q "failed" && echo "Deployment Failed!" && exit 1 || exit 0
13 changes: 13 additions & 0 deletions .github/workflows/dmi5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Check for DMI5

on: pull_request_target

jobs:
check-dmi5:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: ParadiseSS13/DMI5Checker@v1
with:
icons-path: 'icons'
2 changes: 1 addition & 1 deletion .github/workflows/generate_autodoc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
generate_docs:
name: 'Generate Documentation'
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- name: 'Update Branch'
uses: actions/checkout@v2
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/generate_changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: 'Generate Changelog'
on:
workflow_dispatch:

permissions:
contents: read

jobs:
generate_changelog:
permissions:
contents: write # for Git to git push
name: 'Generate Changelog'
runs-on: ubuntu-latest
steps:
- name: Changelog bot install token
id: changelog-bot
uses: getsentry/action-github-app-token@v2
with:
app_id: ${{ secrets.CHANGELOGBOT_APPID }}
private_key: ${{ secrets.CHANGELOGBOT_PRIVATEKEY }}
- name: 'Update Branch'
uses: actions/checkout@v3
with:
repository: 'ss220-space/Paradise'
token: ${{ steps.changelog-bot.outputs.token }}
fetch-depth: 1000

- name: 'Install Dependencies'
run: pip3 install GitPython

- name: 'Generate Changelog'
run: 'python3 tools/changelog/gen_changelog.py'

- name: 'Commit Changelog'
run: |
git config --local user.email "[email protected]"
git config --local user.name "Changelog Generation"
git add html/changelogs/archive/\*.yml
git commit -m "Automatic changelog generation"
git push
3 changes: 2 additions & 1 deletion .github/workflows/label_merge_conflicts.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: 'Merge Conflict Detection'

on:
push:
branches:
Expand All @@ -10,7 +11,7 @@ jobs:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: eps1lon/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/render_nanomaps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
contents: write # for Git to git push
pull-requests: write # for repo-sync/pull-request to create pull requests
name: 'Generate NanoMaps'
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: 'Update Branch'
uses: actions/checkout@v3
Expand Down
14 changes: 9 additions & 5 deletions _build_dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
export SPACEMANDMM_TAG=suite-1.7.1
# For TGUI
export NODE_VERSION=16
# Byond Major
export BYOND_MAJOR=514
# Byond Minor
export BYOND_MINOR=1575
# Stable Byond Major
export STABLE_BYOND_MAJOR=514
# Stable Byond Minor
export STABLE_BYOND_MINOR=1575
# Beta Byond Major
export BETA_BYOND_MAJOR=515
# Beta Byond Minor
export BETA_BYOND_MINOR=1606
# For the RUSTG library. Not actually installed by CI but kept as a reference
export RUSTG_VERSION=1.0.4-ss220
export RUSTG_VERSION=2.0.0-ss220
#For DMJIT librarry
export DMJIT_VERSION=v0.1.0

Expand Down
Loading

0 comments on commit 30d4569

Please sign in to comment.