Skip to content

Commit

Permalink
Switch to the new "Prepare release" GitHub Actions workflow
Browse files Browse the repository at this point in the history
Switches to the new shared workflow added in:
heroku/languages-github-actions#184

GUS-W-14900211.
  • Loading branch information
edmorley committed Jan 26, 2024
1 parent 35cbe44 commit e5bac7b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 72 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/hatchet_app_cleaner.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Hatchet app cleaner
name: Hatchet App Cleaner

on:
schedule:
Expand Down
74 changes: 3 additions & 71 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,8 @@
name: Prepare release
name: Prepare Release

on: workflow_dispatch

jobs:
prepare-release:
name: Prepare Release
runs-on: pub-hk-ubuntu-22.04-small
steps:
- name: Get token for GH application (Linguist)
uses: heroku/use-app-token-action@main
id: generate-token
with:
app_id: ${{ vars.LINGUIST_GH_APP_ID }}
private_key: ${{ secrets.LINGUIST_GH_PRIVATE_KEY }}

- name: Checkout
uses: actions/checkout@v4
with:
# We always want the version bump/changelog and resultant PR to target main, not the branch of the workflow_dispatch.
ref: main
# Using the GH application token here will configure the local git config for this repo with credentials
# that can be used to make signed commits that are attributed to the GH application user
token: ${{ steps.generate-token.outputs.app_token }}

- name: Determine existing published version
id: existing-version
# This uses the buildpack registry API directly instead of the Heroku CLI, since the latter
# requires being logged in for version queries even though the registry API itself doesn't.
run: |
URI_ENCODED_BUILDPACK_NAME='heroku%2Fpython'
VERSION=$(
curl --silent --show-error --fail --retry 3 --retry-connrefused --connect-timeout 10 \
-H 'Accept: application/vnd.heroku+json; version=3.buildpack-registry' \
"https://buildpack-registry.heroku.com/buildpacks/${URI_ENCODED_BUILDPACK_NAME}/revisions" \
| jq --exit-status --raw-output 'max_by(.release) | .release'
)
echo "version=${VERSION}" >> "${GITHUB_OUTPUT}"
- name: Calculate new version
id: new-version
run: echo "version=$((${{ steps.existing-version.outputs.version }}+1))" >> "${GITHUB_OUTPUT}"

- name: Update changelog
run: |
EXISTING_VERSION='${{ steps.existing-version.outputs.version }}'
NEW_VERSION='${{ steps.new-version.outputs.version }}'
DATE_TODAY="$(date --utc --iso-8601)"
UNRELEASED_URL="https://github.com/${{ github.repository }}/compare/v${NEW_VERSION}...HEAD"
NEW_VERSION_URL="https://github.com/${{ github.repository }}/compare/v${EXISTING_VERSION}...v${NEW_VERSION}"
sed --in-place --regexp-extended \
--expression "s~(^## \[Unreleased\])$~\1\n\n\n## [v${NEW_VERSION}] - ${DATE_TODAY}~" \
--expression "s~(^\[unreleased\]:) .*$~\1 ${UNRELEASED_URL}\n[v${NEW_VERSION}]: ${NEW_VERSION_URL}~" \
CHANGELOG.md
- name: Create pull request
id: pr
uses: peter-evans/[email protected]
with:
token: ${{ steps.generate-token.outputs.app_token }}
title: Prepare release v${{ steps.new-version.outputs.version }}
body: |
Changes:
https://github.com/${{ github.repository }}/compare/v${{ steps.existing-version.outputs.version }}...main
commit-message: Prepare release v${{ steps.new-version.outputs.version }}
branch: prepare-release
delete-branch: true
committer: ${{ vars.LINGUIST_GH_APP_USERNAME }} <${{ vars.LINGUIST_GH_APP_EMAIL }}>
author: ${{ vars.LINGUIST_GH_APP_USERNAME }} <${{ vars.LINGUIST_GH_APP_EMAIL }}>

- name: Configure pull request
if: steps.pr.outputs.pull-request-operation == 'created'
run: gh pr merge --auto --squash "${{ steps.pr.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ steps.generate-token.outputs.app_token }}
uses: heroku/languages-github-actions/.github/workflows/_classic-buildpack-prepare-release.yml@latest
secrets: inherit

0 comments on commit e5bac7b

Please sign in to comment.