forked from puppetlabs/puppetlabs-splunk_hec
-
Notifications
You must be signed in to change notification settings - Fork 0
66 lines (56 loc) · 2.79 KB
/
release_prep.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
name: release_prep
on:
workflow_dispatch:
inputs:
module_version:
description: 'The new version you would like to release'
required: true
jobs:
release_prep:
runs-on: ubuntu-latest
steps:
- name: Extract branch name
run: echo "GITHUB_BRANCH=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
- name: Update Rubygems
run: gem update --system 3.1.0
- name: Clone repository
uses: actions/checkout@v2
with:
ref: ${{ env.GITHUB_BRANCH }}
# Needed to fetch all the tags
fetch-depth: 0
- name: Get most recent tag
id: most_recent_tag
uses: "WyriHaximus/github-action-get-previous-tag@master"
# An error in this step likely means that a most recent tag doesn't exist.
# This just means that our job corresponds to the first release, so continuing
# on error is OK.
continue-on-error: true
- name: Calculate the release prep commit's COMMIT_TITLE, COMMIT_BODY_MAIN, COMMIT_BODY_NOTE
run: |
echo "COMMIT_TITLE=$(echo 'Release prep to ${{ github.event.inputs.module_version }}')" >> $GITHUB_ENV
echo "COMMIT_BODY_MAIN=$(echo -n 'You will need to manually update the \`CHANGELOG.md\` file. First, checkout this PR on your local machine via something like \`git fetch upstream; git checkout upstream/release_prep\`. Then, once you have updated the \`CHANGELOG.md\` file, \`git commit --amend\` your update, then push your changes to this PR via something like \`git push --set-upstream upstream.\`')" >> $GITHUB_ENV
if [ ! -z '${{ steps.most_recent_tag.outputs.tag }}' ]; then
echo "COMMIT_BODY_NOTE=$(echo -n "${commit_body} **Note:** You can use https://github.com/${{ github.repository }}/compare/${{ steps.most_recent_tag.outputs.tag }}...${{ env.GITHUB_BRANCH }} to see all the new commits that have landed since the previous release.")" >> $GITHUB_ENV
fi
- name: Release Prep
uses: docker://puppet/pdk:nightly
with:
args: 'release prep --version=${{ github.event.inputs.module_version }} --skip-changelog'
- name: Generate the release prep commit
run: |
git checkout -b release_prep
bundle install
git add .
git -c user.name=${{ github.actor }} -c user.email=${{ github.actor }}@users.noreply.github.com commit -m "${{ env.COMMIT_TITLE }}" -m "${{ env.COMMIT_BODY_MAIN }}" -m '' -m '${{ env.COMMIT_BODY_NOTE }}'
git push --set-upstream origin release_prep --force
- name: Generate the release prep PR
uses: repo-sync/pull-request@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
source_branch: 'release_prep'
destination_branch: ${{ env.GITHUB_BRANCH }}