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 cmake ../ -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -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 -DBUILD_TESTING=1 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 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 -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