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 64875d3eb95 Fix helm release process (#64040)
64875d3eb95 is described below
commit 64875d3eb95ef643295cd60381f88f68a05768c2
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Mar 21 20:47:00 2026 +0100
Fix helm release process (#64040)
* Fix helm release process
* Fix CI helm checks, remove version number param
* Remove rc preparation test as not existing anymore
---------
Co-authored-by: Jens Scheffler <[email protected]>
---
.github/workflows/helm-tests.yml | 6 +-
chart/Chart.yaml | 2 +-
dev/README_RELEASE_HELM_CHART.md | 47 +++---
...lease-management_prepare-helm-chart-package.svg | 28 ++--
...lease-management_prepare-helm-chart-package.txt | 2 +-
.../commands/release_management_commands.py | 167 ++++++++-------------
.../commands/release_management_commands_config.py | 1 -
7 files changed, 98 insertions(+), 155 deletions(-)
diff --git a/.github/workflows/helm-tests.yml b/.github/workflows/helm-tests.yml
index 33eac7c0ed5..5af7e3dab4d 100644
--- a/.github/workflows/helm-tests.yml
+++ b/.github/workflows/helm-tests.yml
@@ -127,17 +127,13 @@ jobs:
- name: "Helm release tarball"
run: >
breeze release-management prepare-helm-chart-tarball
--ignore-version-check --override-tag
- --skip-tag-signing --version 0.0.0 --version-suffix dev0
+ --skip-tag-signing --version-suffix dev0
- name: Generate GPG key for signing
# Sometimes the key will be already added to the keyring, so we ignore
the error
run: gpg --batch --passphrase '' --quick-gen-key
[email protected] default default || true
- name: "Helm release package"
run: >
breeze release-management prepare-helm-chart-package --sign-email
[email protected]
- - name: "Helm release package (RC version)"
- run: >
- breeze release-management prepare-helm-chart-package --sign-email
[email protected]
- --version-suffix rc1
- name: "Sign artifacts for ASF distribution"
run: ./dev/sign.sh dist/airflow-*.tgz dist/airflow-*-source.tar.gz
env:
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 441e4d75d0c..030b51a9add 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -19,7 +19,7 @@
---
apiVersion: v2
name: airflow
-version: 1.20.0-dev
+version: 1.20.0
appVersion: 3.1.8
description: The official Helm chart to deploy Apache Airflow, a platform to
programmatically author, schedule, and monitor workflows
diff --git a/dev/README_RELEASE_HELM_CHART.md b/dev/README_RELEASE_HELM_CHART.md
index 544bdd82df3..c68feb58843 100644
--- a/dev/README_RELEASE_HELM_CHART.md
+++ b/dev/README_RELEASE_HELM_CHART.md
@@ -37,7 +37,7 @@
- [Licence check](#licence-check)
- [Signature check](#signature-check)
- [SHA512 sum check](#sha512-sum-check)
-- [Verify release candidates by
Contributors](#verify-release-candidates-by-contributors)
+- [Verify the release candidates by
Contributors](#verify-the-release-candidates-by-contributors)
- [Publish the final release](#publish-the-final-release)
- [Summarize the voting for the
release](#summarize-the-voting-for-the-release)
- [Publish release to SVN](#publish-release-to-svn)
@@ -223,7 +223,7 @@ rm -rf dist/*
- Generate the source tarball:
```shell
-breeze release-management prepare-helm-chart-tarball --version ${VERSION}
--version-suffix ${VERSION_SUFFIX}
+breeze release-management prepare-helm-chart-tarball --version ${VERSION}
```
Note: The version suffix is only used for the RC tag and tag message. The
version in the tarball is without the suffix, so the tarball can be released
as-is when the vote passes.
@@ -313,31 +313,17 @@ you need to run several workflows to publish the
documentation. More details abo
[Docs README](../docs/README.md) showing the architecture and workflows
including manual workflows for
emergency cases.
-There are two steps to publish the documentation:
-1. Publish the documentation to the `staging` S3 bucket.
-
-The release manager publishes the documentation using GitHub Actions workflow
-[Publish Docs to
S3](https://github.com/apache/airflow/actions/workflows/publish-docs-to-s3.yml).
-
-You can specify the RC tag to use to build the docs and 'helm-chart' passed as
packages to be built.
-
-The release manager publishes the documentation using GitHub Actions workflow
-[Publish Docs to
S3](https://github.com/apache/airflow/actions/workflows/publish-docs-to-s3.yml).
By
-default `auto` selection should publish to the `staging` bucket - based on
-the tag you use - pre-release tags go to staging. But you can also override it
and specify the destination
-manually to be `live` or `staging`.
-
-After that step, the provider documentation should be available under the
https://airflow.staged.apache.org
-(same as in the helm chart documentation).
-
-2. Invalidate Fastly cache for the documentation.
+You should use the `breeze` command to publish the documentation.
+The command does the following:
-In order to do it, you need to run the [Build
docs](https://github.com/apache/airflow-site/actions/workflows/build.yml)
-workflow in `airflow-site` repository. Make sure to use `staging` branch.
+1. Triggers [Publish Docs to
S3](https://github.com/apache/airflow/actions/workflows/publish-docs-to-s3.yml).
+2. Triggers workflow in apache/airflow-site to refresh
+3. Triggers S3 to GitHub Sync
-After that workflow completes, the new version should be available in the
drop-down list and stable links
-should be updated and Fastly cache should be invalidated.
+```shell script
+breeze workflow-run publish-docs --ref helm-chart/${VERSION}${VERSION_SUFFIX}
--site-env staging helm-chart
+```
## Prepare issue for testing status of rc
@@ -406,6 +392,8 @@ gpg: using RSA key
E1A1E984F55B8F280BD9CBA20BB7163892A2E48E
gpg: Good signature from "Jed Cunningham <[email protected]>" [ultimate]
plugin: Chart SHA verified.
sha256:b33eac716e0416a18af89fb4fa1043fcfcf24f9f903cda3912729815213525df
+The documentation is available at
https://airflow.staged.apache.org/helm-chart/${VERSION}/.
+
The vote will be open for at least 72 hours ($VOTE_END_TIME UTC) or until the
necessary number of votes is reached.
https://www.timeanddate.com/countdown/$TIME_DATE_URL
@@ -419,6 +407,12 @@ Please vote accordingly:
Only votes from PMC members are binding, but members of the community are
encouraged to test the release and vote with "(non-binding)".
+The test procedure for PMC members is described in:
+https://github.com/apache/airflow/blob/main/dev/README_RELEASE_HELM_CHART.md#verify-the-release-candidate-by-pmc-members
+
+The test procedure for contributors and members of the community who would
like to test this RC is described in:
+https://github.com/apache/airflow/blob/main/dev/README_RELEASE_HELM_CHART.md#verify-the-release-candidates-by-contributors
+
Consider this my (binding) +1.
For license checks, the .rat-excludes files is included, so you can run the
following to verify licenses (just update your path to rat):
@@ -432,6 +426,7 @@ simply ${VERSION}. This will allow us to rename the
artifact without modifying
the artifact checksums when we actually release it.
The status of testing the Helm Chart by the community is kept here:
+
<TODO COPY LINK TO THE ISSUE CREATED>
Thanks,
@@ -697,7 +692,7 @@ Checking airflow-1.0.0.tgz.sha512
Checking airflow-chart-1.0.0-source.tar.gz.sha512
```
-# Verify release candidates by Contributors
+# Verify the release candidates by Contributors
Contributors can run below commands to test the Helm Chart
@@ -986,7 +981,7 @@ EOF
## Bump chart version in Chart.yaml
Bump the chart version to the next version in `chart/Chart.yaml` in main.
-
+Do not add `-dev` suffix to the version.
## Remove old releases
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.svg
b/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.svg
index 902f073af9c..40f0f7ba865 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 416.0"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 367.2"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-helm-chart-package-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="365.0" />
+ <rect x="0" y="0" width="1463.0" height="316.2" />
</clipPath>
<clipPath id="breeze-release-management-prepare-helm-chart-package-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -81,15 +81,9 @@
<clipPath id="breeze-release-management-prepare-helm-chart-package-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-release-management-prepare-helm-chart-package-line-12">
- <rect x="0" y="294.3" width="1464" height="24.65"/>
- </clipPath>
-<clipPath id="breeze-release-management-prepare-helm-chart-package-line-13">
- <rect x="0" y="318.7" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="414" rx="8"/><text
class="breeze-release-management-prepare-helm-chart-package-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-helm-chart-package</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="365.2" rx="8"/><text
class="breeze-release-management-prepare-helm-chart-package-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-helm-chart-package</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -105,15 +99,13 @@
</text><text class="breeze-release-management-prepare-helm-chart-package-r1"
x="12.2" y="93.2" textLength="341.6"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-3)">Prepares helm chart package.</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="1464"
y="93.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-3)">
</text><text class="breeze-release-management-prepare-helm-chart-package-r1"
x="1464" y="117.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-4)">
</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="142" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-5)">╭─</text><text
class="breeze-release-management-prepare-helm-chart-package-r5" x="24.4"
y="142" textLength="183"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-5)"> Package flags </text><text
class="breeze-release-management-prepare-helm-chart-package-r5" x="207. [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-6)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="166.4" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-6)">--sign-email    </text><text
class="breeze-release-management-prepare-helm-chart-package- [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="190.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-7)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="190.8" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-7)">--version-suffix</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="244"
y="190.8 [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-8)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="244"
y="215.2" textLength="341.6"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-8)">replaced with staging URLs. </text><text
class="breeze-release-management-prepare-helm-cha [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="239.6" textLength="1464"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-9)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="1464"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package- [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="264" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-10)">╭─</text><text
class="breeze-release-management-prepare-helm-chart-package-r5" x="24.4"
y="264" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-10)"> Common options </text><text
class="breeze-release-management-prepare-helm-chart-package-r5" x= [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-11)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="288.4" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-11)">--dry-run</text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158.6"
y="288.4" t [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-12)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="312.8" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-12)">--verbose</text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158.6"
y="312.8" t [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-13)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="337.2" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-13)">--help   </text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158 [...]
-</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="361.6" textLength="1464"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-14)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="1464"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-6)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="166.4" textLength="146.4"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-6)">--sign-email</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="195.2"
y="166.4" [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="190.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="1464"
y="190.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package- [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="215.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-8)">╭─</text><text
class="breeze-release-management-prepare-helm-chart-package-r5" x="24.4"
y="215.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-8)"> Common options </text><text
class="breeze-release-management-prepare-helm-chart-package-r5" [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-9)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="239.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-9)">--dry-run</text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158.6"
y="239.6" tex [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="264" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-10)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="264" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-10)">--verbose</text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158.6"
y="264" textLen [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-11)">│</text><text
class="breeze-release-management-prepare-helm-chart-package-r4" x="24.4"
y="288.4" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-11)">--help   </text><text
class="breeze-release-management-prepare-helm-chart-package-r7" x="158 [...]
+</text><text class="breeze-release-management-prepare-helm-chart-package-r5"
x="0" y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-helm-chart-package-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-helm-chart-package-r1" x="1464"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-helm-chart-package [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.txt
b/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.txt
index 49615630692..675e69663de 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.txt
@@ -1 +1 @@
-d9b69ae7ff5d8bea95a845f44acab92c
+535e58ad4fd6139c86bd3b89fcec1964
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index 89d6437f635..8b86de4c394 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -3826,26 +3826,21 @@ def prepare_helm_chart_tarball(
values_content = yaml.safe_load(VALUES_YAML_FILE.read_text())
airflow_version_in_values = values_content["airflowVersion"]
default_airflow_tag_in_values = values_content["defaultAirflowTag"]
+ from packaging.version import Version
- # Check if this is an RC version and replace documentation links with
staging URLs
- is_rc_version = version_suffix and "rc" in version_suffix.lower()
- if is_rc_version:
+ if Version(version_in_chart).is_prerelease:
console_print(
- f"[info]RC version detected ({version_suffix}). Replacing
documentation links with staging URLs.[/]"
- )
- # Replace production URLs with staging URLs for RC versions
- chart_yaml_file_content = chart_yaml_file_content.replace(
- "https://airflow.apache.org/", "https://airflow.staged.apache.org/"
+ f"[error]Version in Chart.yaml ({version_in_chart}) is a
pre-release version. "
+ f"It should be final. Please remove the pre-release suffix commit
and merge.[/]"
)
- console_print("[success]Documentation links updated to staging
environment for RC version.[/]")
+ sys.exit(1)
if ignore_version_check:
if not version:
version = version_in_chart
else:
- if not version or not version_suffix:
+ if not version:
console_print(
- "[error]You need to provide --version and --version-suffix
parameter unless you "
- "use --ignore-version-check[/]"
+ "[error]You need to provide --version parameter unless you use
--ignore-version-check[/]"
)
sys.exit(1)
console_print(f"[info]Airflow version in values.yaml:
{airflow_version_in_values}[/]")
@@ -3860,13 +3855,10 @@ def prepare_helm_chart_tarball(
updating = False
if version_in_chart != version:
console_print(
- f"[warning]Version in chart.yaml ({version_in_chart}) does not
match the version "
- f"passed as parameter ({version}). Updating[/]"
- )
- updating = True
- chart_yaml_file_content = chart_yaml_file_content.replace(
- f"version: {version_in_chart}", f"version: {version}"
+ f"[error]Version in chart.yaml ({version_in_chart}) does not match
the version "
+ f"passed as parameter ({version}). Quitting[/]"
)
+ sys.exit(1)
else:
console_print(f"[success]Version in chart.yaml is good: {version}[/]")
if airflow_version_in_values != airflow_version_in_chart:
@@ -3967,15 +3959,9 @@ def prepare_helm_chart_tarball(
envvar="SIGN_EMAIL",
default="",
)
[email protected](
- "--version-suffix",
- help="Version suffix used to determine if RC version. For RC versions,
documentation links will be replaced with staging URLs.",
- default="",
- envvar="VERSION_SUFFIX",
-)
@option_dry_run
@option_verbose
-def prepare_helm_chart_package(sign_email: str, version_suffix: str):
+def prepare_helm_chart_package(sign_email: str):
import yaml
from airflow_breeze.utils.kubernetes_utils import (
@@ -3984,96 +3970,71 @@ def prepare_helm_chart_package(sign_email: str,
version_suffix: str):
sync_virtualenv,
)
- # Check if this is an RC version and temporarily replace documentation
links
- chart_yaml_backup = None
- is_rc_version = version_suffix and "rc" in version_suffix.lower()
-
- if is_rc_version:
- console_print(
- f"[info]RC version detected ({version_suffix}). Temporarily
replacing documentation links with staging URLs for packaging.[/]"
- )
- # Backup original content
- chart_yaml_backup = CHART_YAML_FILE.read_text()
- # Replace production URLs with staging URLs for RC versions
- chart_yaml_content = chart_yaml_backup.replace(
- "https://airflow.apache.org/", "https://airflow.staged.apache.org/"
- )
- CHART_YAML_FILE.write_text(chart_yaml_content)
+ chart_yaml_dict = yaml.safe_load(CHART_YAML_FILE.read_text())
+ version = chart_yaml_dict["version"]
+ result = sync_virtualenv(force_venv_setup=False)
+ if result.returncode != 0:
+ sys.exit(result.returncode)
+ make_sure_helm_installed()
+ console_print(f"[info]Packaging the chart for Helm Chart {version}[/]")
+ k8s_env = os.environ.copy()
+ k8s_env["PATH"] = str(K8S_BIN_BASE_PATH) + os.pathsep + k8s_env["PATH"]
+ # Tar on modern unix options requires --wildcards parameter to work with
globs
+ # See https://github.com/technosophos/helm-gpg/issues/1
+ k8s_env["TAR_OPTIONS"] = "--wildcards"
+ archive_name = f"airflow-{version}.tgz"
+ OUT_PATH.mkdir(parents=True, exist_ok=True)
+ result = run_command(
+ cmd=["helm", "package", "chart", "--dependency-update",
"--destination", OUT_PATH.as_posix()],
+ env=k8s_env,
+ check=False,
+ )
+ if result.returncode != 0:
+ console_print("[error]Error packaging the chart[/]")
+ sys.exit(result.returncode)
+ AIRFLOW_DIST_PATH.mkdir(parents=True, exist_ok=True)
+ final_archive = AIRFLOW_DIST_PATH / archive_name
+ final_archive.unlink(missing_ok=True)
+ source_archive = OUT_PATH / archive_name
+ result = repack_deterministically(
+ source_archive=source_archive,
+ dest_archive=final_archive,
+ prepend_path=None,
+ timestamp=get_source_date_epoch(CHART_DIR),
+ )
+ if result.returncode != 0:
console_print(
- "[success]Documentation links temporarily updated to staging
environment for RC version packaging.[/]"
+ f"[error]Error repackaging package for Helm Chart from
{source_archive} to {final_archive}[/]"
)
-
- try:
- chart_yaml_dict = yaml.safe_load(CHART_YAML_FILE.read_text())
- version = chart_yaml_dict["version"]
- result = sync_virtualenv(force_venv_setup=False)
- if result.returncode != 0:
- sys.exit(result.returncode)
- make_sure_helm_installed()
- console_print(f"[info]Packaging the chart for Helm Chart {version}[/]")
- k8s_env = os.environ.copy()
- k8s_env["PATH"] = str(K8S_BIN_BASE_PATH) + os.pathsep + k8s_env["PATH"]
- # Tar on modern unix options requires --wildcards parameter to work
with globs
- # See https://github.com/technosophos/helm-gpg/issues/1
- k8s_env["TAR_OPTIONS"] = "--wildcards"
- archive_name = f"airflow-{version}.tgz"
- OUT_PATH.mkdir(parents=True, exist_ok=True)
+ sys.exit(result.returncode)
+ else:
+ console_print(f"[success]Package created in {final_archive}[/]")
+ if sign_email:
+ console_print(f"[info]Signing the package with {sign_email}[/]")
+ prov_file = final_archive.with_suffix(".tgz.prov")
+ if prov_file.exists():
+ console_print(f"[warning]Removing existing {prov_file}[/]")
+ prov_file.unlink()
result = run_command(
- cmd=["helm", "package", "chart", "--dependency-update",
"--destination", OUT_PATH.as_posix()],
+ cmd=["helm", "gpg", "sign", "-u", sign_email, archive_name],
+ cwd=AIRFLOW_DIST_PATH.as_posix(),
env=k8s_env,
check=False,
)
if result.returncode != 0:
- console_print("[error]Error packaging the chart[/]")
+ console_print("[error]Error signing the chart[/]")
sys.exit(result.returncode)
- AIRFLOW_DIST_PATH.mkdir(parents=True, exist_ok=True)
- final_archive = AIRFLOW_DIST_PATH / archive_name
- final_archive.unlink(missing_ok=True)
- source_archive = OUT_PATH / archive_name
- result = repack_deterministically(
- source_archive=source_archive,
- dest_archive=final_archive,
- prepend_path=None,
- timestamp=get_source_date_epoch(CHART_DIR),
+ result = run_command(
+ cmd=["helm", "gpg", "verify", archive_name],
+ cwd=AIRFLOW_DIST_PATH.as_posix(),
+ env=k8s_env,
+ check=False,
)
if result.returncode != 0:
- console_print(
- f"[error]Error repackaging package for Helm Chart from
{source_archive} to {final_archive}[/]"
- )
+ console_print("[error]Error signing the chart[/]")
sys.exit(result.returncode)
else:
- console_print(f"[success]Package created in {final_archive}[/]")
- if sign_email:
- console_print(f"[info]Signing the package with {sign_email}[/]")
- prov_file = final_archive.with_suffix(".tgz.prov")
- if prov_file.exists():
- console_print(f"[warning]Removing existing {prov_file}[/]")
- prov_file.unlink()
- result = run_command(
- cmd=["helm", "gpg", "sign", "-u", sign_email, archive_name],
- cwd=AIRFLOW_DIST_PATH.as_posix(),
- env=k8s_env,
- check=False,
- )
- if result.returncode != 0:
- console_print("[error]Error signing the chart[/]")
- sys.exit(result.returncode)
- result = run_command(
- cmd=["helm", "gpg", "verify", archive_name],
- cwd=AIRFLOW_DIST_PATH.as_posix(),
- env=k8s_env,
- check=False,
- )
- if result.returncode != 0:
- console_print("[error]Error signing the chart[/]")
- sys.exit(result.returncode)
- else:
- console_print(f"[success]Chart signed - the {prov_file} file
created.[/]")
- finally:
- # Restore original Chart.yaml content if it was modified for RC version
- if is_rc_version and chart_yaml_backup:
- CHART_YAML_FILE.write_text(chart_yaml_backup)
- console_print("[info]Restored original Chart.yaml content after
packaging.[/]")
+ console_print(f"[success]Chart signed - the {prov_file} file
created.[/]")
def generate_issue_content(
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index 87f0419f018..e6a1fbfa9bf 100644
---
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -136,7 +136,6 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"name": "Package flags",
"options": [
"--sign-email",
- "--version-suffix",
],
}
],