Refactoring release_process docs and updating images (#11981)
BIN
docs/img/compare-screen.png
Normal file
After Width: | Height: | Size: 235 KiB |
BIN
docs/img/galaxy.png
Normal file
After Width: | Height: | Size: 204 KiB |
BIN
docs/img/latest-release.png
Normal file
After Width: | Height: | Size: 404 KiB |
BIN
docs/img/operator-promote.png
Normal file
After Width: | Height: | Size: 214 KiB |
Before Width: | Height: | Size: 846 KiB After Width: | Height: | Size: 232 KiB |
BIN
docs/img/pypi.png
Normal file
After Width: | Height: | Size: 66 KiB |
@ -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)
|
||||
|