image: registry.gitlab.com/veloren/veloren-docker-ci:latest variables: GIT_STRATEGY: fetch GIT_DEPTH: 3 GIT_CLEAN_FLAGS: -f stages: - optional-builds - check-compile - post before_script: - source $HOME/.cargo/env - df -h / - free -h - cargo --version - export DISABLE_GIT_LFS_CHECK=true - export VELOREN_ASSETS="$(pwd)/assets" - echo "VELOREN_ASSETS=$VELOREN_ASSETS" - rm -r target || echo "target doesnt exist, which is fine" - ln -s /dockercache/veloren/target target # -- optional build .optional-release: &optional-release stage: optional-builds tags: - veloren-docker except: - schedules when: manual optional-release:linux: <<: *optional-release script: - cargo build --verbose --release - cp target/release/veloren-server-cli $CI_PROJECT_DIR - cp target/release/veloren-voxygen $CI_PROJECT_DIR - strip --strip-all veloren-server-cli - strip --strip-all veloren-voxygen artifacts: paths: - veloren-server-cli - veloren-voxygen - assets/ - LICENSE expire_in: 1 week optional-release:windows: <<: *optional-release script: - cargo build --verbose --target=x86_64-pc-windows-gnu --release - 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/ - LICENSE expire_in: 1 week # -- # -- check check: stage: check-compile tags: - veloren-docker script: - RUSTFLAGS="-D warnings" cargo check code-quality: stage: check-compile tags: - veloren-docker script: - cargo clippy -- --warn clippy::all - cargo fmt --all -- --check security: stage: check-compile allow_failure: true tags: - veloren-docker script: - cargo audit # -- # -- post build unittests: stage: post when: delayed start_in: 5 seconds tags: - veloren-docker script: - 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" - cargo test || cargo test || cargo test || cargo test coverage: stage: post when: delayed start_in: 5 seconds tags: - veloren-docker script: - 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" - 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 || cargo tarpaulin -v benchmarks: stage: post when: delayed start_in: 5 seconds tags: - veloren-docker script: - unset DISABLE_GIT_LFS_CHECK - cargo bench localization-status: variables: GIT_DEPTH: 0 stage: post when: delayed start_in: 5 seconds allow_failure: true tags: - veloren-docker script: - cargo test -q test_all_localizations -- --nocapture --ignored linux: stage: post when: delayed start_in: 5 seconds only: refs: - /^r[0-9]+\.[0-9]+\.[0-9]+/ - /^v[0-9]+\.[0-9]+\.[0-9]+/ - /^master$/ tags: - veloren-docker script: - cargo build --release - cp -r target/release/veloren-server-cli $CI_PROJECT_DIR - cp -r target/release/veloren-voxygen $CI_PROJECT_DIR - strip --strip-all veloren-server-cli - strip --strip-all veloren-voxygen artifacts: paths: - veloren-server-cli - veloren-voxygen - assets/ - LICENSE expire_in: 1 week windows: stage: post when: delayed start_in: 5 seconds only: refs: - /^r[0-9]+\.[0-9]+\.[0-9]+/ - /^v[0-9]+\.[0-9]+\.[0-9]+/ - /^master$/ tags: - veloren-docker script: - cargo build --target=x86_64-pc-windows-gnu --release - 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/ - LICENSE expire_in: 1 week # --