This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 8ad18bf029 Improve production image release workflow (#24481)
8ad18bf029 is described below
commit 8ad18bf02924d1677502231e678951bc5b8cb420
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu Jun 16 10:50:19 2022 +0200
Improve production image release workflow (#24481)
Few improvements:
* direct link to workflow in the docs
* "green" success screenshots (separate screenshot for rc)
* job and step names contain both Airflow version and python version
* running subsequent build with same version will cancel past
in-progress build (in case you quickly make constraint fis for
example and re-run)
---
.github/workflows/release_dockerhub_image.yml | 13 +++++++++----
dev/README_RELEASE_AIRFLOW.md | 18 +++++++++---------
dev/images/release_prod_image.png | Bin 112569 -> 76309 bytes
dev/images/release_prod_image_rc.png | Bin 0 -> 65816 bytes
4 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/release_dockerhub_image.yml
b/.github/workflows/release_dockerhub_image.yml
index bd9fdaec1e..a6c3e86ddd 100644
--- a/.github/workflows/release_dockerhub_image.yml
+++ b/.github/workflows/release_dockerhub_image.yml
@@ -16,7 +16,7 @@
# under the License.
#
---
-name: "Release PROD image"
+name: "Release PROD images"
on: # yamllint disable-line rule:truthy
workflow_dispatch:
inputs:
@@ -27,6 +27,9 @@ on: # yamllint disable-line rule:truthy
description: 'Skip Latest: Set to true if not latest.'
default: ''
required: false
+concurrency:
+ group: ${{ github.event.inputs.airflowVersion }}
+ cancel-in-progress: true
jobs:
build-info:
timeout-minutes: 10
@@ -53,7 +56,7 @@ jobs:
run: ./scripts/ci/selective_ci_checks.sh
release-images:
timeout-minutes: 120
- name: "Release images"
+ name: "Release images: ${{ github.event.inputs.airflowVersion }}, ${{
matrix.python-version }}"
runs-on: ${{ github.repository == 'apache/airflow' && 'self-hosted' ||
'ubuntu-20.04' }}
needs: [build-info]
strategy:
@@ -98,7 +101,8 @@ jobs:
run: >
echo ${{ secrets.DOCKERHUB_TOKEN }} |
docker login --password-stdin --username ${{ secrets.DOCKERHUB_USER
}}
- - name: "Release regular images"
+ - name: >
+ Release regular images: ${{ github.event.inputs.airflowVersion }},
${{ matrix.python-version }}
run: >
breeze release-prod-images
--dockerhub-repo ${{ github.repository }}
@@ -106,7 +110,8 @@ jobs:
${{ needs.build-info.outputs.skipLatest }}
${{ needs.build-info.outputs.limitPlatform }}
--limit-python ${{ matrix.python-version }}
- - name: "Release slim images"
+ - name: >
+ Release slim images: ${{ github.event.inputs.airflowVersion }}, ${{
matrix.python-version }}
run: >
breeze release-prod-images
--dockerhub-repo ${{ github.repository }}
diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md
index 5a785ff7df..7e2cc8da83 100644
--- a/dev/README_RELEASE_AIRFLOW.md
+++ b/dev/README_RELEASE_AIRFLOW.md
@@ -27,7 +27,7 @@
- [Build RC artifacts](#build-rc-artifacts)
- [[\Optional\] Prepare new release branches and
cache](#%5Coptional%5C-prepare-new-release-branches-and-cache)
- [Prepare PyPI convenience "snapshot"
packages](#prepare-pypi-convenience-snapshot-packages)
- - [Prepare production Docker Image](#prepare-production-docker-image)
+ - [Prepare production Docker Image RC](#prepare-production-docker-image-rc)
- [Prepare issue for testing status of
rc](#prepare-issue-for-testing-status-of-rc)
- [Prepare Vote email on the Apache Airflow release
candidate](#prepare-vote-email-on-the-apache-airflow-release-candidate)
- [Verify the release candidate by PMCs](#verify-the-release-candidate-by-pmcs)
@@ -487,7 +487,7 @@ is not supposed to be used by and advertised to the
end-users who do not read th
git push origin tag ${VERSION}
```
-## Prepare production Docker Image
+## Prepare production Docker Image RC
Production Docker images should be manually prepared and pushed by the release
manager or another committer
who has access to Airflow's DockerHub. Note that we started releasing a
multi-platform build, so you need
@@ -497,15 +497,15 @@ to have an environment prepared to build multi-platform
images. You can achieve
* Emulation (very slow)
* Hardware builders if you have both AMD64 and ARM64 hardware locally
-Building the image is triggered by running the `Release PROD image` workflow
via
-[GitHub Actions](https://github.com/apache/airflow/actions).
+Building the image is triggered by running the
+[Release PROD
Images](https://github.com/apache/airflow/actions/workflows/release_dockerhub_image.yml)
workflow.
When you trigger it you need to pass:
-* Airflow Version
-* Optional "true" in skip latest field if you do not want to retag the latest
image
+* Airflow Version (including the right rc suffix)
+* Optional "true" in the "Skip latest:" field if you do not want to re-tag the
latest image
-
+
The manual building is described in
[MANUALLY_BUILDING_IMAGES.md](MANUALLY_BUILDING_IMAGES.md).
@@ -958,8 +958,8 @@ At this point we release an official package:
## Manually prepare production Docker Image
-Building the image is triggered by running the `Release PROD image` workflow
via
-[GitHub Actions](https://github.com/apache/airflow/actions).
+Building the image is triggered by running the
+[Release PROD
Images](https://github.com/apache/airflow/actions/workflows/release_dockerhub_image.yml)
workflow.
When you trigger it you need to pass:
diff --git a/dev/images/release_prod_image.png
b/dev/images/release_prod_image.png
index 78f941a43b..50336e5194 100644
Binary files a/dev/images/release_prod_image.png and
b/dev/images/release_prod_image.png differ
diff --git a/dev/images/release_prod_image_rc.png
b/dev/images/release_prod_image_rc.png
new file mode 100644
index 0000000000..c88b1285c8
Binary files /dev/null and b/dev/images/release_prod_image_rc.png differ