This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v2-3-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 0c106a47d0ce378abb6216981b99e05836d2dfb4 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) (cherry picked from commit 8ad18bf02924d1677502231e678951bc5b8cb420) --- .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 3d242ff9d4..98f3062134 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) @@ -486,7 +486,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 @@ -496,15 +496,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). @@ -957,8 +957,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
