Skip to content
This repository has been archived by the owner on Sep 12, 2021. It is now read-only.

Commit

Permalink
CI Update (#565)
Browse files Browse the repository at this point in the history
* Completely replace Travis and AppVeyor with GitHub Actions (#54668)

Co-authored-by: Jared-Fogle <[email protected]>

* Annotate lint output for nice inline viewing (#54735)

* Annotate lint output for nice inline viewing

* Update .github/workflows/test.yml

Co-authored-by: Jared-Fogle <[email protected]>

Co-authored-by: Jared-Fogle <[email protected]>

* Improve naming in new GitHub actions (#54821)

Improve naming in new GitHub actions

* Merge pull request #54805 from Jared-Fogle/pay-up

Fix the "payment required" crap CI is failing on

* adapts to wasp

* Fix Docker Build (#51781)

* Change BYOND version to 513.1526

* Remove BSQL from docker image

* Add a docker publish action

* Add a docker test action

* Cleanup runtime icons

* Cleanup runtime sounds

* Correct docker workflow names

* Add Dockerfile as an appveyor cache dependency

* Fix build issues

* Copy all dlls

* No need for .dlls in docker

* Minor cleanups

* more adaptations

* Don't generate Cls for commits with the skip tag (#1896)

Co-authored-by: Crossedfall <[email protected]>

* whoops

* arrrrgh

* e?

* help

* this is hard :(

* e

* fixes achieves

Co-authored-by: Jared-Fogle <[email protected]>
Co-authored-by: Rob Bailey <[email protected]>
Co-authored-by: Jordan Brown <[email protected]>
Co-authored-by: oranges <[email protected]>
Co-authored-by: Crossedfall <[email protected]>
  • Loading branch information
6 people authored Nov 23, 2020
1 parent 90321df commit 0f8b955
Show file tree
Hide file tree
Showing 105 changed files with 484 additions and 553 deletions.
58 changes: 28 additions & 30 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
.dockerignore
.editorconfig
.travis.yml
GPLv3.txt
LICENSE
README.md
TGS3.json
.github
.gitignore
.gitattributes
.git/hooks
.git/info
.git/modules
.git/objects
.git/refs
.vs*
cfg
data
SQL
node_modules
tgstation.dmb
tgstation.int
tgstation.rsc
tgstation.lk
tgstation.dyn.rsc
libmariadb.dll
rust_g.dll
BSQL.dll
appveyor.yml
Dockerfile
.dockerignore
.editorconfig
GPLv3.txt
LICENSE
README.md
TGS3.json
.github
.gitignore
.gitattributes
.git/hooks
.git/info
.git/modules
.git/objects
.git/refs
.vs*
cfg
data
SQL
node_modules
tgstation.dmb
tgstation.int
tgstation.rsc
tgstation.lk
tgstation.dyn.rsc
libmariadb.dll
rust_g.dll
BSQL.dll
Dockerfile
34 changes: 0 additions & 34 deletions .github/workflows/autodoc.yml

This file was deleted.

110 changes: 110 additions & 0 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Checks
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
run_linters:
name: Run Linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup cache
uses: actions/cache@v2
with:
path: $HOME/SpacemanDMM
key: ${{ runner.os }}-spacemandmm
- name: Install Tools
run: |
pip3 install setuptools
bash tools/ci/install_build_tools.sh
bash tools/ci/install_spaceman_dmm.sh dreamchecker
pip3 install -r tools/mapmerge2/requirements.txt
- name: Run Linters
run: |
bash tools/ci/check_filedirs.sh tgstation.dme
bash tools/ci/check_changelogs.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
bash tools/ci/build_tgui.sh
bash tools/ci/check_grep.sh
python3 tools/mapmerge2/dmi.py --test
~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
- name: Annotate Lints
uses: yogstation13/DreamAnnotate@v1
if: always()
with:
outputFile: output-annotations.txt

compile_all_maps:
name: Compile Maps
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup cache
uses: actions/cache@v2
with:
path: $HOME/BYOND
key: ${{ runner.os }}-byond
- name: Compile All Maps
run: |
bash tools/ci/install_byond.sh
source $HOME/BYOND/byond/bin/byondsetup
python3 tools/ci/template_dm_generator.py
bash tools/ci/dm.sh -DCIBUILDING -DCITESTING -DALL_MAPS tgstation.dme
run_all_tests:
name: Integration Tests
runs-on: ubuntu-latest
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@v2
- name: Setup cache
uses: actions/cache@v2
with:
path: $HOME/BYOND
key: ${{ runner.os }}-byond
- 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 libssl1.1: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
bash tools/ci/dm.sh -DCIBUILDING tgstation.dme
bash tools/ci/run_server.sh
test_windows:
name: Windows Build
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Compile
run: pwsh tools/ci/build.ps1
- name: Create artifact
run: |
md deploy
bash tools/deploy.sh ./deploy
- name: Deploy artifact
uses: actions/upload-artifact@v2
with:
name: deploy
path: deploy
50 changes: 35 additions & 15 deletions .github/workflows/compile_changelogs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,54 @@ name: Compile changelogs

on:
schedule:
- cron: "*/30 * * * *"
- cron: "0 0 * * *"

jobs:
CompileCL:
compile:
name: "Compile changelogs"
runs-on: ubuntu-latest
if: github.repository == 'WaspStation/Waspstation-1.0'
steps:
- name: Checkout
uses: actions/checkout@v1
with:
fetch-depth: 25
- name: Python setup
- name: "Check for CHANGELOG_ENABLER secret and pass true to output if it exists to be checked by later steps"
id: value_holder
env:
CHANGELOG_ENABLER: ${{ secrets.CHANGELOG_ENABLER }}
run: |
unset SECRET_EXISTS
if [ -n $CHANGELOG_ENABLER ]; then SECRET_EXISTS='true' ; fi
echo ::set-output name=CL_ENABLED::${SECRET_EXISTS}
- name: "Setup python"
if: steps.value_holder.outputs.CL_ENABLED
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Install depends
- name: "Install deps"
if: steps.value_holder.outputs.CL_ENABLED
run: |
python -m pip install --upgrade pip
pip install pyyaml bs4
- name: Compile CL
run: python tools/changelog/ss13_genchangelog.py html/changelog.html html/changelogs
python -m pip install pyyaml
sudo apt-get install dos2unix
- name: "Checkout"
if: steps.value_holder.outputs.CL_ENABLED
uses: actions/checkout@v1
with:
fetch-depth: 25
- name: "Compile"
if: steps.value_holder.outputs.CL_ENABLED
run: |
python tools/ss13_genchangelog.py html/changelog.html html/changelogs
- name: "Convert Lineendings"
if: steps.value_holder.outputs.CL_ENABLED
run: |
unix2dos html/changelogs/.all_changelog.yml
- name: Commit
if: steps.value_holder.outputs.CL_ENABLED
run: |
git config --local user.email "action@github.com"
git config --local user.name "Changelogs"
git config --local user.email "[email protected].github.com"
git config --local user.name "WaspStation-Bot"
git pull origin master
git commit -m "Automatic changelog compile [ci skip]" -a || true
- name: Push
- name: "Push"
if: steps.value_holder.outputs.CL_ENABLED
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.CHANGELOG_TOKEN }}
22 changes: 22 additions & 0 deletions .github/workflows/docker_publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Docker Build

on:
push:
branches:
- master

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Build and Publish Docker Image to Registry
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: waspstation/waspstation
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
dockerfile: Dockerfile
tags: "latest"
cache: true
11 changes: 11 additions & 0 deletions .github/workflows/docker_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
on: [pull_request]

jobs:
docker_build:
runs-on: ubuntu-latest
name: Build Artifacts Docker Image
steps:
- uses: actions/checkout@v2

- name: Build Docker Image
run: docker build . -f Dockerfile
30 changes: 30 additions & 0 deletions .github/workflows/generate_documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Generate documentation
on:
push:
branches:
- master
jobs:
generate_documentation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup cache
uses: actions/cache@v2
with:
path: $HOME/SpacemanDMM
key: ${{ runner.os }}-spacemandmm
- name: Install SpacemanDMM
run: bash tools/ci/install_spaceman_dmm.sh dmdoc
- name: Generate documentation
run: |
~/dmdoc
touch dmdoc/.nojekyll
echo waspstation.github.io > dmdoc/CNAME
- name: Deploy
uses: JamesIves/[email protected]
with:
BRANCH: gh-pages
CLEAN: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SINGLE_COMMIT: true
FOLDER: dmdoc
7 changes: 4 additions & 3 deletions .github/workflows/make_changelogs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
MakeCL:
runs-on: ubuntu-latest
if: github.repository == 'Waspstation/Waspstation-1.0'
if: github.repository == 'WaspStation/WaspStation-1.0' && !contains(github.event.head_commit.message, '[ci skip]')
steps:
- name: Checkout
uses: actions/checkout@v1
Expand All @@ -23,7 +23,8 @@ jobs:
pip install ruamel.yaml PyGithub
- name: Make CL
env:
#GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Use this instead if you have unprotected branches
GITHUB_TOKEN: ${{ secrets.CHANGELOG_TOKEN }}
GIT_EMAIL: "action@github.com"
GIT_NAME: "Changelogs"
GIT_EMAIL: "[email protected].github.com"
GIT_NAME: "WaspStation-Bot"
run: python tools/changelog/generate_cl.py
4 changes: 2 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
- uses: actions/stale@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself"
stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 14 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself"
days-before-stale: 7
days-before-close: 7
days-before-close: 14
stale-pr-label: 'Stale'
exempt-pr-label: 'RED LABEL'
Loading

0 comments on commit 0f8b955

Please sign in to comment.