-
Notifications
You must be signed in to change notification settings - Fork 316
/
config.yml
140 lines (123 loc) · 5.09 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Documentation available at https://expeditor.chef.io/
project:
alias: "habitat"
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
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_<ACTION>:<REPO>:<BRANCH>:<NUMBER>:<GITHUB_DELIVERY_UUID>
- 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