version: 2.1 parameters: fingerprint: type: string default: SHA256:OkxsH8Z6Iim6WDJBaII9eTT9aaO1f3eDc6IpsgYYPVg min-rust-version: type: string default: "1.87" release-flag: type: boolean default: false description: "If true, the release workflow will be executed." success-flag: type: boolean default: false description: "If true, the success pipeline will be executed." validation-flag: type: boolean default: false description: "If true, the validation pipeline will be executed." orbs: toolkit: jerus-org/circleci-toolkit@2.13.4 executors: rust-env: docker: - image: jerusdp/ci-rust:<> workflows: check_last_commit: when: and: - not: equal: [scheduled_pipeline, << pipeline.trigger_source >>] - not: << pipeline.parameters.success-flag >> - not: << pipeline.parameters.release-flag >> - not: << pipeline.parameters.validation-flag >> jobs: - toolkit/choose_pipeline: name: choose pipeline based on committer context: bot-check validation: when: and: - not: equal: [scheduled_pipeline, << pipeline.trigger_source >>] - not: << pipeline.parameters.success-flag >> - << pipeline.parameters.validation-flag >> - not: << pipeline.parameters.release-flag >> jobs: - toolkit/label: min_rust_version: << pipeline.parameters.min-rust-version >> context: pcu-app filters: branches: only: - main - toolkit/required_builds: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/optional_builds: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/test_doc_build: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/common_tests: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/idiomatic_rust: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/security: context: SonarCloud - toolkit/update_prlog: filters: branches: ignore: - main requires: - toolkit/required_builds - toolkit/test_doc_build - toolkit/idiomatic_rust - toolkit/security - toolkit/common_tests context: - release - bot-check ssh_fingerprint: << pipeline.parameters.fingerprint >> min_rust_version: << pipeline.parameters.min-rust-version >> on_success: when: and: - not: equal: [scheduled_pipeline, << pipeline.trigger_source >>] - << pipeline.parameters.success-flag >> - not: << pipeline.parameters.validation-flag >> - not: << pipeline.parameters.release-flag >> jobs: - toolkit/end_success release: when: and: - or: - and: - equal: [scheduled_pipeline, << pipeline.trigger_source >>] - equal: ["release check", << pipeline.schedule.name >>] - << pipeline.parameters.release-flag >> - not: << pipeline.parameters.success-flag >> - not: << pipeline.parameters.validation-flag >> jobs: - toolkit/save_next_version: min_rust_version: << pipeline.parameters.min-rust-version >> - toolkit/make_release: requires: - toolkit/save_next_version pre-steps: - attach_workspace: at: /tmp/workspace - run: name: Set SEMVER based on next-version file command: | set +ex export SEMVER=$(cat /tmp/workspace/next-version) echo $SEMVER echo "export SEMVER=$SEMVER" >> "$BASH_ENV" context: - release - bot-check ssh_fingerprint: << pipeline.parameters.fingerprint >> min_rust_version: << pipeline.parameters.min-rust-version >> when_get_version: false - toolkit/no_release: min_rust_version: << pipeline.parameters.min-rust-version >> requires: - toolkit/save_next_version: - failed