2019-10-08 09:14:46 +00:00
image : registry.gitlab.com/veloren/veloren-docker-ci:latest
2019-04-18 22:23:11 +00:00
variables :
2019-10-09 22:42:39 +00:00
GIT_STRATEGY : fetch
GIT_DEPTH : 3
GIT_CLEAN_FLAGS : -f
2019-10-08 08:13:40 +00:00
stages :
- optional-builds
- check-compile
2020-02-25 23:10:00 +00:00
- build-post
- publish
2019-10-08 08:13:40 +00:00
2019-04-18 22:23:11 +00:00
before_script :
2019-10-08 08:13:40 +00:00
- source $HOME/.cargo/env
2019-11-19 19:26:27 +00:00
- df -h /
2019-10-08 08:13:40 +00:00
- free -h
- cargo --version
2019-10-08 17:03:00 +00:00
- export DISABLE_GIT_LFS_CHECK=true
2020-01-23 15:05:48 +00:00
- export VELOREN_ASSETS="$(pwd)/assets"
- echo "VELOREN_ASSETS=$VELOREN_ASSETS"
2019-11-18 11:11:54 +00:00
- rm -r target || echo "target doesnt exist, which is fine"
- ln -s /dockercache/veloren/target target
2019-10-08 08:13:40 +00:00
# -- optional build
2019-09-07 16:35:10 +00:00
.optional-release : &optional-release
2019-10-08 08:13:40 +00:00
stage : optional-builds
tags :
- veloren-docker
except :
- schedules
when : manual
optional-release:linux :
<< : *optional-release
script :
2020-01-23 15:05:48 +00:00
- cargo build --verbose --release
2019-10-08 17:03:00 +00:00
- cp target/release/veloren-server-cli $CI_PROJECT_DIR
- cp target/release/veloren-voxygen $CI_PROJECT_DIR
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-server-cli
- strip --strip-all veloren-voxygen
2019-10-08 17:03:00 +00:00
artifacts :
paths :
- veloren-server-cli
- veloren-voxygen
- assets/
2019-10-17 13:06:20 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in : 1 week
2019-10-08 08:13:40 +00:00
optional-release:windows :
<< : *optional-release
script :
2020-01-23 15:05:48 +00:00
- cargo build --verbose --target=x86_64-pc-windows-gnu --release
2019-10-08 17:03:00 +00:00
- cp target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe $CI_PROJECT_DIR
- cp target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe $CI_PROJECT_DIR
artifacts :
paths :
- veloren-server-cli.exe
- veloren-voxygen.exe
- assets/
2019-10-17 13:06:20 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in : 1 week
2019-10-08 08:13:40 +00:00
# --
# -- check
check :
stage : check-compile
tags :
- veloren-docker
script :
2020-03-10 22:31:26 +00:00
- RUSTFLAGS="-D warnings" cargo check --locked
2019-10-08 08:13:40 +00:00
code-quality :
stage : check-compile
tags :
- veloren-docker
script :
- cargo clippy -- --warn clippy::all
- cargo fmt --all -- --check
2019-10-28 18:18:02 +00:00
security :
stage : check-compile
2019-10-28 18:23:27 +00:00
allow_failure : true
2019-10-28 18:18:02 +00:00
tags :
- veloren-docker
script :
2019-10-28 18:23:27 +00:00
- cargo audit
2019-10-28 18:18:02 +00:00
2019-10-08 08:13:40 +00:00
# --
2020-02-25 23:10:00 +00:00
# -- build-post
2019-04-27 15:38:28 +00:00
2019-04-18 22:23:11 +00:00
unittests :
2020-02-25 23:10:00 +00:00
stage : build-post
2019-10-08 08:13:40 +00:00
when : delayed
start_in : 5 seconds
tags :
- veloren-docker
script :
2019-11-18 11:11:54 +00:00
- echo "Workaround, cargo tests fails due some rust files are already deleted, so we just stack cargo test. if its the os error, it wont appear on them all, if its a real error, it will retry and then fail"
2020-02-27 12:43:43 +00:00
- cargo test || ( sleep 10 && cargo test ) || ( sleep 10 && cargo test ) || cargo test || cargo test || cargo test || cargo test || cargo test || cargo test || cargo test || cargo test || cargo test || cargo test
2019-10-08 08:13:40 +00:00
2019-11-19 21:31:51 +00:00
coverage :
2020-02-25 23:10:00 +00:00
stage : build-post
2019-11-19 21:31:51 +00:00
when : delayed
start_in : 5 seconds
tags :
- veloren-docker
script :
2020-02-15 20:57:52 +00:00
- echo "Workaround, tarpaulin fails due some rust files are already deleted, so we just stack tarpaulin. if its the os error, it wont appear on them all, if its a real error, it will retry and then fail"
2020-02-27 12:43:43 +00:00
- cargo tarpaulin -v || ( sleep 10 && cargo tarpaulin -v ) || ( sleep 10 && cargo tarpaulin -v ) || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v || cargo tarpaulin -v
2019-11-19 21:31:51 +00:00
2019-10-08 08:13:40 +00:00
benchmarks :
2020-02-25 23:10:00 +00:00
stage : build-post
2019-10-08 08:13:40 +00:00
when : delayed
start_in : 5 seconds
tags :
- veloren-docker
script :
2020-01-23 15:05:48 +00:00
- unset DISABLE_GIT_LFS_CHECK
2019-10-08 08:13:40 +00:00
- cargo bench
2020-01-26 19:29:46 +00:00
localization-status :
variables :
GIT_DEPTH : 0
2020-02-25 23:10:00 +00:00
stage : build-post
2020-01-26 19:29:46 +00:00
when : delayed
start_in : 5 seconds
allow_failure : true
tags :
- veloren-docker
script :
- cargo test -q test_all_localizations -- --nocapture --ignored
2019-10-08 08:13:40 +00:00
linux :
2020-02-25 23:10:00 +00:00
stage : build-post
2019-10-08 08:13:40 +00:00
when : delayed
start_in : 5 seconds
only :
refs :
- /^r[0-9]+\.[0-9]+\.[0-9]+/
2020-02-25 23:10:00 +00:00
- /^v[0-9]+\.[0-9]+/
2019-10-08 08:13:40 +00:00
- /^master$/
tags :
- veloren-docker
script :
2020-01-23 15:05:48 +00:00
- cargo build --release
2019-10-08 17:03:00 +00:00
- cp -r target/release/veloren-server-cli $CI_PROJECT_DIR
- cp -r target/release/veloren-voxygen $CI_PROJECT_DIR
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-server-cli
- strip --strip-all veloren-voxygen
2019-10-08 17:03:00 +00:00
artifacts :
paths :
- veloren-server-cli
- veloren-voxygen
- assets/
2019-10-29 22:48:15 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in : 1 week
2019-10-08 08:13:40 +00:00
windows :
2020-02-25 23:10:00 +00:00
stage : build-post
2019-10-08 08:13:40 +00:00
when : delayed
start_in : 5 seconds
only :
refs :
- /^r[0-9]+\.[0-9]+\.[0-9]+/
2020-02-25 23:10:00 +00:00
- /^v[0-9]+\.[0-9]+/
2019-10-08 08:13:40 +00:00
- /^master$/
tags :
- veloren-docker
script :
2020-01-23 15:05:48 +00:00
- cargo build --target=x86_64-pc-windows-gnu --release
2019-10-08 17:03:00 +00:00
- cp -r target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe $CI_PROJECT_DIR
- cp -r target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe $CI_PROJECT_DIR
artifacts :
paths :
- veloren-server-cli.exe
- veloren-voxygen.exe
- assets/
2019-10-29 22:48:15 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in : 1 week
2020-02-26 16:10:47 +00:00
macos :
stage : build-post
when : delayed
start_in : 5 seconds
only :
refs :
- /^r[0-9]+\.[0-9]+\.[0-9]+/
- /^v[0-9]+\.[0-9]+/
- /^master$/
tags :
- veloren-docker
script :
- PATH="/dockercache/osxcross/target/bin:$PATH" COREAUDIO_SDK_PATH=/dockercache/osxcross/target/SDK/MacOSX10.13.sdk CC=o64-clang CXX=o64-clang++ cargo build --target x86_64-apple-darwin --release
- cp -r target/x86_64-apple-darwin/release/veloren-server-cli $CI_PROJECT_DIR
- cp -r target/x86_64-apple-darwin/release/veloren-voxygen $CI_PROJECT_DIR
artifacts :
paths :
- veloren-server-cli
- veloren-voxygen
- assets/
- LICENSE
expire_in : 1 week
2019-12-01 22:12:26 +00:00
# --
2020-02-25 23:10:00 +00:00
# -- publish
docker :
stage : publish
when : delayed
start_in : 5 seconds
image :
name : gcr.io/kaniko-project/executor:debug
entrypoint : [ "" ]
dependencies :
- linux
before_script :
- ls "$CI_PROJECT_DIR/server-cli/"
only :
refs :
- /^r[0-9]+\.[0-9]+\.[0-9]+/
- /^v[0-9]+\.[0-9]+/
- /^master$/
tags :
- veloren-docker
script :
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/server-cli/Dockerfile --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-server"
# --