diff --git a/.expeditor/config.yml b/.expeditor/config.yml index cde9be75ea..54086cb732 100644 --- a/.expeditor/config.yml +++ b/.expeditor/config.yml @@ -1,143 +1,133 @@ -# Documentation available at https://expeditor.chef.io/ - -github: - # The file where the MAJOR.MINOR.PATCH version is kept. The version in this file - # is bumped automatically via the `built_in:bump_version` merge_action. - version_file: "VERSION" - version_tag_format: '{{version}}' - # The file where our CHANGELOG is kept. This file is updated automatically with - # details from the Pull Request via the `built_in:update_changelog` merge_action. - changelog_file: "CHANGELOG.md" - delete_branch_on_merge: true - -# Slack channel in Chef Software slack to send notifications about Expeditor actions -slack: - notify_channel: habitat-notify - -changelog: - categories: - - "Changelog: Behavioral Change": "Behavioral Changes" - - "Changelog: New Feature": "New Features & Enhancements" - - "Changelog: Bug Fix": "Bug Fixes" - -pipelines: - - verify: - description: Pull Request validation tests - - release_habitat: - description: Habitat release process - - end_to_end: - description: Habitat long running end to end tests - always runs on DEV environment - - finish_release: - description: Tasks to be performed after a release has been promoted to stable - -release_branches: - - main: - version_constraint: 2.* - - v1.6: - version_constraint: 1.* - -staging_areas: - - release_staging: - workload: pull_request_merged:{{github_repo}}:{{release_branch}}:* - -subscriptions: - - workload: pull_request_opened:{{github_repo}}:{{release_branch}}:* - actions: - - post_github_comment:.expeditor/templates/welcome.mustache: - ignore_team_members: - - habitat-sh/habitat-core-maintainers - - built_in:github_auto_assign_author: - only_if_team_member: - - habitat-sh/habitat-core-maintainers - - - workload: staged_workload_released:{{agent_id}}:release_staging:* - actions: - - built_in:bump_version - - built_in:update_changelog - - trigger_pipeline:release_habitat: - only_if: built_in:bump_version - - # Responses to Release Pipeline - ######################################################################## - - - workload: buildkite_build_passed:{{agent_id}}:release_habitat:* - actions: - - trigger_pipeline:end_to_end - - unlock_staging_area:release_staging: - always_run: true - - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: - always_run: true - post_commit: true - - # Make sure we unlock to allow later builds if one fails. - - workload: buildkite_build_failed:{{agent_id}}:release_habitat:* - actions: - - unlock_staging_area:release_staging: - always_run: true - - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: - always_run: true - post_commit: true - - - workload: buildkite_build_canceled:{{agent_id}}:release_habitat:* - actions: - - unlock_staging_area:release_staging: - always_run: true - - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: - always_run: true - post_commit: true - - # Promotion Workloads - ######################################################################## - # Only allow promotion actions from acceptance->staging, - # staging->current, and current->stable; other promotions are - # handled automatically by the pipeline. - - workload: project_promoted:{{agent_id}}:acceptance:* - actions: - - bash:.expeditor/scripts/expeditor_promote.sh: - post_commit: true - # This purges the cache on promotion to staging, so our - # "curlbash" installers get the right packages. That turns out - # to be useful for installing the new release candidate that's - # now in the staging channel in some scenarios (e.g., on macOS) - - bash:.expeditor/scripts/purge_cdn.sh: - post_commit: true - - - workload: project_promoted:{{agent_id}}:staging:* - actions: - - bash:.expeditor/scripts/expeditor_promote.sh: - post_commit: true - # Not purging here because it shouldn't be necessary at this - # point. - - - workload: project_promoted:{{agent_id}}:current:* - actions: - - bash:.expeditor/scripts/expeditor_promote.sh: - post_commit: true - # This purges the cache on promotion to stable, so our - # "curlbash" installers get the right packages. - - bash:.expeditor/scripts/purge_cdn.sh: - post_commit: true - - trigger_pipeline:finish_release: - post_commit: true - - # Post release notification workloads - # - # Do not change the branch name here without also changing - # it in .expeditor/scripts/finish_release/bump_rustfmt.sh - # pull_request_:::: - - workload: pull_request_opened:{{github_repo}}:expeditor/rustfmt_*:* - actions: - - bash:.expeditor/scripts/finish_release/notify_rustfmt.sh - -artifact_channels: - # e2e pipeline tests from here - - dev - # acceptance Builder Supervisors update from here - - acceptance - # stable "holding area" for us to perform manual evaluations. This - # is only really until we have automated more of our testing. - - staging - # prod Builder Supervisors update from here - - current - # Habitat packages in stable, binary packages available to the world - - stable +# Documentation available at https://expeditor.chef.io/ + +github: + # The file where the MAJOR.MINOR.PATCH version is kept. The version in this file + # is bumped automatically via the `built_in:bump_version` merge_action. + version_file: "VERSION" + version_tag_format: '{{version}}' + # The file where our CHANGELOG is kept. This file is updated automatically with + # details from the Pull Request via the `built_in:update_changelog` merge_action. + changelog_file: "CHANGELOG.md" + delete_branch_on_merge: true + +# Slack channel in Chef Software slack to send notifications about Expeditor actions +slack: + notify_channel: habitat-notify + +changelog: + categories: + - "Changelog: Behavioral Change": "Behavioral Changes" + - "Changelog: New Feature": "New Features & Enhancements" + - "Changelog: Bug Fix": "Bug Fixes" + +pipelines: + - verify: + description: Pull Request validation tests + - release_habitat: + description: Habitat release process + - end_to_end: + description: Habitat long running end to end tests - always runs on DEV environment + - finish_release: + description: Tasks to be performed after a release has been promoted to stable + +release_branches: + - main: + version_constraint: 2.* + - v1.6: + version_constraint: 1.* + +subscriptions: + - workload: pull_request_opened:{{github_repo}}:{{release_branch}}:* + actions: + - post_github_comment:.expeditor/templates/welcome.mustache: + ignore_team_members: + - habitat-sh/habitat-core-maintainers + - built_in:github_auto_assign_author: + only_if_team_member: + - habitat-sh/habitat-core-maintainers + + - workload: pull_request_merged:{{github_repo}}:{{release_branch}}:* + actions: + - built_in:bump_version + - built_in:update_changelog + - trigger_pipeline:release_habitat: + only_if: built_in:bump_version + + # Responses to Release Pipeline + ######################################################################## + + - workload: buildkite_build_passed:{{agent_id}}:release_habitat:* + actions: + - trigger_pipeline:end_to_end + - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: + always_run: true + post_commit: true + + # Make sure we unlock to allow later builds if one fails. + - workload: buildkite_build_failed:{{agent_id}}:release_habitat:* + actions: + - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: + always_run: true + post_commit: true + + - workload: buildkite_build_canceled:{{agent_id}}:release_habitat:* + actions: + - bash:.expeditor/scripts/release_habitat/expeditor_destroy_build_channel.sh: + always_run: true + post_commit: true + + # Promotion Workloads + ######################################################################## + # Only allow promotion actions from acceptance->staging, + # staging->current, and current->stable; other promotions are + # handled automatically by the pipeline. + - workload: project_promoted:{{agent_id}}:acceptance:* + actions: + - bash:.expeditor/scripts/expeditor_promote.sh: + post_commit: true + # This purges the cache on promotion to staging, so our + # "curlbash" installers get the right packages. That turns out + # to be useful for installing the new release candidate that's + # now in the staging channel in some scenarios (e.g., on macOS) + - bash:.expeditor/scripts/purge_cdn.sh: + post_commit: true + + - workload: project_promoted:{{agent_id}}:staging:* + actions: + - bash:.expeditor/scripts/expeditor_promote.sh: + post_commit: true + # Not purging here because it shouldn't be necessary at this + # point. + + - workload: project_promoted:{{agent_id}}:current:* + actions: + - bash:.expeditor/scripts/expeditor_promote.sh: + post_commit: true + # This purges the cache on promotion to stable, so our + # "curlbash" installers get the right packages. + - bash:.expeditor/scripts/purge_cdn.sh: + post_commit: true + - trigger_pipeline:finish_release: + post_commit: true + + # Post release notification workloads + # + # Do not change the branch name here without also changing + # it in .expeditor/scripts/finish_release/bump_rustfmt.sh + # pull_request_:::: + - workload: pull_request_opened:{{github_repo}}:expeditor/rustfmt_*:* + actions: + - bash:.expeditor/scripts/finish_release/notify_rustfmt.sh + +artifact_channels: + # e2e pipeline tests from here + - dev + # acceptance Builder Supervisors update from here + - acceptance + # stable "holding area" for us to perform manual evaluations. This + # is only really until we have automated more of our testing. + - staging + # prod Builder Supervisors update from here + - current + # Habitat packages in stable, binary packages available to the world + - stable