awx/docs/release_process.md
2022-06-02 11:30:57 -04:00

5.3 KiB

Releasing AWX (and awx-operator)

The release process for AWX is completely automated as of version 19.5.0.

Get latest release version and list of new work

  1. Open the main project page for AWX and AWX Operator.

Find the latest releases of the projects on the right hand side of the screen:

Latest Release

  1. Open the compare screen for the two projects AWX and AWX Operator. In the two dropdowns near the top of the page leave the compare menu at devel and select the drop down for base and then select tags and finally select the latest release from step 1:

PR Compare Screen

The page will now automatically update with a list of PRs that are in AWX/devel but not in the last release.

PR Compare List

Select the next release version

Use this list of PRs to decide if this is a X-stream (major) release, Y-stream (minor) release, or a Z-stream (patch) release. Use semver to help determine what kind of release is needed.

Indicators of a Z-stream release:

  • No significant new features have been merged into devel since the last release.

Indicators of a Y-stream release:

  • Additional features, non disrupting change of subcomponents.

Indicators of an X-stream release:

  • Disruptive changes.

If the latest release of AWX is 19.5.0:

  • X-stream release version will be 20.0.0.
  • Y-stream release version will be 19.6.0.
  • Z-stream release version will be 19.5.1.

With very few exceptions the new AWX Operator release will always be a Y-stream release.

Stage the release

To stage the release, maintainers of this repository can run the Stage Release workflow.

The link above will take you directly to the flow execution; if you wanted to manually navigate to the screen:

  1. Click "Actions" at the top of GitHub.
  2. Click on the "Stage Release" workflow.

Once you are on the Stage Release workflow page:

  1. Click the "Run Workflow" drop down.
  2. Populate the inputs.
  3. Click the "Run workflow" button.

Staging AWX

This workflow will:

  • Build awx from devel
  • Build awx-operator from devel
  • Run smoke tests
  • Create a draft release for both ansible/awx and ansible/awx-operator

Promote the draft releases

Releasing AWX, awxkit and awx.awx collection

Once staging is complete we can complete the release of awx and the operator.

  1. navigate to the Releases page for AWX and verify things look ok. The changelog is automatically generated using the special comment in our Pull Request template.

  2. If things look ok, click the pencil icon on the draft:

Verify draft release

  1. Click "Publish Release":

Publish release

Once the release is published, another workflow called Promote Release will start running:

Promote release

This workflow will take the generated images and promote them to quay.io in addition it will also release awxkit and the awx.awx collection. The overall process will not take long.

  1. Once the workflow is finished, verify that the new image is present on the Repository Tags on Quay:

Verify released AWX image

  1. Go to the awx.awx collection on Ansible Galaxy and validate the latest version matches and was updated recently:

Verify release awx.awx collection

  1. Go to awxkit's page on PiPy and validate the latest release is there:

Verify awxkit

Releasing the AWX operator

Once the AWX image is live, we can now release the AWX operator.

  1. Navigate to the Releases page for AWX operator and follow the same process used for publishing the AWX draft.

Once published, the workflow Promote AWX Operator image will run:

Operator Promotion

This workflow will take the generated images and promote them to quay.io.

  1. Once complete, verify the image is on the awx-operator Quay repository:

Verify released awx-operator image

Notify the AWX mailing list and bullhorn

Send an email to the AWX Mailing List with a message format of type "AWX Release" from the mailing list triage standard replies

Send an IRC message over matrix to #social:ansible.com:

@newsbot We're happy to announce that AWX version 21.1.0 is now available! We're happy to announce that AWX Operator version 0.22.0 is now available!