Rebuild release automation to provide better introspection

1. Draft releases are triggered by the release person
2. Draft releases are inspected & tested along with their artifacts & notes
3. Draft releases are published when ready and this kicks off any deploys e.g. npm, docs, etc

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Michael Telatynski 2024-01-29 18:24:52 +00:00
parent 4990a49d40
commit d7148f6708
No known key found for this signature in database
GPG key ID: A2B008A5F49F5D0D
2 changed files with 33 additions and 30 deletions

View file

@ -1,21 +1,39 @@
name: Release Drafter
on:
push:
branches: [staging]
workflow_dispatch:
inputs:
version-bump:
description: The scale of the version bump required for semver compatibility
required: true
default: automatic
type: choice
options:
- automatic
- patch
- minor
- major
type:
description: The type of release to make
required: true
default: release-candidate
type: choice
options:
- release-candidate
- release
- hotfix
previous-version:
description: What release to use as a base for release note purposes
description: What release to use as a base for release note purposes, defaults to the latest stable release.
required: false
type: string
concurrency: ${{ github.workflow }}
jobs:
draft:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@e64b19c4c46173209ed9f2e5a2f4ca7de89a0e86 # v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
disable-autolabeler: true
previous-version: ${{ inputs.previous-version }}
uses: matrix-org/matrix-js-sdk/.github/workflows/release-drafter-action.yml@develop
secrets: inherit
with:
version-bump: ${{ inputs.version-bump }}
previous-version: ${{ inputs.previous-version }}
final: ${{ inputs.type != 'release-candidate' }}
include-changes: element-hq/element-web@$VERSION
gpg-fingerprint: ${{ vars.GPG_FINGERPRINT }}
expected-asset-count: 1

View file

@ -1,25 +1,10 @@
name: Release Process
name: Post Release Process
on:
workflow_dispatch:
inputs:
mode:
description: What type of release
required: true
default: rc
type: choice
options:
- rc
- final
release:
types: [published]
concurrency: ${{ github.workflow }}
jobs:
release:
uses: matrix-org/matrix-js-sdk/.github/workflows/release-make.yml@develop
uses: matrix-org/matrix-js-sdk/.github/workflows/release-action.yml@develop
secrets:
ELEMENT_BOT_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
with:
final: ${{ inputs.mode == 'final' }}
include-changes: element-hq/element-web@$VERSION
gpg-fingerprint: ${{ vars.GPG_FINGERPRINT }}
expected-asset-count: 1