woocommerce / grow

7 stars 7 forks source link

Add GH action for release PR & checklist #56

Closed tomalec closed 1 year ago

tomalec commented 1 year ago

This is a continuation of https://github.com/woocommerce/automatewoo/pull/1404

Changes proposed in this Pull Request:

Adds a new GitHub Action to prepare extension release.

To be used with a manual GH workflow. It takes versions, then starts a branch and creates a PR with the checklist. The aim is to automate and unify the release process across our repos.

Screenshots:

image

Detailed test instructions:

  1. Add a workflow in another repo following the instructions from packages/js/github-actions/actions/prepare-extension-release/README.md, replacing woocommerce/grow/prepare-extension-release@actions-v1 with woocommerce/grow/prepare-extension-release@actions-v1.5.2-pre as this PR is not yet released.

    Like https://github.com/tomalec/grow/blob/391113cd2a00bac2dc808674ecebdb30e8fd83da/.github/workflows/extension-release.yml

  2. Run the created workflow.

Additional details:

The further improvements automation I was trying to implement but didn't finish:

  1. (tricky) Make the workflow run woorelease simulate. So we could reduce two more manual steps for the developer, and serve them just a .zip package to smoke test & changelog to inspect. It's tricky, as requires setting up all woorelease keys on GHA, and makes the simulation repo harder to inspect.
  2. (tricky) Make another workflow pick up the approval, and make the actual release. The tricky part is as above. But it may mitigate a few more issues we were experiencing in the past, as it could assert the consistent build environment (node, npm, composer versions)
  3. (easier) Make another workflow pick up a release, then
    1. publish the GitHub's release notes as a comment to matching PR,
    2. merge the PR to trunk
    3. merge trunk to develop

Further improvements I envision:

  1. Allow bumping version by just major|minor|patch instead of typing a full version
  2. Allow customizing checklist, so some repos could have a few more specific steps

Changelog entry

Add - Extension release preparation github-action.