diff --git a/docs/img/compare-screen.png b/docs/img/compare-screen.png new file mode 100644 index 0000000000..4d65c5e888 Binary files /dev/null and b/docs/img/compare-screen.png differ diff --git a/docs/img/galaxy.png b/docs/img/galaxy.png new file mode 100644 index 0000000000..13db82f66f Binary files /dev/null and b/docs/img/galaxy.png differ diff --git a/docs/img/latest-release.png b/docs/img/latest-release.png new file mode 100644 index 0000000000..6e4e942e82 Binary files /dev/null and b/docs/img/latest-release.png differ diff --git a/docs/img/operator-promote.png b/docs/img/operator-promote.png new file mode 100644 index 0000000000..ce31c66d78 Binary files /dev/null and b/docs/img/operator-promote.png differ diff --git a/docs/img/promote-release.png b/docs/img/promote-release.png index 0456ee7c12..52f6a027af 100644 Binary files a/docs/img/promote-release.png and b/docs/img/promote-release.png differ diff --git a/docs/img/pypi.png b/docs/img/pypi.png new file mode 100644 index 0000000000..42166aa75b Binary files /dev/null and b/docs/img/pypi.png differ diff --git a/docs/release_process.md b/docs/release_process.md index 98853ae76d..915a1fa140 100644 --- a/docs/release_process.md +++ b/docs/release_process.md @@ -4,38 +4,59 @@ The release process for AWX is completely automated as of version 19.5.0. ## Get latest release version and list of new work -1. Get latest version of [AWX](https://github.com/ansible/awx/releases) -2. Get latest version of [AWX Operator](https://github.com/ansible/awx-operator/releases). -3. [Compare](https://github.com/ansible/awx/compare) `latest` against `devel` +1. Open the main project page for [AWX](https://github.com/ansible/awx/releases) and [AWX Operator](https://github.com/ansible/awx-operator/releases). -![Comparing Branches](img/compare_release_branch.png) +Find the latest releases of the projects on the right hand side of the screen: -The page will automatically update with a list of PRs that are in `AWX/devel` but not in `latest`. +![Latest Release](img/latest-release.png) + +2. Open the compare screen for the two projects [AWX](https://github.com/ansible/awx/compare) and [AWX Operator](https://github.com/ansible/awx-operator/compare). +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](img/compare-screen.png) + +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](img/pr_compare_list.png) -Use this list of PRs to decide if this is a Y-stream (minor) release, or a Z-stream release (patch). Use [semver](https://semver.org/#summary) to help determine what kind of release is needed. Indicators of a Z-stream release: +## 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](https://semver.org/#summary) 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. -## Staging the release +Indicators of a Y-stream release: -To stage the release, maintainers of this repository can run the [Stage Release](https://github.com/ansible/awx/blob/devel/.github/workflows/stage.yml) workflow. To start the workflow, follow this series of events: +- Additional features, non disrupting change of subcomponents. -1. Click "Actions" in the top nav bar on the repository -2. Click "Stage Release" in the left nav menu -3. Click the "Run workflow" dropdown -4. Populate the inputs. -5. Click the "Run workflow" button +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. -## For AWX-Operator release version: +## Stage the release + +To stage the release, maintainers of this repository can run the [Stage Release](https://github.com/ansible/awx/actions/workflows/stage.yml) 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: + +3. Click the "Run Workflow" drop down. +4. Populate the inputs. +5. Click the "Run workflow" button. ![Staging AWX](img/stage-release.png) @@ -46,26 +67,52 @@ This workflow will: - Run smoke tests - Create a draft release for both `ansible/awx` and `ansible/awx-operator` -Once complete, navigate to the [Releases page](https://github.com/ansible/awx/releases) for AWX and verify things look ok. The changelog is automatically generated using the [special comment in our Pull Request template](https://github.com/ansible/awx/commit/dc0cc0f910900c506fb6f6ce4366e0e0d1d0ee87). If things look ok, click the pencil icon on the draft: +## 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](https://github.com/ansible/awx/releases) for AWX and verify things look ok. The changelog is automatically generated using the [special comment in our Pull Request template](https://github.com/ansible/awx/commit/dc0cc0f910900c506fb6f6ce4366e0e0d1d0ee87). + +2. If things look ok, click the pencil icon on the draft: ![Verify draft release](img/verify-draft-release.png) -Next, click "Publish Release": +3. Click "Publish Release": ![Publish release](img/publish-release.png) -This will not take long. Once this is complete go to [AWX-Operator release page](https://github.com/ansible/awx-operator/releases) to verify and then publish the draft release following the same steps as above. - Once the release is published, another workflow called [Promote Release](https://github.com/ansible/awx/actions/workflows/promote.yml) will start running: ![Promote release](img/promote-release.png) -Once it finished, verify that the new image is present on the [Repository Tags](https://quay.io/repository/ansible/awx?tag=latest&tab=tags) on Quay: +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. + +4. Once the workflow is finished, verify that the new image is present on the [Repository Tags](https://quay.io/repository/ansible/awx?tag=latest&tab=tags) on Quay: ![Verify released AWX image](img/verify-released-awx-image.png) -Once the AWX image is live, go to the [Releases page for awx-operator](https://github.com/ansible/awx-operator/releases) and follow the same process to publish the release. Once published, the workflow [Promote AWX Operator image](https://github.com/ansible/awx-operator/actions/workflows/promote.yaml) will run. +5. Go to the awx.awx collection on [Ansible Galaxy](https://galaxy.ansible.com/awx/awx) and validate the latest version matches and was updated recently: -Once complete, verify the image is on the [awx-operator Quay repository](https://quay.io/repository/ansible/awx-operator?tab=tags): +![Verify release awx.awx collection](img/galaxy.png) + +6. Go to awxkit's page on [PiPy](https://pypi.org/project/awxkit/#history) and validate the latest release is there: + +![Verify awxkit](img/pypi.png) + +### Releasing the AWX operator + +Once the AWX image is live, we can now release the AWX operator. + +1. Navigate to the [Releases page](https://github.com/ansible/awx-operator/releases) for AWX operator and follow the same process used for publishing the AWX draft. + +Once published, the workflow [Promote AWX Operator image](https://github.com/ansible/awx-operator/actions/workflows/promote.yaml) will run: + +![Operator Promotion](img/operator-promote.png) + +This workflow will take the generated images and promote them to quay.io. + +2. Once complete, verify the image is on the [awx-operator Quay repository](https://quay.io/repository/ansible/awx-operator?tab=tags): ![Verify released awx-operator image](img/verify-released-awx-operator-image.png)