Skip to content

Commit 655be18

Browse files
committed
chore(chart): add workflow to publish AutoMQ Software Helm chart to Docker Hub
1 parent a00ab9e commit 655be18

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Publish AutoMQ Software Chart
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: Helm chart version to pull (also used as image tag)
8+
required: true
9+
default: '5.2.0'
10+
11+
jobs:
12+
publish:
13+
name: Mirror Helm Chart
14+
runs-on: ubuntu-latest
15+
env:
16+
CHART_NAME: automq-enterprise
17+
SOURCE_CHART: oci://automq.azurecr.io/helm/automq-enterprise
18+
HELM_DESTINATION: oci://docker.io/automq
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v4
22+
23+
- name: Setup Helm
24+
uses: azure/setup-helm@v4
25+
26+
- name: Authenticate to source Helm registry
27+
if: ${{ secrets.AZURE_HELM_REGISTRY_USERNAME != '' && secrets.AZURE_HELM_REGISTRY_PASSWORD != '' }}
28+
env:
29+
HELM_USER: ${{ secrets.AZURE_HELM_REGISTRY_USERNAME }}
30+
HELM_PASSWORD: ${{ secrets.AZURE_HELM_REGISTRY_PASSWORD }}
31+
run: |
32+
echo "$HELM_PASSWORD" | helm registry login automq.azurecr.io --username "$HELM_USER" --password-stdin
33+
34+
- name: Pull AutoMQ Enterprise chart
35+
run: |
36+
helm pull "$SOURCE_CHART" --version "${{ inputs.version }}"
37+
38+
- name: Push chart to Docker Hub OCI registry
39+
env:
40+
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
41+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
42+
INPUT_VERSION: ${{ inputs.version }}
43+
run: |
44+
set -euo pipefail
45+
if [[ -z "$DOCKERHUB_USERNAME" || -z "$DOCKERHUB_TOKEN" ]]; then
46+
echo "Docker Hub credentials are required to push Helm chart" >&2
47+
exit 1
48+
fi
49+
chart_archive="$CHART_NAME-$INPUT_VERSION.tgz"
50+
if [[ ! -f "$chart_archive" ]]; then
51+
echo "Chart archive $chart_archive not found" >&2
52+
exit 1
53+
fi
54+
echo "$DOCKERHUB_TOKEN" | helm registry login docker.io --username "$DOCKERHUB_USERNAME" --password-stdin
55+
helm push "$chart_archive" "$HELM_DESTINATION"
56+
helm registry logout docker.io || true
57+
58+
- name: Logout from registries
59+
if: always()
60+
run: |
61+
helm registry logout automq.azurecr.io || true
62+
helm registry logout docker.io || true
63+
rm -f "$CHART_NAME-${{ inputs.version }}.tgz"

0 commit comments

Comments
 (0)