From 0f8b9556160591195fdaa162d924baf28cdbc649 Mon Sep 17 00:00:00 2001 From: Mark Suckerberg Date: Mon, 23 Nov 2020 17:09:11 -0600 Subject: [PATCH] CI Update (#565) * Completely replace Travis and AppVeyor with GitHub Actions (#54668) Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com> * 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 <35135081+Jared-Fogle@users.noreply.github.com> Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com> * 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 * whoops * arrrrgh * e? * help * this is hard :( * e * fixes achieves Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com> Co-authored-by: Rob Bailey Co-authored-by: Jordan Brown Co-authored-by: oranges Co-authored-by: Crossedfall --- .dockerignore | 58 ++++--- .github/workflows/autodoc.yml | 34 ---- .github/workflows/ci_suite.yml | 110 ++++++++++++ .github/workflows/compile_changelogs.yml | 50 ++++-- .github/workflows/docker_publish.yml | 22 +++ .github/workflows/docker_test.yml | 11 ++ .github/workflows/generate_documentation.yml | 30 ++++ .github/workflows/make_changelogs.yml | 7 +- ..._id_linker.yml => round_id_linker.yml.old} | 0 .github/workflows/stale.yml | 4 +- .github/workflows/turdis.yml | 154 ----------------- .github/workflows/update_tgs_dmapi.yml | 45 +++++ .travis.yml.old | 97 ----------- Dockerfile | 158 +++++++----------- _maps/_basemap.dm | 2 +- appveyor.yml | 21 --- code/__DEFINES/atmospherics.dm | 4 +- code/_compile_options.dm | 4 +- code/controllers/subsystem/achievements.dm | 9 +- code/controllers/subsystem/title.dm | 2 +- code/datums/components/tackle.dm | 2 +- .../mecha/equipment/weapons/mecha_ammo.dm | 6 +- code/game/objects/items/cigs_lighters.dm | 2 +- code/game/objects/items/melee/misc.dm | 2 +- code/game/objects/items/toys.dm | 2 +- code/game/objects/structures/tables_racks.dm | 4 +- code/game/sound.dm | 2 +- code/game/world.dm | 36 ++-- code/modules/chatter/chatter.dm | 2 +- code/modules/clothing/masks/hailer.dm | 4 +- code/modules/flufftext/Hallucination.dm | 4 +- code/modules/instruments/items.dm | 6 +- code/modules/mob/living/brain/MMI.dm | 4 +- .../mob/living/simple_animal/bot/firebot.dm | 6 +- .../simple_animal/hostile/netherworld.dm | 2 +- .../projectiles/guns/ballistic/shotgun.dm | 6 +- .../research/designs/medical_designs.dm | 2 +- code/modules/shuttle/shuttle.dm | 4 +- code/modules/vehicles/secway.dm | 2 +- icons/runtime/README.md | 5 + icons/{ => runtime}/default_title.dmi | Bin sound/runtime/README.md | 5 + sound/{ => runtime}/chatter/griffin_1.ogg | Bin sound/{ => runtime}/chatter/griffin_10.ogg | Bin sound/{ => runtime}/chatter/griffin_2.ogg | Bin sound/{ => runtime}/chatter/griffin_3.ogg | Bin sound/{ => runtime}/chatter/griffin_4.ogg | Bin sound/{ => runtime}/chatter/griffin_5.ogg | Bin sound/{ => runtime}/chatter/griffin_6.ogg | Bin sound/{ => runtime}/chatter/griffin_7.ogg | Bin sound/{ => runtime}/chatter/griffin_8.ogg | Bin sound/{ => runtime}/chatter/griffin_9.ogg | Bin sound/{ => runtime}/chatter/owl_1.ogg | Bin sound/{ => runtime}/chatter/owl_10.ogg | Bin sound/{ => runtime}/chatter/owl_2.ogg | Bin sound/{ => runtime}/chatter/owl_3.ogg | Bin sound/{ => runtime}/chatter/owl_4.ogg | Bin sound/{ => runtime}/chatter/owl_5.ogg | Bin sound/{ => runtime}/chatter/owl_6.ogg | Bin sound/{ => runtime}/chatter/owl_7.ogg | Bin sound/{ => runtime}/chatter/owl_8.ogg | Bin sound/{ => runtime}/chatter/owl_9.ogg | Bin .../complionator/asshole.ogg | Bin .../{voice => runtime}/complionator/bash.ogg | Bin .../{voice => runtime}/complionator/bobby.ogg | Bin .../complionator/compliance.ogg | Bin .../complionator/dontmove.ogg | Bin .../{voice => runtime}/complionator/dredd.ogg | Bin .../{voice => runtime}/complionator/emag.ogg | Bin .../{voice => runtime}/complionator/floor.ogg | Bin .../complionator/freeze.ogg | Bin sound/{voice => runtime}/complionator/god.ogg | Bin .../{voice => runtime}/complionator/halt.ogg | Bin .../{voice => runtime}/complionator/harry.ogg | Bin .../complionator/imperial.ogg | Bin .../complionator/justice.ogg | Bin .../complionator/robocop.ogg | Bin .../complionator/running.ogg | Bin .../complionator/shutup.ogg | Bin .../{voice => runtime}/complionator/stfu.ogg | Bin .../{voice => runtime}/complionator/super.ogg | Bin .../hyperspace}/hyperspace_begin.ogg | Bin .../hyperspace}/hyperspace_begin_distance.ogg | Bin .../hyperspace}/hyperspace_end.ogg | Bin .../hyperspace}/hyperspace_end_distance.ogg | Bin .../hyperspace}/hyperspace_progress.ogg | Bin .../hyperspace_progress_distance.ogg | Bin tools/{appveyor => ci}/build.ps1 | 6 +- tools/{travis => ci}/build_spaceman_dmm.sh | 0 tools/{travis => ci}/build_tgui.sh | 0 tools/{travis => ci}/check_changelogs.sh | 0 tools/{travis => ci}/check_filedirs.sh | 0 tools/{travis => ci}/check_grep.sh | 0 .../travis_config.txt => ci/ci_config.txt} | 2 +- tools/{travis => ci}/dm.sh | 0 tools/{appveyor => ci}/download_byond.sh | 0 tools/{travis => ci}/install_build_tools.sh | 6 - tools/{travis => ci}/install_byond.sh | 0 tools/{travis => ci}/install_rust_g.sh | 0 tools/{travis => ci}/install_spaceman_dmm.sh | 0 tools/ci/run_server.sh | 23 +++ tools/{travis => ci}/template_dm_generator.py | 0 tools/deploy.sh | 13 +- tools/mapmerge2/dmi.py | 34 +++- tools/travis/run_server.sh | 23 --- 105 files changed, 484 insertions(+), 553 deletions(-) delete mode 100644 .github/workflows/autodoc.yml create mode 100644 .github/workflows/ci_suite.yml create mode 100644 .github/workflows/docker_publish.yml create mode 100644 .github/workflows/docker_test.yml create mode 100644 .github/workflows/generate_documentation.yml rename .github/workflows/{round_id_linker.yml => round_id_linker.yml.old} (100%) delete mode 100644 .github/workflows/turdis.yml create mode 100644 .github/workflows/update_tgs_dmapi.yml delete mode 100644 .travis.yml.old delete mode 100644 appveyor.yml create mode 100644 icons/runtime/README.md rename icons/{ => runtime}/default_title.dmi (100%) create mode 100644 sound/runtime/README.md rename sound/{ => runtime}/chatter/griffin_1.ogg (100%) rename sound/{ => runtime}/chatter/griffin_10.ogg (100%) rename sound/{ => runtime}/chatter/griffin_2.ogg (100%) rename sound/{ => runtime}/chatter/griffin_3.ogg (100%) rename sound/{ => runtime}/chatter/griffin_4.ogg (100%) rename sound/{ => runtime}/chatter/griffin_5.ogg (100%) rename sound/{ => runtime}/chatter/griffin_6.ogg (100%) rename sound/{ => runtime}/chatter/griffin_7.ogg (100%) rename sound/{ => runtime}/chatter/griffin_8.ogg (100%) rename sound/{ => runtime}/chatter/griffin_9.ogg (100%) rename sound/{ => runtime}/chatter/owl_1.ogg (100%) rename sound/{ => runtime}/chatter/owl_10.ogg (100%) rename sound/{ => runtime}/chatter/owl_2.ogg (100%) rename sound/{ => runtime}/chatter/owl_3.ogg (100%) rename sound/{ => runtime}/chatter/owl_4.ogg (100%) rename sound/{ => runtime}/chatter/owl_5.ogg (100%) rename sound/{ => runtime}/chatter/owl_6.ogg (100%) rename sound/{ => runtime}/chatter/owl_7.ogg (100%) rename sound/{ => runtime}/chatter/owl_8.ogg (100%) rename sound/{ => runtime}/chatter/owl_9.ogg (100%) rename sound/{voice => runtime}/complionator/asshole.ogg (100%) rename sound/{voice => runtime}/complionator/bash.ogg (100%) rename sound/{voice => runtime}/complionator/bobby.ogg (100%) rename sound/{voice => runtime}/complionator/compliance.ogg (100%) rename sound/{voice => runtime}/complionator/dontmove.ogg (100%) rename sound/{voice => runtime}/complionator/dredd.ogg (100%) rename sound/{voice => runtime}/complionator/emag.ogg (100%) rename sound/{voice => runtime}/complionator/floor.ogg (100%) rename sound/{voice => runtime}/complionator/freeze.ogg (100%) rename sound/{voice => runtime}/complionator/god.ogg (100%) rename sound/{voice => runtime}/complionator/halt.ogg (100%) rename sound/{voice => runtime}/complionator/harry.ogg (100%) rename sound/{voice => runtime}/complionator/imperial.ogg (100%) rename sound/{voice => runtime}/complionator/justice.ogg (100%) rename sound/{voice => runtime}/complionator/robocop.ogg (100%) rename sound/{voice => runtime}/complionator/running.ogg (100%) rename sound/{voice => runtime}/complionator/shutup.ogg (100%) rename sound/{voice => runtime}/complionator/stfu.ogg (100%) rename sound/{voice => runtime}/complionator/super.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_begin.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_begin_distance.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_end.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_end_distance.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_progress.ogg (100%) rename sound/{effects => runtime/hyperspace}/hyperspace_progress_distance.ogg (100%) rename tools/{appveyor => ci}/build.ps1 (66%) rename tools/{travis => ci}/build_spaceman_dmm.sh (100%) rename tools/{travis => ci}/build_tgui.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/check_changelogs.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/check_filedirs.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/check_grep.sh (100%) mode change 100755 => 100644 rename tools/{travis/travis_config.txt => ci/ci_config.txt} (82%) rename tools/{travis => ci}/dm.sh (100%) mode change 100755 => 100644 rename tools/{appveyor => ci}/download_byond.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/install_build_tools.sh (76%) rename tools/{travis => ci}/install_byond.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/install_rust_g.sh (100%) mode change 100755 => 100644 rename tools/{travis => ci}/install_spaceman_dmm.sh (100%) mode change 100755 => 100644 create mode 100644 tools/ci/run_server.sh rename tools/{travis => ci}/template_dm_generator.py (100%) mode change 100755 => 100644 delete mode 100755 tools/travis/run_server.sh diff --git a/.dockerignore b/.dockerignore index 8e675af8cba..9c6ac6b4aa6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -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 diff --git a/.github/workflows/autodoc.yml b/.github/workflows/autodoc.yml deleted file mode 100644 index 8e4b1945878..00000000000 --- a/.github/workflows/autodoc.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Autodoc - -on: - push: - branches: [ master ] - -jobs: - autodoc: - name: Generate Documentation - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - with: - ref: master - - - name: Install Dependencies - run: | - tools/travis/install_spaceman_dmm.sh dmdoc - - - name: Generate - run: | - ~/dmdoc - touch dmdoc/.nojekyll - - - name: Deploy - uses: crazy-max/ghaction-github-pages@v2 - with: - keep_history: true - build_dir: dmdoc - jekyll: false - fqdn: waspstation.github.io - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml new file mode 100644 index 00000000000..e13f7a9ae5d --- /dev/null +++ b/.github/workflows/ci_suite.yml @@ -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 diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index a44f4fe1037..47b69ed6780 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -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 "60119942+WaspStation-Bot@users.noreply.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 }} diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml new file mode 100644 index 00000000000..b717b973d87 --- /dev/null +++ b/.github/workflows/docker_publish.yml @@ -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 diff --git a/.github/workflows/docker_test.yml b/.github/workflows/docker_test.yml new file mode 100644 index 00000000000..9dd0dcbb077 --- /dev/null +++ b/.github/workflows/docker_test.yml @@ -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 diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml new file mode 100644 index 00000000000..fa3b94677a9 --- /dev/null +++ b/.github/workflows/generate_documentation.yml @@ -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/github-pages-deploy-action@3.7.1 + with: + BRANCH: gh-pages + CLEAN: true + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SINGLE_COMMIT: true + FOLDER: dmdoc diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index 5402f4f7325..befd9c9b9c2 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -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 @@ -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: "60119942+WaspStation-Bot@users.noreply.github.com" + GIT_NAME: "WaspStation-Bot" run: python tools/changelog/generate_cl.py diff --git a/.github/workflows/round_id_linker.yml b/.github/workflows/round_id_linker.yml.old similarity index 100% rename from .github/workflows/round_id_linker.yml rename to .github/workflows/round_id_linker.yml.old diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 0778251cdf2..2d80c1cd10f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -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' diff --git a/.github/workflows/turdis.yml b/.github/workflows/turdis.yml deleted file mode 100644 index f3dfd451f98..00000000000 --- a/.github/workflows/turdis.yml +++ /dev/null @@ -1,154 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: Checks - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - pull_request: - branches: master - push: - branches: master - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - lint: - name: Lints - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - - name: Cache SpacemanDMM - uses: actions/cache@v1 - with: - path: ~/SpacemanDMM - key: ${{ runner.os }}-dreamchecker-${{ hashFiles('dependencies.sh')}} - restore-keys: ${{ runner.os }}-dreamchecker - - - name: Setup Python - uses: actions/setup-python@v2 - - - name: Setup Rust - uses: hecrj/setup-rust-action@v1.3.2 - - - name: Install Dependencies - run: | - wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash - tools/travis/install_build_tools.sh - tools/travis/install_spaceman_dmm.sh dreamchecker - - - name: Misc Checks - run: | - tools/travis/check_filedirs.sh tgstation.dme - tools/travis/check_changelogs.sh - find . -name "*.json" -not -path "./tgui/node_modules/*" -print0 | xargs -0 python3 ./tools/json_verifier.py - tools/travis/build_tgui.sh - tools/travis/check_grep.sh - - - name: Run Linter - id: linter - run: ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - - - name: Annotate Linter - uses: WaspStation/DreamAnnotate@v1 - if: always() - with: - outputFile: output-annotations.txt - - compile: - name: Compile All Maps - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - - name: Install Dependencies - run: | - curl https://raw.githubusercontent.com/WaspStation/WaspStation-1.0/master/.github/sources.list | sudo tee /etc/apt/sources.list - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt install libstdc++6:i386 - - - name: Cache BYOND - uses: actions/cache@v1 - with: - path: ~/BYOND - key: ${{ runner.os }}-byond-${{ hashFiles('Dockerfile')}} - restore-keys: ${{ runner.os }}-byond - - - name: Setup BYOND - run: | - tools/travis/install_byond.sh - cd $GITHUB_WORKSPACE - printenv - echo "BYOND_SYSTEM=/home/runner/BYOND/byond" >> $GITHUB_ENV - echo "/home/runner/BYOND/byond/bin" >> $GITHUB_PATH - echo "LD_LIBRARY_PATH=/home/runner/BYOND/byond/bin:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "MANPATH=/home/runner/BYOND/byond/man:$MANPATH" >> $GITHUB_ENV - - - name: Compile All Maps - run: | - tools/travis/template_dm_generator.py - tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme - test: - name: Compile and Run Tests - runs-on: ubuntu-18.04 - services: - mariadb: - image: mariadb/server - ports: - - 3306:3306 - env: - MARIADB_ALLOW_EMPTY_PASSWORD: yes - - steps: - - uses: actions/checkout@v2 - - - name: Install Dependencies - run: | - curl https://raw.githubusercontent.com/WaspStation/WaspStation-1.0/master/.github/sources.list | sudo tee /etc/apt/sources.list - sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt install libstdc++6:i386 gcc-multilib g++-7 g++-7-multilib libssl1.1:i386 zlib1g:i386 - - - name: Cache BYOND - uses: actions/cache@v1 - with: - path: ~/BYOND - key: ${{ runner.os }}-byond-${{ hashFiles('Dockerfile')}} - restore-keys: ${{ runner.os }}-byond - - - name: Setup Environment - run: | - tools/travis/install_byond.sh - echo "BYOND_SYSTEM=/home/runner/BYOND/byond" >> $GITHUB_ENV - echo "/home/runner/BYOND/byond/bin" >> $GITHUB_PATH - echo "LD_LIBRARY_PATH=/home/runner/BYOND/byond/bin:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "MANPATH=/home/runner/BYOND/byond/man:$MANPATH" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - tools/travis/install_rust_g.sh - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE tg_travis;' - mysql -u root -h 127.0.0.1 tg_travis < SQL/tgstation_schema.sql - mysql -u root -h 127.0.0.1 -e 'CREATE DATABASE tg_travis_prefixed;' - mysql -u root -h 127.0.0.1 tg_travis_prefixed < SQL/tgstation_schema_prefixed.sql - - - name: Compile - run: | - tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme || travis_terminate 1 - - - name: Prepare Artifacts - run: | - mkdir artifacts - cp tgstation.dmb artifacts - cp tgstation.rsc artifacts - - - name: Upload Artifacts - uses: actions/upload-artifact@v1 - with: - name: DMB + RSC - path: ${{github.workspace}}/artifacts - - - name: Run Tests - run: | - tools/travis/run_server.sh - diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml new file mode 100644 index 00000000000..beb8e44dfff --- /dev/null +++ b/.github/workflows/update_tgs_dmapi.yml @@ -0,0 +1,45 @@ +name: Update TGS DMAPI + +on: + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +jobs: + update-dmapi: + runs-on: ubuntu-latest + name: Update the TGS DMAPI + steps: + - name: Clone + uses: actions/checkout@v2 + + - name: Branch + run: | + git branch -f tgs-dmapi-update + git checkout tgs-dmapi-update + git reset --hard master + + - name: Apply DMAPI update + uses: tgstation/tgs-dmapi-updater@v2 + with: + header-path: 'code/__DEFINES/tgs.dm' + library-path: 'code/modules/tgs' + + - name: Commit and Push + run: | + git config user.name WaspStation-Bot + git config user.email 60119942+WaspStation-Bot@users.noreply.github.com + git add . + git commit -m 'Update TGS DMAPI' + git push -f -u origin tgs-dmapi-update + + - name: Create Pull Request + uses: repo-sync/pull-request@v2 + with: + source_branch: "tgs-dmapi-update" + destination_branch: "master" + pr_title: "Automatic TGS DMAPI Update" + pr_body: "This pull request updates the TGS DMAPI to the latest version. Please note any breaking or unimplemented changes before merging." + pr_label: "Tools" + pr_allow_empty: false + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml.old b/.travis.yml.old deleted file mode 100644 index aa185b3c934..00000000000 --- a/.travis.yml.old +++ /dev/null @@ -1,97 +0,0 @@ -language: generic -os: linux -dist: bionic - -#branches: -# only: -# - master - -matrix: - include: - - name: "Run Linters" - addons: - apt: - packages: - - python3 - - python3-pip - - python3-setuptools - - pcregrep - - rustc - - cargo - cache: - directories: - - $HOME/SpacemanDMM - install: - - tools/travis/install_build_tools.sh - - tools/travis/install_spaceman_dmm.sh dreamchecker - script: - - tools/travis/check_filedirs.sh tgstation.dme - - tools/travis/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 - - tools/travis/build_tgui.sh - - tools/travis/check_grep.sh - - ~/dreamchecker - - - name: "Compile All Maps" - addons: - apt: - packages: - - libstdc++6:i386 - cache: - directories: - - $HOME/BYOND - install: - - tools/travis/install_byond.sh - - source $HOME/BYOND/byond/bin/byondsetup - before_script: - - tools/travis/template_dm_generator.py - script: - - tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme - - - name: "Compile and Run Tests" - addons: - mariadb: '10.2' - apt: - sources: - - sourceline: "ppa:ubuntu-toolchain-r/test" - packages: - - libstdc++6:i386 - - gcc-multilib - - g++-7 - - g++-7-multilib - - libssl1.1:i386 - - zlib1g:i386 - cache: - directories: - - $HOME/BYOND - install: - - tools/travis/install_byond.sh - - source $HOME/BYOND/byond/bin/byondsetup - - tools/travis/install_rust_g.sh - before_script: - - mysql -u root -e 'CREATE DATABASE tg_travis;' - - mysql -u root tg_travis < SQL/tgstation_schema.sql - - mysql -u root -e 'CREATE DATABASE tg_travis_prefixed;' - - mysql -u root tg_travis_prefixed < SQL/tgstation_schema_prefixed.sql - script: - - tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme || travis_terminate 1 - - tools/travis/run_server.sh - -# - name: "Generate Documentation" - # Only run for non-PR commits to the real master branch. -# if: branch = master AND head_branch IS blank -# install: -# - tools/travis/install_spaceman_dmm.sh dmdoc -# before_script: - # Travis checks out a hash, try to get back on a branch. -# - git checkout $TRAVIS_BRANCH || true -# script: -# - ~/dmdoc -# - touch dmdoc/.nojekyll -# deploy: -# provider: pages -# skip_cleanup: true -# local_dir: dmdoc -# github_token: $DMDOC_GITHUB_TOKEN -# fqdn: waspstation.github.io diff --git a/Dockerfile b/Dockerfile index fcc4d7b5195..4ea0b38db7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,96 +1,62 @@ -FROM tgstation/byond:513.1514 as base - -FROM base as build_base - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - git \ - ca-certificates - -FROM build_base as rust_g - -WORKDIR /rust_g - -RUN apt-get install -y --no-install-recommends \ - libssl-dev \ - pkg-config \ - curl \ - gcc-multilib \ - && curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu \ - && git init \ - && git remote add origin https://github.com/tgstation/rust-g - -COPY dependencies.sh . - -RUN /bin/bash -c "source dependencies.sh \ - && git fetch --depth 1 origin \$RUST_G_VERSION" \ - && git checkout FETCH_HEAD \ - && ~/.cargo/bin/cargo build --release - -FROM build_base as bsql - -WORKDIR /bsql - -RUN apt-get install -y --no-install-recommends software-properties-common \ - && add-apt-repository ppa:ubuntu-toolchain-r/test \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ - cmake \ - make \ - g++-7 \ - libmariadb-client-lgpl-dev \ - && git init \ - && git remote add origin https://github.com/tgstation/BSQL - -COPY dependencies.sh . - -RUN /bin/bash -c "source dependencies.sh \ - && git fetch --depth 1 origin \$BSQL_VERSION" \ - && git checkout FETCH_HEAD - -WORKDIR /bsql/artifacts - -ENV CC=gcc-7 CXX=g++-7 - -RUN ln -s /usr/include/mariadb /usr/include/mysql \ - && ln -s /usr/lib/i386-linux-gnu /root/MariaDB \ - && cmake .. \ - && make - -FROM base as dm_base - -WORKDIR /tgstation - -FROM dm_base as build - -COPY . . - -RUN DreamMaker -max_errors 0 tgstation.dme && tools/deploy.sh /deploy - -FROM dm_base - -EXPOSE 1337 - -RUN apt-get update \ - && apt-get install -y --no-install-recommends software-properties-common \ - && add-apt-repository ppa:ubuntu-toolchain-r/test \ - && apt-get update \ - && apt-get upgrade -y \ - && apt-get dist-upgrade -y \ - && apt-get install -y --no-install-recommends \ - libmariadb2 \ - mariadb-client \ - libssl1.0.0 \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p /root/.byond/bin - -COPY --from=rust_g /rust_g/target/release/librust_g.so /root/.byond/bin/rust_g -COPY --from=bsql /bsql/artifacts/src/BSQL/libBSQL.so ./ -COPY --from=build /deploy ./ - -#bsql fexists memes -RUN ln -s /tgstation/libBSQL.so /root/.byond/bin/libBSQL.so - -VOLUME [ "/tgstation/config", "/tgstation/data" ] - -ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] +FROM tgstation/byond:513.1526 as base + +FROM base as rust_g + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + git \ + ca-certificates + +WORKDIR /rust_g + +RUN apt-get install -y --no-install-recommends \ + libssl-dev \ + pkg-config \ + curl \ + gcc-multilib \ + && curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu \ + && git init \ + && git remote add origin https://github.com/tgstation/rust-g + +COPY dependencies.sh . + +RUN /bin/bash -c "source dependencies.sh \ + && git fetch --depth 1 origin \$RUST_G_VERSION" \ + && git checkout FETCH_HEAD \ + && ~/.cargo/bin/cargo build --release + +FROM base as dm_base + +WORKDIR /tgstation + +FROM dm_base as build + +COPY . . + +RUN DreamMaker -max_errors 0 tgstation.dme \ + && tools/deploy.sh /deploy \ + && rm /deploy/*.dll + +FROM dm_base + +EXPOSE 1337 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends software-properties-common \ + && add-apt-repository ppa:ubuntu-toolchain-r/test \ + && apt-get update \ + && apt-get upgrade -y \ + && apt-get dist-upgrade -y \ + && apt-get install -y --no-install-recommends \ + libmariadb2 \ + mariadb-client \ + libssl1.0.0 \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /root/.byond/bin + +COPY --from=rust_g /rust_g/target/release/librust_g.so /root/.byond/bin/rust_g +COPY --from=build /deploy ./ + +VOLUME [ "/tgstation/config", "/tgstation/data" ] + +ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm index 72a490dde5f..0f794d56ceb 100644 --- a/_maps/_basemap.dm +++ b/_maps/_basemap.dm @@ -14,7 +14,7 @@ #include "map_files\BoxStation\BoxStation.dmm" #include "map_files\PackedStation\PackedStation.dmm" - #ifdef TRAVISBUILDING + #ifdef CIBUILDING #include "templates.dm" #endif #endif diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index f94282ef5b3..00000000000 --- a/appveyor.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '{build}' -skip_branch_with_pr: true -shallow_clone: true -branches: - except: - - ___TGS3TempBranch - - ___TGSTempBranch -cache: - - C:\byond\ -> dependencies.sh -build_script: - - ps: tools/appveyor/build.ps1 - - ps: "$deployPath = $env:APPVEYOR_BUILD_FOLDER + '/deploy'; bash tools/deploy.sh $deployPath" - - ps: "[System.IO.Compression.ZipFile]::CreateFromDirectory($env:APPVEYOR_BUILD_FOLDER + '/deploy', $env:APPVEYOR_BUILD_FOLDER + '/deploy.zip')" -artifacts: - - path: deploy.zip - -#Wasp Begin -on_failure: - - ps: Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1 - - ps: ./send.ps1 failure $env:WEBHOOK_URL -#Wasp End diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 603b0a92d0c..eeb0e51b697 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -381,8 +381,8 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) GLOBAL_VAR(atmos_extools_initialized) // this must be an uninitialized (null) one or init_monstermos will be called twice because reasons #define ATMOS_EXTOOLS_CHECK if(!GLOB.atmos_extools_initialized){\ GLOB.atmos_extools_initialized=TRUE;\ - if(fexists(world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so")){\ - var/result = call((world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so"),"init_monstermos")();\ + if(fexists(world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so")){\ + var/result = call((world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so"),"init_monstermos")();\ if(result != "ok") {CRASH(result);}\ } else {\ CRASH("byond-extools.dll does not exist!");\ diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 129cc33b700..645842437c4 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -58,11 +58,11 @@ #warn compiling in TESTING mode. testing() debug messages will be visible. #endif -#ifdef TRAVISBUILDING +#ifdef CIBUILDING #define UNIT_TESTS #endif -#ifdef TRAVISTESTING +#ifdef CITESTING #define TESTING #endif diff --git a/code/controllers/subsystem/achievements.dm b/code/controllers/subsystem/achievements.dm index c87b83771cc..554481b93a0 100644 --- a/code/controllers/subsystem/achievements.dm +++ b/code/controllers/subsystem/achievements.dm @@ -13,7 +13,7 @@ SUBSYSTEM_DEF(achievements) /datum/controller/subsystem/achievements/Initialize(timeofday) if(!SSdbcore.Connect()) - return + return ..() achievements_enabled = TRUE for(var/T in subtypesof(/datum/award/achievement)) @@ -37,7 +37,7 @@ SUBSYSTEM_DEF(achievements) /datum/controller/subsystem/achievements/Shutdown() save_achievements_to_db() - + /datum/controller/subsystem/achievements/proc/save_achievements_to_db() var/list/cheevos_to_save = list() for(var/ckey in GLOB.player_details) @@ -45,7 +45,8 @@ SUBSYSTEM_DEF(achievements) if(!PD || !PD.achievements) continue cheevos_to_save += PD.achievements.get_changed_data() - + if(!length(cheevos_to_save)) + return SSdbcore.MassInsert(format_table_name("achievements"),cheevos_to_save,duplicate_key = TRUE) //Update the metadata if any are behind @@ -68,6 +69,6 @@ SUBSYSTEM_DEF(achievements) continue if(!current_metadata[A.database_id] || current_metadata[A.database_id] < A.achievement_version) to_update += list(A.get_metadata_row()) - + if(to_update.len) SSdbcore.MassInsert(format_table_name("achievement_metadata"),to_update,duplicate_key = TRUE) diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm index 996f73ccf65..03c30887bae 100644 --- a/code/controllers/subsystem/title.dm +++ b/code/controllers/subsystem/title.dm @@ -32,7 +32,7 @@ SUBSYSTEM_DEF(title) file_path = "[global.config.directory]/title_screens/images/[pick(title_screens)]" if(!file_path) - file_path = "icons/default_title.dmi" + file_path = "icons/runtime/default_title.dmi" ASSERT(fexists(file_path)) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index f513fd88509..377f90dbd41 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -426,7 +426,7 @@ ///A special case for splatting for handling windows /datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W) - playsound(user, "sound/effects/Glasshit.ogg", 140, TRUE) + playsound(user, 'sound/effects/Glasshit.ogg', 140, TRUE) if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows for(var/i = 0, i < speed, i++) diff --git a/code/game/mecha/equipment/weapons/mecha_ammo.dm b/code/game/mecha/equipment/weapons/mecha_ammo.dm index 83a85ffcba5..8ab7915b16b 100644 --- a/code/game/mecha/equipment/weapons/mecha_ammo.dm +++ b/code/game/mecha/equipment/weapons/mecha_ammo.dm @@ -9,7 +9,7 @@ var/rounds = 0 var/round_term = "round" var/direct_load //For weapons where we re-load the weapon itself rather than adding to the ammo storage. - var/load_audio = "sound/weapons/gun_magazine_insert_empty_1.ogg" + var/load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' var/ammo_type /obj/item/mecha_ammo/proc/update_name() @@ -62,7 +62,7 @@ rounds = 6 round_term = "missile" direct_load = TRUE - load_audio = "sound/weapons/bulletinsert.ogg" + load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' ammo_type = "missiles_br" /obj/item/mecha_ammo/missiles_he @@ -72,7 +72,7 @@ rounds = 8 round_term = "missile" direct_load = TRUE - load_audio = "sound/weapons/bulletinsert.ogg" + load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' ammo_type = "missiles_he" diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 608b8cb1c5d..d61cd3c0a72 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -39,7 +39,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/match/proc/matchignite() if(!lit && !burnt) - playsound(src, "sound/items/match_strike.ogg", 15, TRUE) + playsound(src, 'sound/items/match_strike.ogg', 15, TRUE) lit = TRUE icon_state = "match_lit" damtype = "fire" diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 7648cff1b31..2ea802cd91e 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -181,7 +181,7 @@ var/stamina_damage = 55 // Do we deal stamina damage. var/affect_silicon = FALSE // Does it stun silicons. var/on_sound // "On" sound, played when switching between able to stun or not. - var/on_stun_sound = "sound/effects/woodhit.ogg" // Default path to sound for when we stun. + var/on_stun_sound = 'sound/effects/woodhit.ogg' // Default path to sound for when we stun. var/stun_animation = TRUE // Do we animate the "hit" when stunning. var/on = TRUE // Are we on or off. diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 85ab7223cb2..a90a6ca2c6c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1386,7 +1386,7 @@ name = "Security Officer action figure" icon_state = "secofficer" toysay = "I am the law!" - toysound = 'sound/voice/complionator/dredd.ogg' + toysound = 'sound/runtime/complionator/dredd.ogg' /obj/item/toy/figure/virologist name = "Virologist action figure" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index c3ac5a7d9aa..b78618167b4 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -131,7 +131,7 @@ pushed_mob.apply_damage(40, STAMINA) if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user)) deconstruct(FALSE) - playsound(pushed_mob, "sound/effects/tableslam.ogg", 90, TRUE) + playsound(pushed_mob, 'sound/effects/tableslam.ogg', 90, TRUE) pushed_mob.visible_message("[user] slams [pushed_mob] onto \the [src]!", \ "[user] slams you onto \the [src]!") log_combat(user, pushed_mob, "tabled", null, "onto [src]") @@ -144,7 +144,7 @@ take_damage(50) if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user)) deconstruct(FALSE) - playsound(pushed_mob, "sound/effects/tableheadsmash.ogg", 90, TRUE) + playsound(pushed_mob, 'sound/effects/bang.ogg', 90, TRUE) pushed_mob.visible_message("[user] smashes [pushed_mob]'s head against \the [src]!", "[user] smashes your head against \the [src]") log_combat(user, pushed_mob, "head slammed", null, "against [src]") diff --git a/code/game/sound.dm b/code/game/sound.dm index 59fc3a0532f..9e1cdfca709 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -162,7 +162,7 @@ if("goose") soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg') if("warpspeed") - soundin = 'sound/effects/hyperspace_begin.ogg' + soundin = 'sound/runtime/hyperspace/hyperspace_begin.ogg' if("smcalm") soundin = pick('sound/machines/sm/accent/normal/1.ogg', 'sound/machines/sm/accent/normal/2.ogg', 'sound/machines/sm/accent/normal/3.ogg', 'sound/machines/sm/accent/normal/4.ogg', 'sound/machines/sm/accent/normal/5.ogg', 'sound/machines/sm/accent/normal/6.ogg', 'sound/machines/sm/accent/normal/7.ogg', 'sound/machines/sm/accent/normal/8.ogg', 'sound/machines/sm/accent/normal/9.ogg', 'sound/machines/sm/accent/normal/10.ogg', 'sound/machines/sm/accent/normal/11.ogg', 'sound/machines/sm/accent/normal/12.ogg', 'sound/machines/sm/accent/normal/13.ogg', 'sound/machines/sm/accent/normal/14.ogg', 'sound/machines/sm/accent/normal/15.ogg', 'sound/machines/sm/accent/normal/16.ogg', 'sound/machines/sm/accent/normal/17.ogg', 'sound/machines/sm/accent/normal/18.ogg', 'sound/machines/sm/accent/normal/19.ogg', 'sound/machines/sm/accent/normal/20.ogg', 'sound/machines/sm/accent/normal/21.ogg', 'sound/machines/sm/accent/normal/22.ogg', 'sound/machines/sm/accent/normal/23.ogg', 'sound/machines/sm/accent/normal/24.ogg', 'sound/machines/sm/accent/normal/25.ogg', 'sound/machines/sm/accent/normal/26.ogg', 'sound/machines/sm/accent/normal/27.ogg', 'sound/machines/sm/accent/normal/28.ogg', 'sound/machines/sm/accent/normal/29.ogg', 'sound/machines/sm/accent/normal/30.ogg', 'sound/machines/sm/accent/normal/31.ogg', 'sound/machines/sm/accent/normal/32.ogg', 'sound/machines/sm/accent/normal/33.ogg') if("smdelam") diff --git a/code/game/world.dm b/code/game/world.dm index 17be00385f2..b4d1dc733af 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -5,18 +5,28 @@ GLOBAL_VAR(restart_counter) /** * World creation * - * Here is where a round itself is actually begun and setup, lots of important config changes happen here + * Here is where a round itself is actually begun and setup. * * db connection setup * * config loaded from files * * loads admins * * Sets up the dynamic menu system * * and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up * - * Note this happens after the Master subsystem is created (as that is a global datum), this means all the subsystems exist, - * but they have not been Initialized at this point, only their New proc has run * * Nothing happens until something moves. ~Albert Einstein * + * For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem. + * + * Initialization Pipeline: + * Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) + * Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed + * world/New() (You are here) + * Once world/New() returns, client's can connect. + * 1 second sleep + * Master Controller initialization. + * Subsystem initialization. + * Non-compiled-in maps are maploaded, all atoms are new()ed + * All atoms in both compiled and uncompiled maps are initialized() */ /world/New() var/extools = world.GetConfig("env", "EXTOOLS_DLL") || (world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so") @@ -27,11 +37,6 @@ GLOBAL_VAR(restart_counter) enable_reference_tracking() #endif - //Early profile for auto-profiler - will be stopped on profiler init if necessary. -#if DM_BUILD >= 1506 - world.Profile(PROFILE_START) -#endif - log_world("World loaded at [time_stamp()]!") make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) @@ -53,6 +58,7 @@ GLOBAL_VAR(restart_counter) SSdbcore.SetRoundID() SetupLogs() populate_gear_list() //Wasp edit - Loadouts + load_poll_data() #ifndef USE_CUSTOM_ERROR_HANDLER world.log = file("[GLOB.log_directory]/dd.log") @@ -76,8 +82,9 @@ GLOBAL_VAR(restart_counter) Master.Initialize(10, FALSE, TRUE) - if(TEST_RUN_PARAMETER in params) - HandleTestRun() + #ifdef UNIT_TESTS + HandleTestRun() + #endif /world/proc/InitTgs() TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) @@ -143,7 +150,7 @@ GLOBAL_VAR(restart_counter) GLOB.demo_log = "[GLOB.log_directory]/demo.log" #ifdef UNIT_TESTS - GLOB.test_log = file("[GLOB.log_directory]/tests.log") + GLOB.test_log = "[GLOB.log_directory]/tests.log" start_log(GLOB.test_log) #endif start_log(GLOB.world_game_log) @@ -240,9 +247,10 @@ GLOBAL_VAR(restart_counter) TgsReboot() - if(TEST_RUN_PARAMETER in params) - FinishTestRun() - return + #ifdef UNIT_TESTS + FinishTestRun() + return + #endif if(TgsAvailable()) var/do_hard_reboot diff --git a/code/modules/chatter/chatter.dm b/code/modules/chatter/chatter.dm index a9421fff3bf..b61ef31aa05 100644 --- a/code/modules/chatter/chatter.dm +++ b/code/modules/chatter/chatter.dm @@ -35,7 +35,7 @@ chatter_speak_word(A.loc, phomeme, length) /proc/chatter_speak_word(loc, phomeme, length) - var/path = "sound/chatter/[phomeme]_[length].ogg" + var/path = "sound/runtime/chatter/[phomeme]_[length].ogg" playsound(loc, path, vol = 40, vary = 0, extrarange = 3, falloff = FALSE) diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index c9748b10992..fbb35417388 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -165,7 +165,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( . = FALSE if (!cooldown) usr.audible_message("[usr]'s Compli-o-Nator: [initial(phrase.phrase_text)]") - playsound(src.loc, "sound/voice/complionator/[initial(phrase.phrase_sound)].ogg", 100, FALSE, 4) + playsound(src, "sound/runtime/complionator/[initial(phrase.phrase_sound)].ogg", 100, FALSE, 4) cooldown = TRUE addtimer(CALLBACK(src, /obj/item/clothing/mask/gas/sechailer/proc/reset_cooldown), PHRASE_COOLDOWN) . = TRUE @@ -188,7 +188,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( /obj/item/clothing/mask/whistle/ui_action_click(mob/user, action) if(cooldown < world.time - 100) usr.audible_message("HALT!") - playsound(src.loc, "sound/misc/whistle.ogg", 100, FALSE, 4) + playsound(src, 'sound/misc/whistle.ogg', 100, FALSE, 4) cooldown = world.time #undef PHRASE_COOLDOWN diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index bd434c57845..3a9997e6642 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -391,7 +391,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if("gun") var/hits = 0 for(var/i in 1 to rand(3, 6)) - target.playsound_local(source, "sound/weapons/gunshot.ogg", 25, TRUE) + target.playsound_local(source, 'sound/weapons/gun/shotgun/shot.ogg', 25, TRUE) if(prob(60)) addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10)) hits++ @@ -864,7 +864,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( sleep(25) target.playsound_local(source, 'sound/weapons/ring.ogg', 15) if("hyperspace") - target.playsound_local(null, 'sound/effects/hyperspace_begin.ogg', 50) + target.playsound_local(null, 'sound/runtime/hyperspace/hyperspace_begin.ogg', 50) if("hallelujah") target.playsound_local(source, 'sound/effects/pray_chaplain.ogg', 50) if("highlander") diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index ef7fadbfcf4..2cc9ec29977 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -178,7 +178,7 @@ AddComponent(/datum/component/spooky) /obj/item/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user) - playsound (loc, 'sound/runtime/instruments/trombone/En4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/trombone/En4.mid', 100,1,-1) ..() /obj/item/instrument/saxophone @@ -201,7 +201,7 @@ AddComponent(/datum/component/spooky) /obj/item/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) - playsound (loc, 'sound/runtime/instruments/saxophone/En4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/saxophone/En4.mid', 100,1,-1) ..() /obj/item/instrument/trombone @@ -224,7 +224,7 @@ AddComponent(/datum/component/spooky) /obj/item/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user) - playsound (loc, 'sound/runtime/instruments/trombone/Cn4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/trombone/Cn4.mid', 100,1,-1) ..() /obj/item/instrument/recorder diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 4078be8e81a..6798f7c650a 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -67,10 +67,10 @@ brainmob.add_to_alive_mob_list() else if(!fubar_brain && newbrain.organ_flags & ORGAN_FAILING) // the brain is damaged, but not from a suicider to_chat(user, "[src]'s indicator light turns yellow and its brain integrity alarm beeps softly. Perhaps you should check [newbrain] for damage.") - playsound(src, "sound/machines/synth_no.ogg", 5, TRUE) + playsound(src, 'sound/machines/synth_no.ogg', 5, TRUE) else to_chat(user, "[src]'s indicator light turns red and its brainwave activity alarm beeps softly. Perhaps you should check [newbrain] again.") - playsound(src, "sound/weapons/smg_empty_alarm.ogg", 5, TRUE) + playsound(src, 'sound/machines/triple_beep.ogg', 5, TRUE) brainmob.reset_perspective() brain = newbrain diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm index f52b234b209..08a4b0b413a 100644 --- a/code/modules/mob/living/simple_animal/bot/firebot.dm +++ b/code/modules/mob/living/simple_animal/bot/firebot.dm @@ -209,10 +209,10 @@ if((speech_cooldown + SPEECH_INTERVAL) < world.time) if(ishuman(target_fire)) speak("Stop, drop and roll!") - playsound(src, "sound/voice/firebot/stopdropnroll.ogg", 50, FALSE) + playsound(src, 'sound/voice/firebot/stopdropnroll.ogg', 50, FALSE) else speak("Extinguishing!") - playsound(src, "sound/voice/firebot/extinguishing.ogg", 50, FALSE) + playsound(src, 'sound/voice/firebot/extinguishing.ogg', 50, FALSE) speech_cooldown = world.time flick("firebot1_use", src) @@ -265,7 +265,7 @@ if(is_burning(scan_target)) if((detected_cooldown + DETECTED_VOICE_INTERVAL) < world.time) speak("Fire detected!") - playsound(src, "sound/voice/firebot/detected.ogg", 50, FALSE) + playsound(src, 'sound/voice/firebot/detected.ogg', 50, FALSE) detected_cooldown = world.time result = scan_target diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index 9db177f7107..84b32449594 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -123,7 +123,7 @@ /mob/living/simple_animal/hostile/netherworld/migo/Initialize() . = ..() - migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/beepsky/creep.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/medbot/patchedup.ogg', 'sound/voice/medbot/feelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_aler.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/hyperspace_begin.ogg', 'sound/effects/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/ratvar_reveal.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gun/pistol/shot_suppressed.ogg', 'sound/weapons/gun/pistol/shot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg') //hahahaha fuck you code divers + migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/beepsky/creep.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/medbot/patchedup.ogg', 'sound/voice/medbot/feelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_aler.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/runtime/hyperspace/hyperspace_begin.ogg', 'sound/runtime/hyperspace/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/ratvar_reveal.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gun/pistol/shot_suppressed.ogg', 'sound/weapons/gun/pistol/shot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg') //hahahaha fuck you code divers /mob/living/simple_animal/hostile/netherworld/migo/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) ..() diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 8bab1dba521..04d84a1c0e8 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -10,8 +10,8 @@ fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' vary_fire_sound = FALSE fire_sound_volume = 90 - rack_sound = "sound/weapons/gun/shotgun/rack.ogg" - load_sound = "sound/weapons/gun/shotgun/insert_shell.ogg" + rack_sound = 'sound/weapons/gun/shotgun/rack.ogg' + load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg' w_class = WEIGHT_CLASS_BULKY force = 10 flags_1 = CONDUCT_1 @@ -248,7 +248,7 @@ desc = "Range isn't an issue when you can bring your victim to you." icon_state = "hookshotgun" item_state = "shotgun" - load_sound = "sound/weapons/shotguninsert.ogg" + load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg' mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_MEDIUM diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 03abc4b5269..4f2599c1dae 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -671,7 +671,7 @@ /datum/design/surgery/healing //PLEASE ACCOUNT FOR UNIQUE HEALING BRANCHES IN THE hptech HREF (currently 2 for Brute/Burn; Combo is bonus) name = "Tend Wounds" desc = "An upgraded version of the original surgery." - id = "surgery_healing_base" //holder because travis cries otherwise. Not used in techweb unlocks. + id = "surgery_healing_base" //holder because CI cries otherwise. Not used in techweb unlocks. research_icon_state = "surgery_chest" /datum/design/surgery/healing/brute_upgrade diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index c77ba8a2282..c7e21a2d789 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -804,7 +804,7 @@ for(var/mob/M in SSmobs.clients_by_zlevel[z]) var/dist_far = get_dist(M, distant_source) if(dist_far <= long_range && dist_far > range) - M.playsound_local(distant_source, "sound/effects/[selected_sound]_distance.ogg", 100, falloff = 20) + M.playsound_local(distant_source, "sound/runtime/hyperspace/[selected_sound]_distance.ogg", 100, falloff = 20) else if(dist_far <= range) var/source if(engine_list.len == 0) @@ -816,7 +816,7 @@ if(dist_near < closest_dist) source = O closest_dist = dist_near - M.playsound_local(source, "sound/effects/[selected_sound].ogg", 100, falloff = range / 2) + M.playsound_local(source, "sound/runtime/hyperspace/[selected_sound].ogg", 100, falloff = range / 2) // Losing all initial engines should get you 2 // Adding another set of engines at 0.5 time diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 8344aa045f1..38a5c636a50 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -68,7 +68,7 @@ if(is_key(inserted_key) && eddie_murphy) if(stall_cooldown + 10 < world.time) visible_message("[src] sputters and refuses to move!") - playsound(src, "sound/effects/stall.ogg", 70) + playsound(src, 'sound/effects/stall.ogg', 70) stall_cooldown = world.time return FALSE return ..() diff --git a/icons/runtime/README.md b/icons/runtime/README.md new file mode 100644 index 00000000000..804cb2f285e --- /dev/null +++ b/icons/runtime/README.md @@ -0,0 +1,5 @@ +# Runtime Loaded Icons + +These icons are not compiled into the .rsc or are otherwise loaded at runtime. + +Please keep all (non-config) icons that do this in this folder as it is needed by the [deploy.sh](../../tools/deploy.sh) script to minimize build output. diff --git a/icons/default_title.dmi b/icons/runtime/default_title.dmi similarity index 100% rename from icons/default_title.dmi rename to icons/runtime/default_title.dmi diff --git a/sound/runtime/README.md b/sound/runtime/README.md new file mode 100644 index 00000000000..07bacb9ad76 --- /dev/null +++ b/sound/runtime/README.md @@ -0,0 +1,5 @@ +# Runtime Loaded Sounds + +These sounds are not compiled into the .rsc or are otherwise loaded at runtime. + +Please keep all (non-config) sounds that do this in this folder as it is needed by the [deploy.sh](../../tools/deploy.sh) script to minimize build output. diff --git a/sound/chatter/griffin_1.ogg b/sound/runtime/chatter/griffin_1.ogg similarity index 100% rename from sound/chatter/griffin_1.ogg rename to sound/runtime/chatter/griffin_1.ogg diff --git a/sound/chatter/griffin_10.ogg b/sound/runtime/chatter/griffin_10.ogg similarity index 100% rename from sound/chatter/griffin_10.ogg rename to sound/runtime/chatter/griffin_10.ogg diff --git a/sound/chatter/griffin_2.ogg b/sound/runtime/chatter/griffin_2.ogg similarity index 100% rename from sound/chatter/griffin_2.ogg rename to sound/runtime/chatter/griffin_2.ogg diff --git a/sound/chatter/griffin_3.ogg b/sound/runtime/chatter/griffin_3.ogg similarity index 100% rename from sound/chatter/griffin_3.ogg rename to sound/runtime/chatter/griffin_3.ogg diff --git a/sound/chatter/griffin_4.ogg b/sound/runtime/chatter/griffin_4.ogg similarity index 100% rename from sound/chatter/griffin_4.ogg rename to sound/runtime/chatter/griffin_4.ogg diff --git a/sound/chatter/griffin_5.ogg b/sound/runtime/chatter/griffin_5.ogg similarity index 100% rename from sound/chatter/griffin_5.ogg rename to sound/runtime/chatter/griffin_5.ogg diff --git a/sound/chatter/griffin_6.ogg b/sound/runtime/chatter/griffin_6.ogg similarity index 100% rename from sound/chatter/griffin_6.ogg rename to sound/runtime/chatter/griffin_6.ogg diff --git a/sound/chatter/griffin_7.ogg b/sound/runtime/chatter/griffin_7.ogg similarity index 100% rename from sound/chatter/griffin_7.ogg rename to sound/runtime/chatter/griffin_7.ogg diff --git a/sound/chatter/griffin_8.ogg b/sound/runtime/chatter/griffin_8.ogg similarity index 100% rename from sound/chatter/griffin_8.ogg rename to sound/runtime/chatter/griffin_8.ogg diff --git a/sound/chatter/griffin_9.ogg b/sound/runtime/chatter/griffin_9.ogg similarity index 100% rename from sound/chatter/griffin_9.ogg rename to sound/runtime/chatter/griffin_9.ogg diff --git a/sound/chatter/owl_1.ogg b/sound/runtime/chatter/owl_1.ogg similarity index 100% rename from sound/chatter/owl_1.ogg rename to sound/runtime/chatter/owl_1.ogg diff --git a/sound/chatter/owl_10.ogg b/sound/runtime/chatter/owl_10.ogg similarity index 100% rename from sound/chatter/owl_10.ogg rename to sound/runtime/chatter/owl_10.ogg diff --git a/sound/chatter/owl_2.ogg b/sound/runtime/chatter/owl_2.ogg similarity index 100% rename from sound/chatter/owl_2.ogg rename to sound/runtime/chatter/owl_2.ogg diff --git a/sound/chatter/owl_3.ogg b/sound/runtime/chatter/owl_3.ogg similarity index 100% rename from sound/chatter/owl_3.ogg rename to sound/runtime/chatter/owl_3.ogg diff --git a/sound/chatter/owl_4.ogg b/sound/runtime/chatter/owl_4.ogg similarity index 100% rename from sound/chatter/owl_4.ogg rename to sound/runtime/chatter/owl_4.ogg diff --git a/sound/chatter/owl_5.ogg b/sound/runtime/chatter/owl_5.ogg similarity index 100% rename from sound/chatter/owl_5.ogg rename to sound/runtime/chatter/owl_5.ogg diff --git a/sound/chatter/owl_6.ogg b/sound/runtime/chatter/owl_6.ogg similarity index 100% rename from sound/chatter/owl_6.ogg rename to sound/runtime/chatter/owl_6.ogg diff --git a/sound/chatter/owl_7.ogg b/sound/runtime/chatter/owl_7.ogg similarity index 100% rename from sound/chatter/owl_7.ogg rename to sound/runtime/chatter/owl_7.ogg diff --git a/sound/chatter/owl_8.ogg b/sound/runtime/chatter/owl_8.ogg similarity index 100% rename from sound/chatter/owl_8.ogg rename to sound/runtime/chatter/owl_8.ogg diff --git a/sound/chatter/owl_9.ogg b/sound/runtime/chatter/owl_9.ogg similarity index 100% rename from sound/chatter/owl_9.ogg rename to sound/runtime/chatter/owl_9.ogg diff --git a/sound/voice/complionator/asshole.ogg b/sound/runtime/complionator/asshole.ogg similarity index 100% rename from sound/voice/complionator/asshole.ogg rename to sound/runtime/complionator/asshole.ogg diff --git a/sound/voice/complionator/bash.ogg b/sound/runtime/complionator/bash.ogg similarity index 100% rename from sound/voice/complionator/bash.ogg rename to sound/runtime/complionator/bash.ogg diff --git a/sound/voice/complionator/bobby.ogg b/sound/runtime/complionator/bobby.ogg similarity index 100% rename from sound/voice/complionator/bobby.ogg rename to sound/runtime/complionator/bobby.ogg diff --git a/sound/voice/complionator/compliance.ogg b/sound/runtime/complionator/compliance.ogg similarity index 100% rename from sound/voice/complionator/compliance.ogg rename to sound/runtime/complionator/compliance.ogg diff --git a/sound/voice/complionator/dontmove.ogg b/sound/runtime/complionator/dontmove.ogg similarity index 100% rename from sound/voice/complionator/dontmove.ogg rename to sound/runtime/complionator/dontmove.ogg diff --git a/sound/voice/complionator/dredd.ogg b/sound/runtime/complionator/dredd.ogg similarity index 100% rename from sound/voice/complionator/dredd.ogg rename to sound/runtime/complionator/dredd.ogg diff --git a/sound/voice/complionator/emag.ogg b/sound/runtime/complionator/emag.ogg similarity index 100% rename from sound/voice/complionator/emag.ogg rename to sound/runtime/complionator/emag.ogg diff --git a/sound/voice/complionator/floor.ogg b/sound/runtime/complionator/floor.ogg similarity index 100% rename from sound/voice/complionator/floor.ogg rename to sound/runtime/complionator/floor.ogg diff --git a/sound/voice/complionator/freeze.ogg b/sound/runtime/complionator/freeze.ogg similarity index 100% rename from sound/voice/complionator/freeze.ogg rename to sound/runtime/complionator/freeze.ogg diff --git a/sound/voice/complionator/god.ogg b/sound/runtime/complionator/god.ogg similarity index 100% rename from sound/voice/complionator/god.ogg rename to sound/runtime/complionator/god.ogg diff --git a/sound/voice/complionator/halt.ogg b/sound/runtime/complionator/halt.ogg similarity index 100% rename from sound/voice/complionator/halt.ogg rename to sound/runtime/complionator/halt.ogg diff --git a/sound/voice/complionator/harry.ogg b/sound/runtime/complionator/harry.ogg similarity index 100% rename from sound/voice/complionator/harry.ogg rename to sound/runtime/complionator/harry.ogg diff --git a/sound/voice/complionator/imperial.ogg b/sound/runtime/complionator/imperial.ogg similarity index 100% rename from sound/voice/complionator/imperial.ogg rename to sound/runtime/complionator/imperial.ogg diff --git a/sound/voice/complionator/justice.ogg b/sound/runtime/complionator/justice.ogg similarity index 100% rename from sound/voice/complionator/justice.ogg rename to sound/runtime/complionator/justice.ogg diff --git a/sound/voice/complionator/robocop.ogg b/sound/runtime/complionator/robocop.ogg similarity index 100% rename from sound/voice/complionator/robocop.ogg rename to sound/runtime/complionator/robocop.ogg diff --git a/sound/voice/complionator/running.ogg b/sound/runtime/complionator/running.ogg similarity index 100% rename from sound/voice/complionator/running.ogg rename to sound/runtime/complionator/running.ogg diff --git a/sound/voice/complionator/shutup.ogg b/sound/runtime/complionator/shutup.ogg similarity index 100% rename from sound/voice/complionator/shutup.ogg rename to sound/runtime/complionator/shutup.ogg diff --git a/sound/voice/complionator/stfu.ogg b/sound/runtime/complionator/stfu.ogg similarity index 100% rename from sound/voice/complionator/stfu.ogg rename to sound/runtime/complionator/stfu.ogg diff --git a/sound/voice/complionator/super.ogg b/sound/runtime/complionator/super.ogg similarity index 100% rename from sound/voice/complionator/super.ogg rename to sound/runtime/complionator/super.ogg diff --git a/sound/effects/hyperspace_begin.ogg b/sound/runtime/hyperspace/hyperspace_begin.ogg similarity index 100% rename from sound/effects/hyperspace_begin.ogg rename to sound/runtime/hyperspace/hyperspace_begin.ogg diff --git a/sound/effects/hyperspace_begin_distance.ogg b/sound/runtime/hyperspace/hyperspace_begin_distance.ogg similarity index 100% rename from sound/effects/hyperspace_begin_distance.ogg rename to sound/runtime/hyperspace/hyperspace_begin_distance.ogg diff --git a/sound/effects/hyperspace_end.ogg b/sound/runtime/hyperspace/hyperspace_end.ogg similarity index 100% rename from sound/effects/hyperspace_end.ogg rename to sound/runtime/hyperspace/hyperspace_end.ogg diff --git a/sound/effects/hyperspace_end_distance.ogg b/sound/runtime/hyperspace/hyperspace_end_distance.ogg similarity index 100% rename from sound/effects/hyperspace_end_distance.ogg rename to sound/runtime/hyperspace/hyperspace_end_distance.ogg diff --git a/sound/effects/hyperspace_progress.ogg b/sound/runtime/hyperspace/hyperspace_progress.ogg similarity index 100% rename from sound/effects/hyperspace_progress.ogg rename to sound/runtime/hyperspace/hyperspace_progress.ogg diff --git a/sound/effects/hyperspace_progress_distance.ogg b/sound/runtime/hyperspace/hyperspace_progress_distance.ogg similarity index 100% rename from sound/effects/hyperspace_progress_distance.ogg rename to sound/runtime/hyperspace/hyperspace_progress_distance.ogg diff --git a/tools/appveyor/build.ps1 b/tools/ci/build.ps1 similarity index 66% rename from tools/appveyor/build.ps1 rename to tools/ci/build.ps1 index 6bda0799771..8c9906dfe5c 100644 --- a/tools/appveyor/build.ps1 +++ b/tools/ci/build.ps1 @@ -1,10 +1,8 @@ if(!(Test-Path -Path "C:/byond")){ - bash tools/appveyor/download_byond.sh + bash tools/ci/download_byond.sh [System.IO.Compression.ZipFile]::ExtractToDirectory("C:/byond.zip", "C:/") Remove-Item C:/byond.zip } -Set-Location $env:APPVEYOR_BUILD_FOLDER - &"C:/byond/bin/dm.exe" -max_errors 0 tgstation.dme -exit $LASTEXITCODE \ No newline at end of file +exit $LASTEXITCODE diff --git a/tools/travis/build_spaceman_dmm.sh b/tools/ci/build_spaceman_dmm.sh similarity index 100% rename from tools/travis/build_spaceman_dmm.sh rename to tools/ci/build_spaceman_dmm.sh diff --git a/tools/travis/build_tgui.sh b/tools/ci/build_tgui.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/build_tgui.sh rename to tools/ci/build_tgui.sh diff --git a/tools/travis/check_changelogs.sh b/tools/ci/check_changelogs.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/check_changelogs.sh rename to tools/ci/check_changelogs.sh diff --git a/tools/travis/check_filedirs.sh b/tools/ci/check_filedirs.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/check_filedirs.sh rename to tools/ci/check_filedirs.sh diff --git a/tools/travis/check_grep.sh b/tools/ci/check_grep.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/check_grep.sh rename to tools/ci/check_grep.sh diff --git a/tools/travis/travis_config.txt b/tools/ci/ci_config.txt similarity index 82% rename from tools/travis/travis_config.txt rename to tools/ci/ci_config.txt index ff6bf9a793e..4925d781bbb 100644 --- a/tools/travis/travis_config.txt +++ b/tools/ci/ci_config.txt @@ -1,7 +1,7 @@ SQL_ENABLED ADDRESS 127.0.0.1 PORT 3306 -FEEDBACK_DATABASE tg_travis +FEEDBACK_DATABASE tg_ci FEEDBACK_TABLEPREFIX FEEDBACK_LOGIN root FEEDBACK_PASSWORD diff --git a/tools/travis/dm.sh b/tools/ci/dm.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/dm.sh rename to tools/ci/dm.sh diff --git a/tools/appveyor/download_byond.sh b/tools/ci/download_byond.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/appveyor/download_byond.sh rename to tools/ci/download_byond.sh diff --git a/tools/travis/install_build_tools.sh b/tools/ci/install_build_tools.sh similarity index 76% rename from tools/travis/install_build_tools.sh rename to tools/ci/install_build_tools.sh index 22f276b15cb..6c3e267fca3 100755 --- a/tools/travis/install_build_tools.sh +++ b/tools/ci/install_build_tools.sh @@ -10,9 +10,3 @@ npm install --global yarn pip3 install --user PyYaml pip3 install --user beautifulsoup4 - - -if ! hash php 2>/dev/null -then - phpenv global $PHP_VERSION -fi \ No newline at end of file diff --git a/tools/travis/install_byond.sh b/tools/ci/install_byond.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/install_byond.sh rename to tools/ci/install_byond.sh diff --git a/tools/travis/install_rust_g.sh b/tools/ci/install_rust_g.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/install_rust_g.sh rename to tools/ci/install_rust_g.sh diff --git a/tools/travis/install_spaceman_dmm.sh b/tools/ci/install_spaceman_dmm.sh old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/install_spaceman_dmm.sh rename to tools/ci/install_spaceman_dmm.sh diff --git a/tools/ci/run_server.sh b/tools/ci/run_server.sh new file mode 100644 index 00000000000..039785b46a7 --- /dev/null +++ b/tools/ci/run_server.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -euo pipefail +EXIT_CODE=0 + +tools/deploy.sh ci_test +#rm ci_test/*.dll +mkdir ci_test/config + +#test config +cp tools/ci/ci_config.txt ci_test/config/config.txt + +cd ci_test +DreamDaemon tgstation.dmb -close -trusted -verbose -params "log-directory=ci" || EXIT_CODE=$? + +#We don't care if extools dies +if [ $EXIT_CODE != 134 ]; then + if [ $EXIT_CODE != 0 ]; then + exit $EXIT_CODE + fi +fi + +cd .. +cat ci_test/data/logs/ci/clean_run.lk diff --git a/tools/travis/template_dm_generator.py b/tools/ci/template_dm_generator.py old mode 100755 new mode 100644 similarity index 100% rename from tools/travis/template_dm_generator.py rename to tools/ci/template_dm_generator.py diff --git a/tools/deploy.sh b/tools/deploy.sh index 4280b2e1720..3db8a3c6f6d 100755 --- a/tools/deploy.sh +++ b/tools/deploy.sh @@ -11,10 +11,8 @@ fi mkdir -p \ $1/_maps \ - $1/icons \ - $1/sound/chatter \ - $1/sound/voice/complionator \ - $1/sound/instruments \ + $1/icons/runtime \ + $1/sound/runtime \ $1/strings if [ -d ".git" ]; then @@ -24,10 +22,8 @@ fi cp tgstation.dmb tgstation.rsc $1/ cp -r _maps/* $1/_maps/ -cp icons/default_title.dmi $1/icons/ -cp -r sound/chatter/* $1/sound/chatter/ -cp -r sound/voice/complionator/* $1/sound/voice/complionator/ -cp -r sound/instruments/* $1/sound/instruments/ +cp -r icons/runtime/* $1/icons/runtime/ +cp -r sound/runtime/* $1/sound/runtime/ cp -r strings/* $1/strings/ #remove .dm files from _maps @@ -36,5 +32,6 @@ cp -r strings/* $1/strings/ #find $1/_maps -name "*.dm" -type f -delete #dlls on windows +cp *.dll $1/ || true cp rust_g* $1/ || true cp *byond-extools.* $1/ || true diff --git a/tools/mapmerge2/dmi.py b/tools/mapmerge2/dmi.py index 7e1c75cf8d5..e87cf507b99 100644 --- a/tools/mapmerge2/dmi.py +++ b/tools/mapmerge2/dmi.py @@ -217,7 +217,8 @@ def get_frame(self, *args, **kwargs): return self.frames[self._frame_index(*args, **kwargs)] def escape(text): - assert '\\' not in text and '"' not in text + text = text.replace('\\', '\\\\') + text = text.replace('"', '\\"') return f'"{text}"' def unescape(text, quote='"'): @@ -226,7 +227,8 @@ def unescape(text, quote='"'): if not (text.startswith(quote) and text.endswith(quote)): raise ValueError(text) text = text[1:-1] - assert '\\' not in text and quote not in text + text = text.replace('\\"', '"') + text = text.replace('\\\\', '\\') return text def parse_num(value): @@ -239,7 +241,7 @@ def parse_bool(value): raise ValueError(value) return value == '1' -if __name__ == '__main__': +def _self_test(): # test: can we load every DMI in the tree import os @@ -249,7 +251,31 @@ def parse_bool(value): dirnames.remove('.git') for filename in filenames: if filename.endswith('.dmi'): - Dmi.from_file(os.path.join(dirpath, filename)) + fullpath = os.path.join(dirpath, filename) + try: + Dmi.from_file(fullpath) + except: + print('Failed on:', fullpath) + raise count += 1 print(f"Successfully parsed {count} dmi files") + +def _usage(): + import sys + print(f"Usage:") + print(f" {sys.argv[0]} --test") + exit(1) + +def _main(): + import sys + if len(sys.argv) < 2: + return _usage() + + if sys.argv[1] == '--test': + return _self_test() + + return _usage() + +if __name__ == '__main__': + _main() diff --git a/tools/travis/run_server.sh b/tools/travis/run_server.sh deleted file mode 100755 index 08a6ef617ce..00000000000 --- a/tools/travis/run_server.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -set -euo pipefail -EXIT_CODE=0 - -tools/deploy.sh travis_test -mkdir travis_test/config - -#test config -cp tools/travis/travis_config.txt travis_test/config/config.txt - -cd travis_test -ln -s $HOME/libmariadb/libmariadb.so libmariadb.so -DreamDaemon tgstation.dmb -close -trusted -verbose -params "test-run&log-directory=travis" || EXIT_CODE=$? - -#We don't care if extools dies -if [ $EXIT_CODE != 134 ]; then - if [ $EXIT_CODE != 0 ]; then - exit $EXIT_CODE - fi -fi - -cd .. -cat travis_test/data/logs/travis/clean_run.lk