project-config/jenkins/scripts/release-tools
Doug Hellmann 7b859a974c if a release has been tagged, stop processing it
When we were tagging releases by hand, sometimes the tag was applied
before any of the other processing was done. Now that all cycle-based
projects are using the release automation, we can skip updating
launchpad and the requirements repo if a release already exists.

Change-Id: I7c4a2c51dcba073b5b6d29ddf58fff1cb3f11055
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-12-07 08:20:58 -05:00
..
add_release_note_page.sh do not prompt before submitting multiple reviews 2016-09-15 08:39:26 -04:00
branch_from_yaml.sh add branch automation to the tag-releases job 2016-11-28 15:25:14 -05:00
functions do not add zuul-env to the PATH 2016-09-26 15:53:41 -04:00
launchpad_add_comment.py import the release tools that need to run on secure nodes 2016-06-21 15:55:15 -04:00
list_deliverable_branches.py add branch automation to the tag-releases job 2016-11-28 15:25:14 -05:00
list_deliverable_changes.py ignore deliverable files with no releases listed 2016-12-02 08:41:22 -05:00
make_branch.sh add branch automation to the tag-releases job 2016-11-28 15:25:14 -05:00
README.rst start a readme describing the release tools 2016-06-22 13:52:30 -04:00
release_from_yaml.sh No longer specify announce list in tag message 2016-11-16 17:02:30 +01:00
release.sh if a release has been tagged, stop processing it 2016-12-07 08:20:58 -05:00
requirements.txt import the release tools that need to run on secure nodes 2016-06-21 15:55:15 -04:00

Release Tools

release_from_yaml.sh

This script takes YAML files describing deliverables to release (like those living in openstack/releases) and calls the release.sh script (see below) to apply the corresponding tags. It will create a tag for the last release mentioned in the file(s). You can point it to specific YAML files, or to a local git repository (in which case it will look at the files modified in the most recent commit).

Examples:

./release_from_yaml.sh ../openstack-releases deliverables/mitaka/nova.yaml

Call release.sh for all repositories mentioned in the last release added to ../openstack-releases/deliverables/mitaka/nova.yaml

./release_from_yaml.sh ../openstack-releases

Look into the git repository at ../openstack-releases for deliverable YAML files modified at the last commit, and call release.sh for all repositories mentioned on the last release in each such file.

release.sh

This script creates a tag on a given repository SHA and pushes it to Gerrit. Additionally it will add a message on Launchpad bugs that are mentioned as "closed" in git commit messages since the last tag on the same series.

Example:

./release.sh openstack/oslo.rootwrap mitaka 3.0.3 gerrit/master

Apply a 3.0.3 tag (associated to the mitaka series) to the gerrit master HEAD of the openstack/oslo.rootwrap reporitory, and add a comment for each closed bug mentioned in commit messages since the previous mitaka tag (3.0.2).

branch_from_yaml.sh

This script looks at the deliverable files to decide how to create stable branches.

$ branch_from_yaml.sh ~/repos/openstack/releases mitaka
$ branch_from_yaml.sh ~/repos/openstack/releases mitaka
$ branch_from_yaml.sh ~/repos/openstack/releases mitaka deliverables/_independent/openstack-ansible.yaml