blob: d22495f7501177438046caea9ec297d27512079e (
plain)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
version: 2
jobs:
codestyle_and_sql:
docker:
- image: trinitycore/circle-ci:master-buildpacks-focal
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
- image: circleci/mysql:8
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_ROOT_PASSWORD: ''
MYSQL_DATABASE: test_mysql
steps:
- run:
name: Checkout
command: |
/scripts/checkout.sh
- run:
name: Codestyle checks
command: |
chmod +x contrib/check_codestyle.sh
./contrib/check_codestyle.sh
- run:
name: SQL checks
command: |
chmod +x contrib/check_updates.sh
dockerize -wait tcp://127.0.0.1:3306 -timeout 120s
mysql -h 127.0.0.1 -uroot < sql/create/create_mysql.sql
mysql -h 127.0.0.1 -uroot auth < sql/base/auth_database.sql
./contrib/check_updates.sh auth master auth 127.0.0.1
mysql -h 127.0.0.1 -uroot characters < sql/base/characters_database.sql
./contrib/check_updates.sh characters master characters 127.0.0.1
echo "Importing world database structure"
mysql -h 127.0.0.1 -uroot world < sql/base/dev/world_database.sql
echo "Importing hotfixes database structure"
mysql -h 127.0.0.1 -uroot hotfixes < sql/base/dev/hotfixes_database.sql
echo "Importing world database updates"
cat sql/updates/world/master/*.sql | mysql -h 127.0.0.1 -uroot world
echo "Importing hotfixes database updates"
cat sql/updates/hotfixes/master/*.sql | mysql -h 127.0.0.1 -uroot hotfixes
pch:
docker:
- image: trinitycore/circle-ci:master-buildpacks-focal
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
steps:
- run:
name: Checkout
command: |
/scripts/checkout.sh
- run:
name: Setup
command: |
mkdir bin
cd bin
if [ "$DOCKERHUB_PUSH_IMAGES" == "TRUE" ]; then
cmake ../ -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSCRIPTS=static -DSERVERS=1 -DNOJEM=0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1
else
cmake ../ -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSCRIPTS=static -DSERVERS=1 -DNOJEM=0 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1
fi
cd ..
- run:
name: Build
command: |
cd bin
make -j 4 -k && make install
- run:
name: Unit tests
command: |
cd bin
make test
- run:
name: Check executables
command: |
cd bin/check_install/bin
./bnetserver --version
./worldserver --version
- setup_remote_docker:
version: 19.03.13
- run:
name: Create docker images
command: |
cd bin/check_install/bin
cp -r ../../../contrib/Docker/* .
cp -r ../../../sql ./sql
image_prefix=$(echo $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME | tr '[:upper:]' '[:lower:]')
echo $image_prefix
docker build --file Dockerfile --force-rm --tag $image_prefix:$CIRCLE_SHA1 --tag $image_prefix:$(echo $CIRCLE_BRANCH | tr '/' '-' | tr '[:upper:]' '[:lower:]') .
docker save $image_prefix | gzip > ../../../docker.tar.gz
if [ "$DOCKERHUB_PUSH_IMAGES" == "TRUE" ]; then
if [ "$CIRCLE_BRANCH" == "3.3.5" ] || [ "$CIRCLE_BRANCH" == "master" ]; then
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
echo "Pushing docker image to dockerhub"
docker push $image_prefix
fi
fi
- store_artifacts:
path: docker.tar.gz
nopch:
docker:
- image: trinitycore/circle-ci:master-buildpacks-focal
auth:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
steps:
- run:
name: Requirements
command: |
sudo mkdir -p /root/.ccache
sudo chown -Rv circleci:circleci /root
- run:
name: Checkout
command: |
/scripts/checkout.sh
- restore_cache:
keys:
- master-nopch-{{ .Branch }}-{{ .Revision }}
- master-nopch-{{ .Branch }}
- master-nopch-master
- run:
name: Setup
command: |
export CCACHE_MAXSIZE="1G"
export CC="ccache clang"
export CXX="ccache clang++"
export CCACHE_CPP2=yes
export USE_CCACHE=1
export PATH=/usr/lib/ccache:$PATH
ccache -z
ccache -s
git config user.email "circleci@build.bot" && git config user.name "Circle CI"
$CXX --version
mkdir bin
cd bin
cmake ../ -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=0 -DUSE_SCRIPTPCH=0 -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_INSTALL_PREFIX=check_install
cd ..
- run:
name: Build
command: |
cd bin
make -j 4 -k && make install
ccache -s
cd check_install/bin
./bnetserver --version
./worldserver --version
- save_cache:
key: master-nopch-{{ .Branch }}-{{ .Revision }}
paths:
- /home/circleci/.ccache
workflows:
version: 2
build_all:
jobs:
- codestyle_and_sql
- pch
- nopch
|