mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 09:17:36 +01:00
163 lines
6.2 KiB
YAML
163 lines
6.2 KiB
YAML
version: 2
|
|
jobs:
|
|
codestyle_and_sql:
|
|
docker:
|
|
- image: trinitycore/circle-ci:master-buildpacks-hirsute
|
|
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-hirsute
|
|
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-hirsute
|
|
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
|
|
export CCACHE_DIR=$HOME/.ccache
|
|
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
|