summaryrefslogtreecommitdiff
path: root/.expeditor/config.yml
blob: e51cf1e5173ebdecc104008d1f669879323ced31 (plain)
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
# The name of the product keys for this product (from mixlib-install)
product_key:
  - chef
  - angrychef

# Slack channel in Chef Software slack to send notifications about build failures, etc
slack:
  notify_channel: chef-notify

# Which Ruby Gems, built when the Omnibus package is built, to publish to rubygems.org
# This publish is triggered by the `built_in:publish_rubygems` artifact_action.
rubygems:
  - chef
  - chef-config

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"
  # 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"
  # The tag format to use (e.g. v1.0.0)
  version_tag_format: "v{{version}}"
  # The Github Team primarily responsible for handling incoming Pull Requests.
  maintainer_group: chef/client-core
  # Which Github branches to build Omnibus releases from, and what versions
  # (as determined by the value in the VERSION file) those branches are responsible
  # for building.
  release_branch:
    master:
      version_constraint: ~> 13.0
    chef-12:
      version_constraint: ~> 12.0

# These actions are taken, in order they are specified, anytime a Pull Request is merged.
merge_actions:
  - built_in:bump_version:
      ignore_labels: "Version: Skip Bump"
  - bash:.expeditor/update_version.sh:
      only_if: built_in:bump_version
  - built_in:update_changelog:
      ignore_labels: "Meta: Exclude From Changelog"
  - built_in:trigger_omnibus_release_build:
      ignore_labels: "Omnibus: Skip Build"
      only_if: built_in:bump_version

# These actions are taken, in the order specified, when an Omnibus artifact is promoted
# within Chef's internal artifact storage system.
artifact_actions:
  promoted_to_unstable:
    - built_in:build_docker_image
  promoted_to_current:
    - built_in:tag_docker_image
  promoted_to_stable:
    - built_in:tag_docker_image
    - built_in:publish_rubygems
    - built_in:rollover_changelog
    - bash:.expeditor/update_dockerfile.sh


###############################################################################
# Notes on the tags inside CHANGELOG.md
###############################################################################
# latest_release
#   The content inside this block contains the most recent Pull Request to be
#   merged into the repository. When the `built_in:update_changelog` merge_action
#   is triggered, the content of this block is updated to reflect the most recent
#   Pull Request merged.
#
# release_rollup
#   This block contains all the Pull Requests merged since the most recent
#   Stable release. When the `built_in:update_changelog` merge_action is triggered,
#   the content inside this block is updated to include the most recent Pull Request
#   merged. When the `built_in:rollover_changelog` artifact_action is trggered,
#   the line items (each `-` line) are evaluated based on the version in the tags
#   at the end of the line (e.g.  `<!-- 13.0.0 -->`). If the version is more recent
#   than the version that was just promoted (e.g. `> STABLE`), it is left in the
#   release_rollup section. Otherwise, it is moved into the `latest_stable_release`
#   section.
#
# latest_stable_release
#   This block contains a list of all the changes that were released in the latest
#   stable version. When the `built_in:rollover_changelog` artifact_action is triggerd,
#   the content inside this block is moved underneath it and the block is updated with
#   all of the line item chanages from the `release_rollup` block that were included in
#   the just released stable build (e.g. `> STABLE-1, <= STABLE`)
#