stages: - build - test - release cache: &global_cache key: files: - Cargo.lock - Cargo.toml paths: - target/debug/deps - target/debug/build - target/release/deps - target/release/build policy: pull-push variables: RUSTFLAGS: "-Dwarnings" build: image: registry.karaolidis.com/karaolidis/veil/rust stage: build cache: <<: *global_cache script: - cargo build test: image: registry.karaolidis.com/karaolidis/veil/rust stage: test cache: <<: *global_cache script: - cargo test lint: image: registry.karaolidis.com/karaolidis/veil/rust stage: test cache: <<: *global_cache script: - cargo fmt --all -- --check - cargo clippy --all-targets --all-features depcheck: image: registry.karaolidis.com/karaolidis/veil/rust stage: test cache: <<: *global_cache script: - cargo outdated - cargo udeps --all-targets sast: stage: test include: - template: Security/SAST.gitlab-ci.yml build-release: image: registry.karaolidis.com/karaolidis/veil/rust stage: release cache: <<: *global_cache script: - cargo build --release after_script: - echo "JOB_ID=$CI_JOB_ID" >> job.env artifacts: paths: - target/release/veil expire_in: 1d reports: dotenv: job.env only: - tags release: image: registry.gitlab.com/gitlab-org/release-cli stage: release needs: - job: build-release artifacts: true script: - echo "Create Release $CI_COMMIT_TAG" release: name: Release $CI_COMMIT_TAG tag_name: $CI_COMMIT_TAG description: Release $CI_COMMIT_SHA ref: $CI_COMMIT_TAG assets: links: - name: veil url: https://gitlab.com/karaolidis/veil/-/jobs/$CI_JOB_ID/artifacts/raw/target/release/veil link_type: other only: - tags