Files
cull-gmail/.circleci/config.yml
Jeremiah Russell 2e323758f5 👷 ci(circleci): add condition to version retrieval step
- introduce `when_get_version` parameter to control version retrieval process in CircleCI config
2025-09-30 06:52:13 +01:00

143 lines
4.3 KiB
YAML

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:<<pipeline.parameters.min-rust-version>>
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 >>
version: "0.0.1"
- 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