mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
i wonder if chmod permissions are retained after resetting a branch.
This commit is contained in:
@@ -2,3 +2,7 @@
|
||||
insert_final_newline = true
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
78
.travis.yml
78
.travis.yml
@@ -1,28 +1,34 @@
|
||||
language: generic
|
||||
sudo: false
|
||||
dist: xenial
|
||||
sudo: false
|
||||
|
||||
branches:
|
||||
except:
|
||||
- ___TGS3TempBranch
|
||||
- ___TGSTempBranch
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env:
|
||||
- BUILD_TOOLS=true
|
||||
name: "Build Tools"
|
||||
- name: "Run Linters"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- python3
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
cache:
|
||||
directories:
|
||||
- tgui/node_modules
|
||||
- env:
|
||||
- BUILD_TESTING=true
|
||||
- BUILD_TOOLS=false
|
||||
name: "Build All Maps"
|
||||
install:
|
||||
- tools/travis/install_build_tools.sh
|
||||
- tools/travis/install_dreamchecker.sh
|
||||
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 "./tgui/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:
|
||||
@@ -30,10 +36,15 @@ matrix:
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/BYOND
|
||||
- env:
|
||||
- BUILD_TESTING=false
|
||||
- BUILD_TOOLS=false
|
||||
name: "Build and Run Unit Tests"
|
||||
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:
|
||||
@@ -41,7 +52,6 @@ matrix:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libstdc++6:i386
|
||||
- libssl-dev:i386
|
||||
- gcc-multilib
|
||||
- g++-7
|
||||
- g++-7-multilib
|
||||
@@ -49,25 +59,19 @@ matrix:
|
||||
- libmariadbd-dev
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cargo
|
||||
- $HOME/BYOND
|
||||
- $HOME/MariaDB
|
||||
- $HOME/.rustup
|
||||
|
||||
install:
|
||||
- tools/travis/install_build_tools.sh
|
||||
- if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root -e 'CREATE DATABASE tg_travis;'; fi
|
||||
- if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root tg_travis < SQL/tgstation_schema.sql; fi
|
||||
- if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root -e 'CREATE DATABASE tg_travis_prefixed;'; fi
|
||||
- if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root tg_travis_prefixed < SQL/tgstation_schema_prefixed.sql; fi
|
||||
|
||||
before_script:
|
||||
- tools/travis/before_build_tools.sh
|
||||
- tools/travis/before_build_byond.sh
|
||||
|
||||
script:
|
||||
- tools/travis/check_filedirs.sh tgstation.dme
|
||||
- tools/travis/build_tools.sh || travis_terminate 1
|
||||
- tools/travis/build_dependencies.sh || travis_terminate 1
|
||||
- tools/travis/build_byond.sh
|
||||
|
||||
- $HOME/libmariadb
|
||||
install:
|
||||
- tools/travis/install_byond.sh
|
||||
- source $HOME/BYOND/byond/bin/byondsetup
|
||||
- tools/travis/install_libmariadb.sh
|
||||
- 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
|
||||
- tools/travis/build_bsql.sh
|
||||
script:
|
||||
- tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme || travis_terminate 1
|
||||
- tools/travis/run_server.sh
|
||||
|
||||
@@ -18,3 +18,9 @@ export BSQL_VERSION=v1.4.0.0
|
||||
|
||||
#node version
|
||||
export NODE_VERSION=8
|
||||
|
||||
# PHP version
|
||||
export PHP_VERSION=5.6
|
||||
|
||||
# SpacemanDMM git tag
|
||||
export SPACEMAN_DMM_VERSION=suite-1.0
|
||||
|
||||
@@ -4,16 +4,17 @@ import json
|
||||
if len(sys.argv) <= 1:
|
||||
exit(1)
|
||||
|
||||
files = filter(len, sys.argv[1].split('\n'))
|
||||
msg = []
|
||||
for file in files:
|
||||
status = 0
|
||||
|
||||
for file in sys.argv[1:]:
|
||||
with open(file, encoding="ISO-8859-1") as f:
|
||||
try:
|
||||
json.load(f)
|
||||
except ValueError as exception:
|
||||
msg.append("JSON synxtax error on file: {}".format(file))
|
||||
msg.append(str(exception))
|
||||
if msg:
|
||||
print("\n".join(msg))
|
||||
exit(1)
|
||||
exit(0)
|
||||
print("JSON error in {}".format(file))
|
||||
print(exception)
|
||||
status = 1
|
||||
else:
|
||||
print("Valid {}".format(file))
|
||||
|
||||
exit(status)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ "$BUILD_TOOLS" = true ]; then
|
||||
cd tgui && source ~/.nvm/nvm.sh && npm install && cd ..
|
||||
fi;
|
||||
|
||||
21
tools/travis/build_bsql.sh
Normal file
21
tools/travis/build_bsql.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
mkdir -p BSQL
|
||||
cd BSQL
|
||||
git init
|
||||
git remote add origin https://github.com/tgstation/BSQL
|
||||
git fetch --depth 1 origin $BSQL_VERSION
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
mkdir -p artifacts
|
||||
cd artifacts
|
||||
export CXX=g++-7
|
||||
# The -D will be unnecessary past BSQL v1.4.0.0
|
||||
cmake .. -DMARIA_LIBRARY=/usr/lib/i386-linux-gnu/libmariadb.so
|
||||
make
|
||||
|
||||
mkdir -p ~/.byond/bin
|
||||
ln -s $PWD/src/BSQL/libBSQL.so ../../libBSQL.so
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#nb: must be bash to support shopt globstar
|
||||
set -e
|
||||
shopt -s globstar
|
||||
|
||||
if [ "$BUILD_TOOLS" = false ]; then
|
||||
if grep -E '^\".+\" = \(.+\)' _maps/**/*.dmm; then
|
||||
echo "Non-TGM formatted map detected. Please convert it using Map Merger!"
|
||||
exit 1
|
||||
fi;
|
||||
if grep -P '^\ttag = \"icon' _maps/**/*.dmm; then
|
||||
echo "tag vars from icon state generation detected in maps, please remove them."
|
||||
exit 1
|
||||
fi;
|
||||
if grep 'step_[xy]' _maps/**/*.dmm; then
|
||||
echo "step_x/step_y variables detected in maps, please remove them."
|
||||
exit 1
|
||||
fi;
|
||||
if grep 'pixel_[xy] = 0' _maps/**/*.dmm; then
|
||||
echo "pixel_x/pixel_y = 0 variables detected in maps, please review to ensure they are not dirty varedits."
|
||||
fi;
|
||||
if grep -P '\td[1-2] =' _maps/**/*.dmm; then
|
||||
echo "d1/d2 cable variables detected in maps, please remove them."
|
||||
exit 1
|
||||
fi;
|
||||
if grep '^/area/.+[\{]' _maps/**/*.dmm; then
|
||||
echo "Vareditted /area path use detected in maps, please replace with proper paths."
|
||||
exit 1
|
||||
fi;
|
||||
if grep '\W\/turf\s*[,\){]' _maps/**/*.dmm; then
|
||||
echo "base /turf path use detected in maps, please replace with proper paths."
|
||||
exit 1
|
||||
fi;
|
||||
if grep '^/*var/' code/**/*.dm; then
|
||||
echo "Unmanaged global var use detected in code, please use the helpers."
|
||||
exit 1
|
||||
fi;
|
||||
if grep -i 'centcomm' code/**/*.dm; then
|
||||
echo "Misspelling(s) of CENTCOM detected in code, please remove the extra M(s)."
|
||||
exit 1
|
||||
fi;
|
||||
if grep -i 'centcomm' _maps/**/*.dmm; then
|
||||
echo "Misspelling(s) of CENTCOM detected in maps, please remove the extra M(s)."
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
source $HOME/BYOND/byond/bin/byondsetup
|
||||
if [ "$BUILD_TESTING" = true ]; then
|
||||
tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme
|
||||
else
|
||||
tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme
|
||||
|
||||
tools/deploy.sh travis_test
|
||||
mkdir travis_test/config
|
||||
|
||||
#test config
|
||||
cp tools/travis/travis_config.txt travis_test/config/config.txt
|
||||
|
||||
# get libmariadb, cache it so limmex doesn't get angery
|
||||
if [ -f $HOME/libmariadb ]; then
|
||||
#travis likes to interpret the cache command as it being a file for some reason
|
||||
rm $HOME/libmariadb
|
||||
fi
|
||||
mkdir -p $HOME/libmariadb
|
||||
if [ ! -f $HOME/libmariadb/libmariadb.so ]; then
|
||||
wget http://www.byond.com/download/db/mariadb_client-2.0.0-linux.tgz
|
||||
tar -xvf mariadb_client-2.0.0-linux.tgz
|
||||
mv mariadb_client-2.0.0-linux/libmariadb.so $HOME/libmariadb/libmariadb.so
|
||||
rm -rf mariadb_client-2.0.0-linux.tgz mariadb_client-2.0.0-linux
|
||||
fi
|
||||
|
||||
cd travis_test
|
||||
ln -s $HOME/libmariadb/libmariadb.so libmariadb.so
|
||||
DreamDaemon tgstation.dmb -close -trusted -verbose -params "test-run&log-directory=travis"
|
||||
cd ..
|
||||
cat travis_test/data/logs/travis/clean_run.lk
|
||||
|
||||
fi;
|
||||
fi;
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
#ensure the Dockerfile version matches the dependencies.sh version
|
||||
line=$(head -n 1 Dockerfile)
|
||||
if [[ $line != *"$BYOND_MAJOR.$BYOND_MINOR"* ]]; then
|
||||
echo "Dockerfile BYOND version in FROM command does not match dependencies.sh (Or it's not on line 1)!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu
|
||||
source ~/.profile
|
||||
|
||||
mkdir rust-g
|
||||
cd rust-g
|
||||
git init
|
||||
git remote add origin https://github.com/tgstation/rust-g
|
||||
git fetch --depth 1 origin $RUST_G_VERSION
|
||||
git checkout FETCH_HEAD
|
||||
cargo build --release
|
||||
cmp target/rust_g.dm ../code/__DEFINES/rust_g.dm
|
||||
|
||||
mkdir -p ~/.byond/bin
|
||||
ln -s $PWD/target/release/librust_g.so ~/.byond/bin/rust_g
|
||||
|
||||
mkdir -p ../BSQL/artifacts
|
||||
cd ../BSQL
|
||||
git init
|
||||
git remote add origin https://github.com/tgstation/BSQL
|
||||
git fetch --depth 1 origin $BSQL_VERSION
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
if [ -f "$HOME/MariaDB/libmariadb.so.2" ] && [ -f "$HOME/MariaDB/libmariadb.so" ] && [ -d "$HOME/MariaDB/include" ];
|
||||
then
|
||||
echo "Using cached MariaDB library."
|
||||
else
|
||||
echo "Setting up MariaDB."
|
||||
rm -rf "$HOME/MariaDB"
|
||||
mkdir -p "$HOME/MariaDB"
|
||||
mkdir -p "$HOME/MariaDB/include"
|
||||
cp /usr/lib/i386-linux-gnu/libmariadb.so.2 $HOME/MariaDB/
|
||||
ln -s $HOME/MariaDB/libmariadb.so.2 $HOME/MariaDB/libmariadb.so
|
||||
cp -r /usr/include/mariadb $HOME/MariaDB/include/
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
export CXX=g++-7
|
||||
cmake .. -DMARIA_INCLUDE_DIR=$HOME/MariaDB/include
|
||||
make
|
||||
mv src/BSQL/libBSQL.so ../../
|
||||
fi
|
||||
7
tools/travis/build_tgui.sh
Normal file
7
tools/travis/build_tgui.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
cd tgui
|
||||
source ~/.nvm/nvm.sh
|
||||
npm ci
|
||||
node node_modules/gulp/bin/gulp.js --min
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#must also be bash for the md5sum commands
|
||||
set -e
|
||||
|
||||
if [ "$BUILD_TOOLS" = true ];
|
||||
then
|
||||
md5sum -c - <<< "49bc6b1b9ed56c83cceb6674bd97cb34 *html/changelogs/example.yml";
|
||||
(cd tgui && source ~/.nvm/nvm.sh && npm ci && node node_modules/gulp/bin/gulp.js --min)
|
||||
phpenv global 5.6
|
||||
php -l tools/WebhookProcessor/github_webhook_processor.php;
|
||||
php -l tools/TGUICompiler.php;
|
||||
echo "Checking for JSON errors";
|
||||
find . -name "*.json" -not -path "./tgui/node_modules/*" | xargs -0 python3 ./tools/json_verifier.py;
|
||||
python3 tools/ss13_genchangelog.py html/changelog.html html/changelogs;
|
||||
fi;
|
||||
5
tools/travis/check_changelogs.sh
Normal file
5
tools/travis/check_changelogs.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
md5sum -c - <<< "49bc6b1b9ed56c83cceb6674bd97cb34 *html/changelogs/example.yml"
|
||||
python3 tools/ss13_genchangelog.py html/changelog.html html/changelogs
|
||||
49
tools/travis/check_grep.sh
Normal file
49
tools/travis/check_grep.sh
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
#nb: must be bash to support shopt globstar
|
||||
shopt -s globstar
|
||||
|
||||
st=0
|
||||
|
||||
if grep -El '^\".+\" = \(.+\)' _maps/**/*.dmm; then
|
||||
echo "Non-TGM formatted map detected. Please convert it using Map Merger!"
|
||||
st=1
|
||||
fi;
|
||||
if grep -P '^\ttag = \"icon' _maps/**/*.dmm; then
|
||||
echo "tag vars from icon state generation detected in maps, please remove them."
|
||||
st=1
|
||||
fi;
|
||||
if grep 'step_[xy]' _maps/**/*.dmm; then
|
||||
echo "step_x/step_y variables detected in maps, please remove them."
|
||||
st=1
|
||||
fi;
|
||||
if grep 'pixel_[xy] = 0' _maps/**/*.dmm; then
|
||||
echo "pixel_x/pixel_y = 0 variables detected in maps, please review to ensure they are not dirty varedits."
|
||||
fi;
|
||||
if grep -P '\td[1-2] =' _maps/**/*.dmm; then
|
||||
echo "d1/d2 cable variables detected in maps, please remove them."
|
||||
st=1
|
||||
fi;
|
||||
if grep '^/area/.+[\{]' _maps/**/*.dmm; then
|
||||
echo "Vareditted /area path use detected in maps, please replace with proper paths."
|
||||
st=1
|
||||
fi;
|
||||
if grep '\W\/turf\s*[,\){]' _maps/**/*.dmm; then
|
||||
echo "base /turf path use detected in maps, please replace with proper paths."
|
||||
st=1
|
||||
fi;
|
||||
if grep '^/*var/' code/**/*.dm; then
|
||||
echo "Unmanaged global var use detected in code, please use the helpers."
|
||||
st=1
|
||||
fi;
|
||||
if grep -i 'centcomm' code/**/*.dm; then
|
||||
echo "Misspelling(s) of CENTCOM detected in code, please remove the extra M(s)."
|
||||
st=1
|
||||
fi;
|
||||
if grep -i 'centcomm' _maps/**/*.dmm; then
|
||||
echo "Misspelling(s) of CENTCOM detected in maps, please remove the extra M(s)."
|
||||
st=1
|
||||
fi;
|
||||
|
||||
exit $st
|
||||
@@ -1,11 +1,12 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -euo pipefail
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
if [ "$BUILD_TOOLS" = true ]; then
|
||||
source ~/.nvm/nvm.sh
|
||||
nvm install $NODE_VERSION
|
||||
pip3 install --user PyYaml
|
||||
pip3 install --user beautifulsoup4
|
||||
fi;
|
||||
source ~/.nvm/nvm.sh
|
||||
nvm install $NODE_VERSION
|
||||
|
||||
pip3 install --user PyYaml
|
||||
pip3 install --user beautifulsoup4
|
||||
|
||||
phpenv global $PHP_VERSION
|
||||
|
||||
12
tools/travis/before_build_byond.sh → tools/travis/install_byond.sh
Executable file → Normal file
12
tools/travis/before_build_byond.sh → tools/travis/install_byond.sh
Executable file → Normal file
@@ -1,15 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
#If this is the build tools step, we do not bother to install/build byond
|
||||
if [ "$BUILD_TOOLS" = true ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Combining maps for building"
|
||||
if [ $BUILD_TESTING = true ]; then
|
||||
python tools/travis/template_dm_generator.py
|
||||
fi
|
||||
set -euo pipefail
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
8
tools/travis/install_dreamchecker.sh
Normal file
8
tools/travis/install_dreamchecker.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
wget -O ~/dreamchecker "https://github.com/SpaceManiac/SpacemanDMM/releases/download/$SPACEMAN_DMM_VERSION/dreamchecker"
|
||||
chmod +x ~/dreamchecker
|
||||
~/dreamchecker --version
|
||||
15
tools/travis/install_libmariadb.sh
Normal file
15
tools/travis/install_libmariadb.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# get libmariadb, cache it so limmex doesn't get angery
|
||||
if [ -f $HOME/libmariadb ]; then
|
||||
#travis likes to interpret the cache command as it being a file for some reason
|
||||
rm $HOME/libmariadb
|
||||
fi
|
||||
mkdir -p $HOME/libmariadb
|
||||
if [ ! -f $HOME/libmariadb/libmariadb.so ]; then
|
||||
wget http://www.byond.com/download/db/mariadb_client-2.0.0-linux.tgz
|
||||
tar -xvf mariadb_client-2.0.0-linux.tgz
|
||||
mv mariadb_client-2.0.0-linux/libmariadb.so $HOME/libmariadb/libmariadb.so
|
||||
rm -rf mariadb_client-2.0.0-linux.tgz mariadb_client-2.0.0-linux
|
||||
fi
|
||||
8
tools/travis/install_rust_g.sh
Normal file
8
tools/travis/install_rust_g.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
source dependencies.sh
|
||||
|
||||
mkdir -p ~/.byond/bin
|
||||
wget -O ~/.byond/bin/rust_g "https://github.com/tgstation/rust-g/releases/download/$RUST_G_VERSION/librust_g.so"
|
||||
chmod +x ~/.byond/bin/rust_g
|
||||
14
tools/travis/run_server.sh
Normal file
14
tools/travis/run_server.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
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"
|
||||
cd ..
|
||||
cat travis_test/data/logs/travis/clean_run.lk
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
folders = ["_maps/RandomRuins", "_maps/RandomZLevels", "_maps/shuttles",
|
||||
|
||||
Reference in New Issue
Block a user