-
Notifications
You must be signed in to change notification settings - Fork 4
/
.travis.yml
100 lines (91 loc) · 3.4 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
language: generic
dist: xenial
sudo: false
env:
global:
BYOND_MAJOR="513"
BYOND_MINOR="1517"
MACRO_COUNT=0
GENDER_COUNT=6
TO_WORLD_COUNT=206
FLYWAY_BUILD="5.2.4"
NODE_VERSION=10
RUST_G_VERSION="0.4.2+a2"
PATH=/opt/python/3.7.1/bin:$PATH
SPACEMAN_DMM_VERSION="suite-1.6"
matrix:
- USE_MAP=aurora
- USE_MAP=runtime
- USE_MAP=exodus
cache:
directories:
- $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}
- $HOME/flyway-${FLYWAY_BUILD}
- vueui/dist
- $HOME/rust_g-${RUST_G_VERSION}
addons:
mariadb: '10.3'
apt:
packages:
- libc6-i386
- libgcc1:i386
- libstdc++6:i386
- libssl-dev:i386
- pkg-config:i386
- gcc-multilib
node_js:
- "10"
install:
- mysql -e 'CREATE DATABASE ss13_test;'
- chmod +x ./scripts/install-byond.sh
- ./scripts/install-byond.sh
- chmod +x ./scripts/install-flyway.sh
- ./scripts/install-flyway.sh
- export LD_LIBRARY_PATH=./:$HOME/rust_g-$RUST_G_VERSION:$LD_LIBRARY_PATH
- shopt -s globstar
- chmod +x ./scripts/rust_g.sh
- ./scripts/rust_g.sh
stages:
- code check
- test
script:
- $HOME/flyway-${FLYWAY_BUILD}/flyway migrate -user=root -password= -url=jdbc:mariadb://localhost:3306/ss13_test
- source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup
- cp config/example/* config/
- scripts/dm.sh -DUNIT_TEST -M$USE_MAP aurorastation.dme
- grep "0 warnings" build_log.txt
- DreamDaemon aurorastation.dmb -invisible -trusted -core 2>&1 | tee log.txt
- grep "All Unit Tests Passed" log.txt
- (! grep "runtime error:" log.txt)
jobs:
include:
- stage: code check
install:
- pip install -U pytest
- pip install --user -r ./tools/requirements.txt
- pip install --user PyYaml -q
- pip install --user beautifulsoup4 -q
- chmod +x ./vueui/install
- ./vueui/install
- chmod +x ./scripts/install-spaceman-dmm.sh
- ./scripts/install-spaceman-dmm.sh dreamchecker
- chmod +x ./scripts/rust_g.sh
- ./scripts/rust_g.sh
script:
- (! grep 'step_[xy]' maps/**/*.dmm)
- (! find nano/templates/ -type f -exec md5sum {} + | sort | uniq -D -w 32 | grep nano)
- (! grep -E "<\s*span\s+class\s*=\s*('[^'>]+|[^'>]+')\s*>" **/*.dm)
- (! grep -r --include=\*.dm '#define UIDEBUG' ./)
- (! grep -r --include=\*.dm 'to_chat(.*,\s*link(' ./)
- (cd vueui && (npm run lint | tee lint.log))
- grep "No lint errors found!" vueui/lint.log
- (cd vueui && npm run build)
- (num=`grep -E '\\\\(red|blue|green|black|b|i[^mc])' **/*.dm | wc -l`; echo "$num escapes (expecting ${MACRO_COUNT} or less)"; [ $num -eq ${MACRO_COUNT} ])
- (num=`grep -EIr '\\\\(he|him|his|she|hers|He|His|She|himself|herself)\b' code | wc -l`; echo "$num gender-based escapes (expecting ${GENDER_COUNT} or less)"; [ $num -eq ${GENDER_COUNT} ])
- (num=`grep -r --include \*.dm -oh to_world\( . | wc -w`; echo "$num to_worlds (expecting ${TO_WORLD_COUNT})"; [ $num -eq ${TO_WORLD_COUNT} ])
- awk -f tools/indentation.awk **/*.dm
- md5sum -c - <<< "6a5ae087fe5bfa66e52e508655e57120 *html/changelogs/example.yml"
- python3 tools/TagMatcher/tag-matcher.py ../..
- python3 tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs --dry-run
- python3 tools/mapmerge2/travis_mapcheck.py
- ~/dreamchecker