# .gitlab-ci.yml # # cumulus # # pipelines can be triggered manually in the web stages: - test - build variables: GIT_STRATEGY: fetch GIT_DEPTH: 3 CARGO_HOME: "/ci-cache/${CI_PROJECT_NAME}/cargo/${CI_JOB_NAME}" SCCACHE_DIR: "/ci-cache/${CI_PROJECT_NAME}/sccache" CARGO_INCREMENTAL: 0 CI_SERVER_NAME: "GitLab CI" .docker-env: &docker-env image: parity/rust-builder:latest before_script: - cargo -vV - rustc -vV - rustup show - cargo --version - sccache -s only: - master - /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 - schedules - web - /^[0-9]+$/ # PRs dependencies: [] interruptible: true retry: max: 2 when: - runner_system_failure - unknown_failure - api_failure tags: - linux-docker #### stage: test cargo-audit: stage: test <<: *docker-env except: - /^[0-9]+$/ script: - cargo audit allow_failure: true test-linux-stable: stage: test <<: *docker-env variables: # Enable debug assertions since we are running optimized builds for testing # but still want to have debug assertions. RUSTFLAGS: -Cdebug-assertions=y script: - time cargo test --all --release --locked | tee output.log - time cargo test --release -- --ignored integration_test | tee -a output.log - sccache -s after_script: - echo "___Collecting warnings for check_warnings job___" - awk '/^warning:/,/^$/ { print }' output.log > ${CI_COMMIT_SHORT_SHA}_warnings.log artifacts: name: $CI_COMMIT_SHORT_SHA expire_in: 24 hrs paths: - ${CI_COMMIT_SHORT_SHA}_warnings.log #### stage: build check_warnings: stage: build <<: *docker-env variables: GIT_STRATEGY: none dependencies: - test-linux-stable script: - if [ -s ${CI_COMMIT_SHORT_SHA}_warnings.log ]; then cat ${CI_COMMIT_SHORT_SHA}_warnings.log; exit 1; else echo "___No warnings___"; fi allow_failure: true