summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Duffield <tom@chef.io>2017-08-12 09:03:20 -0500
committerBryan McLellan <btm@loftninjas.org>2017-08-13 12:15:27 -0400
commitf1e0ce7949a91b9ca41177c12e0efa63df5ed433 (patch)
tree740114a89b3f925c157149bdfe407ba61e2909f5
parent723218b79b76aa7ef730ea31c8bffdd5fd2d9f86 (diff)
downloadchef-f1e0ce7949a91b9ca41177c12e0efa63df5ed433.tar.gz
Add Expeditor to chef-12 branch
Signed-off-by: Tom Duffield <tom@chef.io>
-rw-r--r--.expeditor/config.yml88
-rwxr-xr-x.expeditor/update_dockerfile.sh0
-rwxr-xr-x.expeditor/update_version.sh16
3 files changed, 104 insertions, 0 deletions
diff --git a/.expeditor/config.yml b/.expeditor/config.yml
new file mode 100644
index 0000000000..e51cf1e517
--- /dev/null
+++ b/.expeditor/config.yml
@@ -0,0 +1,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`)
+#
diff --git a/.expeditor/update_dockerfile.sh b/.expeditor/update_dockerfile.sh
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/.expeditor/update_dockerfile.sh
diff --git a/.expeditor/update_version.sh b/.expeditor/update_version.sh
new file mode 100755
index 0000000000..b2d76bc336
--- /dev/null
+++ b/.expeditor/update_version.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+#
+# After a PR merge, Chef Expeditor will bump the PATCH version in the VERSION file.
+# It then executes this file to update any other files/components with that new version.
+#
+
+set -evx
+
+sed -i -r "s/^(\s*)VERSION = \".+\"/\1VERSION = \"$(cat VERSION)\"/" chef-config/lib/chef-config/version.rb
+sed -i -r "s/VersionString\.new\(\".+\"\)/VersionString.new(\"$(cat VERSION)\")/" lib/chef/version.rb
+
+# Update the version inside Gemfile.lock
+bundle update chef chef-config
+
+# Once Expeditor finshes executing this script, it will commit the changes and push
+# the commit as a new tag corresponding to the value in the VERSION file.