Skip to content

Commit f87692e

Browse files
committed
Automatically create release tags via GitHub actions
Release tags are now created automatically when including an indicator (see updated documentation) in the commit message.
1 parent fd8af8a commit f87692e

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Create release tag
2+
on:
3+
push:
4+
branches: [ develop ]
5+
6+
jobs:
7+
create-tag:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v2
11+
with:
12+
fetch-depth: '0'
13+
- name: Compute new tag
14+
uses: anothrNick/[email protected]
15+
id: dry_run
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
DEFAULT_BUMP: none
19+
RELEASE_BRANCHES: develop
20+
VERBOSE: false
21+
DRY_RUN: true
22+
- if: ${{ steps.dry_run.new_tag != "" }}
23+
run: |
24+
v=$(grep ^CBMC_VERSION src/config.inc | perl -p -e 's/^CBMC_VERSION\s*=\s*//')
25+
echo "CBMC_VERSION: $v"
26+
echo "New tag: ${{ steps.dry_run.new_tag }}"
27+
test "cbmc-$v" == ${{ steps.dry_run.new_tag }}
28+
- name: Bump version and push tag
29+
uses: anothrNick/[email protected]
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32+
DEFAULT_BUMP: none
33+
RELEASE_BRANCHES: develop
34+
VERBOSE: false

doc/ADR/release_process.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,22 @@ The current process we follow through to make a new release is the following:
1111
1. At the point in time we want to make the release, we make a change to
1212
`src/config.inc`, and update the configuration variable `CBMC_VERSION`.
1313
This is important as it informs the various tools of the current version
14-
of CBMC.
15-
16-
(This needs to be pushed as a PR, and after it gets merged we move on to:)
17-
18-
2. Then we make a `git tag` out of that commit, and push it to github. The
19-
tag needs to be of the form `cbmc-<version>` with version being a version
14+
of CBMC. The commit message must then contain one of \#major, \#minor, or
15+
\#patch to inform the GitHub action that automatically creates a release tag.
16+
The tag is of the form `cbmc-<version>`, with `<version>` being a version
2017
number of the form of `x.y.z`, with `x` denoting the major version, `y`
2118
denoting the minor version, and `z` identifying the patch version (useful
2219
for a hotfix or patch.)
2320

2421
At this point, the rest of the process is automated, so we don't need to do
2522
anything more, but the process is described below for reference:
2623

27-
3. `.github/workflows/regular-release.yaml` gets triggered on the `push`
24+
2. `.github/workflows/regular-release.yaml` gets triggered on the `push`
2825
of the tag, and creates a Github release of the version that was
2926
described in thetag pushed (so, tag `cbmc-5.15.20` is going to
3027
create the release titled `cbmc-5.15.20` on the release page).
3128

32-
4. `.github/workflows/release-packages.yaml` gets triggered automatically
29+
3. `.github/workflows/release-packages.yaml` gets triggered automatically
3330
at the creation of the release, and its job is to build packages for
3431
Windows, Ubuntu 18.04 and Ubuntu 20.04 (for now, we may support more
3532
specific Ubuntu versions later) and attaches them (after it has finished

0 commit comments

Comments
 (0)