wordpress-mobile / release-toolkit-gutenberg-mobile

Automation Scripts for Releasing Gutenberg-Mobile Updates to the WordPress Mobile Apps.
Mozilla Public License 2.0
5 stars 2 forks source link

Add release integration flow #124

Closed jhnstn closed 1 year ago

jhnstn commented 1 year ago

Description

This adds a new command gbm release integrate which can create WPAndroid and WPiOS release PRs given an existing GBM release PR

It also adds the command gbm release status which lists the PR info regarding release PRs.

Overview

The general flow to create an integration pr is in internal/integration/integration.go. This package can handle any type of integration

pkg/release/integration.go sets everything up for releases.

Testing

There is a decent amount of unit testing on some of the heavy business logic.

To perform an e2e tests, set the env variable, GBM_WPMOBILE_ORG to a github account that has forks of Gutenberg Mobile, WPAndroid and WPiOS. example

export GBM_WPMOBILE_ORG=jhnstn

Now any requests the script will make will go to those github repos

running

go run main.go release integrate -h

Will output the command usage info

Try the same with release status -h

Then manually create a release pr on the forked Gutenberg Mobile repo example https://github.com/jhnstn/gutenberg-mobile/pull/3. The script pulls the version from the PR title so make sure the title contains a valid semantic version. 0.0.0 is a good option since that release does not exit on the main Gutenberg Mobile repo

Assuming the test PR uses the version 0.0.0 try

go run main.go release integrate 0.0.0 --verbose

This will generate both integration release PRs and log some step info

Then run

go run main.go release status 0.0.0

That should list 4 prs. The Gutenberg PR should show N/A values.

Visit both integration PRs and confirm the correct changes to the Gutenberg Mobile config and that the PR info matches our current release PRs.