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 - 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: - VELOREN_ASSETS=assets 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: - VELOREN_ASSETS=assets 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: - sed -i '/cargo-features/d' Cargo.toml - sed -i '/profile.dev.overrides/,+1d' Cargo.toml - cargo tarpaulin -v allow_failure: true benchmarks: stage: post when: delayed start_in: 5 seconds tags: - veloren-docker script: - cargo bench allow_failure: true 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: - VELOREN_ASSETS=assets 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: - VELOREN_ASSETS=assets 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 # --