Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add workflow for automatically generating release #926

Merged
merged 3 commits into from
Feb 1, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .github/workflows/make-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: make-release

on:
workflow_dispatch:
inputs:
target_branch:
description: >-
JSON array of branches to target. The first branch in the array will
be marked as the latest release.
required: false
type: string
default: '["main","release/0.15","release/0.12"]'

jobs:
bump-version:
strategy:
matrix:
target_branch: ${{ fromJSON(inputs.target_branch) }}
runs-on: ubuntu-latest
env:
CARGO_EDIT_VERSION: 0.12.2
steps:
- uses: actions/checkout@v4
with:
ref: '${{ matrix.target_branch }}'
token: '${{ secrets.DIVVIUP_GITHUB_AUTOMATION_RELEASE_PAT }}'

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo edit
uses: actions/cache@v4
with:
path: ${{ runner.tool_cache }}/cargo-edit
key: cargo-edit-${{ env.CARGO_EDIT_VERSION }}
- name: Add the tool cache directory to the search path
run: echo "${{ runner.tool_cache }}/cargo-edit/bin/" >>$GITHUB_PATH
- name: Ensure cargo-edit is installed
run: |
cargo install \
--root ${{ runner.tool_cache }}/cargo-edit \
--version ${{ env.CARGO_EDIT_VERSION }} \
cargo-edit

- run: cargo set-version --package prio --bump patch
- run: git diff
- name: Push changes
env:
ACTOR: '${{ github.actor }}'
run: |
git config user.email "divviup-github-automation@divviup.org"
git config user.name "divviup-github-automation"
git commit -am "Bump libprio-rs patch version, triggered by @$ACTOR"
git push

# This job is kept separate from the previous one to enable retrying it without
# bumping the version number again.
make-release:
strategy:
matrix:
target_branch: ${{ fromJSON(inputs.target_branch) }}
runs-on: ubuntu-latest
needs: [bump-version]
steps:
- uses: actions/checkout@v4
with:
ref: '${{ matrix.target_branch }}'
token: '${{ secrets.DIVVIUP_GITHUB_AUTOMATION_RELEASE_PAT }}'

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable

- name: Create release
env:
GH_TOKEN: '${{ secrets.INAHGA_TEST }}'
TARGET_BRANCH: '${{ matrix.target_branch }}'
FIRST_BRANCH: '${{ fromJSON(inputs.target_branch)[0] }}'
run: |
# Determine the workspace version.
VERSION=$(cargo metadata --no-deps | jq -er '.packages[0].version')

LATEST=
if [ "$TARGET_BRANCH" == "$FIRST_BRANCH" ]; then
LATEST="--latest=true"
else
LATEST="--latest=false"
fi

gh release create "$VERSION" \
--generate-notes \
--target "$TARGET_BRANCH" \
$LATEST