include:
- local: .gitlab/rules.yml
- local: .gitlab/artifacts.yml
- local: .gitlab/cargo.yml
stages:
- prep
- build
- test
- advice
- publish
.rust_minimum_mindeps:
image: "rust:1.63"
variables:
CARGO_UPDATE_POLICY: newest
GIT_CLONE_PATH: $CI_BUILDS_DIR/rust
.rust_minimum_mindeps_features:
extends: .rust_minimum_mindeps
image: "rust:1.64"
.rust_minimum:
image: "rust:1.63"
variables:
CARGO_UPDATE_POLICY: newest
GIT_CLONE_PATH: $CI_BUILDS_DIR/rust
.rust_stable:
image: "rust:latest"
variables:
CARGO_UPDATE_POLICY: newest
GIT_CLONE_PATH: $CI_BUILDS_DIR/rust
.rust_nightly:
extends: .rust_stable
image: "rustlang/rust:nightly"
.cargo_no_features:
variables:
CARGO_FEATURES: --no-default-features
.cargo_all_features:
variables:
CARGO_FEATURES: --features client_api
cache-newest:prep:
extends:
- .rust_stable
- .cargo_fetch_job
- .cargo_build_tags
- .cargo_fetch_artifacts
- .run_automatically
cache-mindeps:prep:
extends:
- .rust_nightly
- .cargo_fetch_job
- .cargo_build_tags
- .cargo_fetch_artifacts
- .run_automatically
variables:
GENERATE_LOCKFILE_ARGS: "-Z minimal-versions"
CARGO_UPDATE_POLICY: mindeps
CARGO_FEATURES: --features minimal_versions
clippy:build:
extends:
- .rust_stable
- .cargo_no_features
- .cargo_clippy_job
- .cargo_build_tags
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
clippy-features:build:
extends:
- .rust_stable
- .cargo_all_features
- .cargo_clippy_job
- .cargo_build_tags
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
.cargo_audit_ignore:
variables:
CARGO_AUDIT_ARGS: --ignore RUSTSEC-2022-0078 --ignore RUSTSEC-2023-0015
semver-checks:prep:
extends:
- .rust_stable
- .cargo_semver_checks_job
- .cargo_build_tags
- .run_automatically
variables:
CARGO_FEATURES: "--only-explicit-features --features _nohooks"
CHANGELOG_PATH: CHANGELOG.md
semver-checks:features:prep:
extends:
- .rust_stable
- .cargo_semver_checks_job
- .cargo_build_tags
- .run_automatically
variables:
CARGO_FEATURES: "--only-explicit-features --features _nohooks --features client_api"
CHANGELOG_PATH: CHANGELOG.md
audit-mindeps:build:
extends:
- .rust_minimum_mindeps
- .cargo_audit_job
- .cargo_build_tags
- .run_automatically
- .cargo_audit_ignore
stage: advice
dependencies:
- cache-mindeps:prep
needs:
- cache-mindeps:prep
variables:
CARGO_UPDATE_POLICY: mindeps
RUSTGITLAB_CI_NO_MR: "true"
audit-newest:build:
extends:
- .rust_stable
- .cargo_audit_job
- .cargo_build_tags
- .run_automatically
- .cargo_audit_ignore
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
minimum:build:
extends:
- .rust_minimum
- .cargo_no_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
minimum:test:
extends:
- .rust_minimum
- .cargo_no_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- minimum:build
needs:
- minimum:build
stable:build:
extends:
- .rust_stable
- .cargo_no_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
stable:test:
extends:
- .rust_stable
- .cargo_no_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- stable:build
needs:
- stable:build
nightly:build:
extends:
- .rust_nightly
- .cargo_no_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
nightly:test:
extends:
- .rust_nightly
- .cargo_no_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- nightly:build
needs:
- nightly:build
mindeps:build:
extends:
- .rust_minimum_mindeps
- .cargo_no_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-mindeps:prep
needs:
- cache-mindeps:prep
mindeps:test:
extends:
- .rust_minimum_mindeps
- .cargo_no_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- mindeps:build
needs:
- mindeps:build
minimum-features:build:
extends:
- .rust_minimum
- .cargo_all_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
minimum-features:test:
extends:
- .rust_minimum
- .cargo_all_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- minimum-features:build
needs:
- minimum-features:build
stable-features:build:
extends:
- .rust_stable
- .cargo_all_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
stable-features:test:
extends:
- .rust_stable
- .cargo_all_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- stable-features:build
needs:
- stable-features:build
tarpaulin-features:build:
extends:
- .rust_stable
- .cargo_all_features
- .cargo_tarpaulin_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
tarpaulin-features:test:
extends:
- .rust_stable
- .cargo_all_features
- .cargo_tarpaulin_test_job
- .cargo_privileged_tags
- .run_automatically
dependencies:
- tarpaulin-features:build
needs:
- tarpaulin-features:build
nightly-features:build:
extends:
- .rust_nightly
- .cargo_all_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-newest:prep
needs:
- cache-newest:prep
nightly-features:test:
extends:
- .rust_nightly
- .cargo_all_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- nightly-features:build
needs:
- nightly-features:build
mindeps-features:build:
extends:
- .rust_minimum_mindeps_features
- .cargo_all_features
- .cargo_build_job
- .cargo_build_tags
- .cargo_build_artifacts
- .run_automatically
dependencies:
- cache-mindeps:prep
needs:
- cache-mindeps:prep
mindeps-features:test:
extends:
- .rust_minimum_mindeps_features
- .cargo_all_features
- .cargo_test_job
- .cargo_build_tags
- .cargo_test_artifacts
- .run_automatically
dependencies:
- mindeps-features:build
needs:
- mindeps-features:build
publish:
extends:
- .rust_stable
- .cargo_publish_job
- .cargo_build_tags
- .run_automatically
dependencies: []
needs:
- audit-newest:build
- clippy:build
- clippy-features:build
- mindeps:test
- mindeps-features:test
- minimum:test
- minimum-features:test
- nightly:test
- nightly-features:test
- stable:test
- stable-features:test
- tarpaulin-features:test