Skip to content

Comments

feat(release): include container images and deployment artifacts in release#4219

Open
bobbai00 wants to merge 11 commits intoapache:mainfrom
bobbai00:feat/improve-release-compliance
Open

feat(release): include container images and deployment artifacts in release#4219
bobbai00 wants to merge 11 commits intoapache:mainfrom
bobbai00:feat/improve-release-compliance

Conversation

@bobbai00
Copy link
Contributor

@bobbai00 bobbai00 commented Feb 15, 2026

What changes were proposed in this PR?

This PR adds Docker Compose and Helm chart as signed binary release artifacts alongside the source tarball, following the Apache Flink Kubernetes Operator release model. This ensures the release contains everything a new user needs to get started.

After this change, the release directory will contain:

dist.apache.org/repos/dist/dev/incubator/texera/VERSION-RCN/
  apache-texera-VERSION-src.tar.gz              + .asc + .sha512   (source code)
  apache-texera-VERSION-docker-compose.tar.gz   + .asc + .sha512   (Docker Compose bundle)
  apache-texera-VERSION-helm.tgz                + .asc + .sha512   (Helm chart)

Container images are published to ghcr.io/apache/texera-* as convenience binaries built from the voted-on source. The Docker Compose bundle and Helm chart reference these images with pinned version tags, so a new user can download one artifact and run docker compose up -d to get Texera running.

Key changes:

  • Parameterize image references in docker-compose.yml and Helm values.yaml with IMAGE_REGISTRY / IMAGE_TAG variables (defaults to ghcr.io/apache / latest)
  • Update build-and-push-images workflow to support both ghcr.io (via GITHUB_TOKEN) and Docker Hub
  • Extend create-release-candidate workflow to produce three signed artifacts:
    • Source tarball (existing)
    • Docker Compose deployment bundle (new)
    • Helm chart package (new)
  • Update vote email template with container image references and deployment verification checklist

Any related issues, documentation, discussions?

Closes #4218

How was this PR tested?

  • Verified all modified YAML files are syntactically valid
  • Verified with docker-compose command and running the actions on my own fork

Was this PR authored or co-authored using generative AI tooling?

Yes, co-authored with Claude Code (Claude Opus 4.6).

@github-actions github-actions bot added feature ci changes related to CI docs Changes related to documentations build labels Feb 15, 2026
@chenlica chenlica requested a review from aicam February 15, 2026 17:39
@bobbai00 bobbai00 self-assigned this Feb 16, 2026
@bobbai00 bobbai00 requested a review from parshimers February 17, 2026 08:40
Copy link
Member

@parshimers parshimers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great. Something I wish we had for AsterixDB!

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

- name: Log in to GitHub Container Registry
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the safe way to do this, right? So the build can't see these secrets?

bobbai00 and others added 10 commits February 20, 2026 09:00
- Parameterize Docker Compose and Helm chart image references with
  configurable registry and tag (defaults to ghcr.io/apache:latest)
- Update build-and-push-images workflow to support both ghcr.io and
  Docker Hub via conditional login
- Extend release candidate workflow to produce three signed artifacts:
  source tarball, Docker Compose bundle, and Helm chart package
- Docker Compose bundle includes pinned .env with release version
- Helm chart package includes release-versioned Chart.yaml and values
- Update vote email template to list container images and new checklist
  items for deployment verification

This follows the Apache Flink Kubernetes Operator release model where
deployment descriptors are voted-on binary artifacts alongside source.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the image_tag input is left empty in the build-and-push-images
workflow, it now resolves to the short commit hash (7 chars) of the
selected branch via the GitHub API. This provides traceability without
requiring manual tag entry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The gh API call to resolve commit hash needs GH_TOKEN set in the
step environment to authenticate in GitHub Actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…bundle

The git archive pipe to tar needs the target directory to exist.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Helm chart files/ directory has symlinks to ../../../sql/ which
break when extracted in isolation. Now extract sql/ alongside the
chart and resolve symlinks to real files before helm package.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The chart dependency tarballs (postgresql, minio, etc.) are gitignored,
so they're missing from git archive output. Run helm dependency build
to download them before helm package.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the tagged source predates the parameterization changes, the .env
file won't have IMAGE_REGISTRY or IMAGE_TAG lines. Now appends them
instead of silently matching nothing with sed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Check the remote SVN URL (not local working copy) to determine if the
RC directory already exists. If it does, check it out instead of trying
to create and add it, which would fail with E160020.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Docker Compose .env and Helm values.yaml now use the short commit
hash (e.g., 77aeddb) as the image tag instead of the version string,
matching the convention used by the build-and-push-images workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bobbai00 bobbai00 force-pushed the feat/improve-release-compliance branch from 39ce936 to cc469a0 Compare February 20, 2026 17:03
Remove unused top-level env var and redundant latest tag logic in
build-and-push-images.yml. Remove unused ARCHIVE_DIR variable in
create-release-candidate.yml. Fix heredoc indentation to avoid
breaking GitHub's YAML parser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build ci changes related to CI docs Changes related to documentations feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include container images and deployment artifacts in Apache release

2 participants