chore(chart): add workflow to publish AutoMQ Software Helm chart to D… #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish AutoMQ Software Chart | ||
|
Check failure on line 1 in .github/workflows/publish-automq-software-chart.yml
|
||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| version: | ||
| description: Helm chart version to pull (also used as image tag) | ||
| required: true | ||
| default: '5.2.0' | ||
| jobs: | ||
| publish: | ||
| name: Mirror Helm Chart | ||
| runs-on: ubuntu-latest | ||
| env: | ||
| CHART_NAME: automq-enterprise | ||
| SOURCE_CHART: oci://automq.azurecr.io/helm/automq-enterprise | ||
| HELM_DESTINATION: oci://docker.io/automq | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| - name: Setup Helm | ||
| uses: azure/setup-helm@v4 | ||
| - name: Authenticate to source Helm registry | ||
| if: ${{ secrets.AZURE_HELM_REGISTRY_USERNAME != '' && secrets.AZURE_HELM_REGISTRY_PASSWORD != '' }} | ||
| env: | ||
| HELM_USER: ${{ secrets.AZURE_HELM_REGISTRY_USERNAME }} | ||
| HELM_PASSWORD: ${{ secrets.AZURE_HELM_REGISTRY_PASSWORD }} | ||
| run: | | ||
| echo "$HELM_PASSWORD" | helm registry login automq.azurecr.io --username "$HELM_USER" --password-stdin | ||
| - name: Pull AutoMQ Enterprise chart | ||
| run: | | ||
| helm pull "$SOURCE_CHART" --version "${{ inputs.version }}" | ||
| - name: Push chart to Docker Hub OCI registry | ||
| env: | ||
| DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | ||
| DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} | ||
| INPUT_VERSION: ${{ inputs.version }} | ||
| run: | | ||
| set -euo pipefail | ||
| if [[ -z "$DOCKERHUB_USERNAME" || -z "$DOCKERHUB_TOKEN" ]]; then | ||
| echo "Docker Hub credentials are required to push Helm chart" >&2 | ||
| exit 1 | ||
| fi | ||
| chart_archive="$CHART_NAME-$INPUT_VERSION.tgz" | ||
| if [[ ! -f "$chart_archive" ]]; then | ||
| echo "Chart archive $chart_archive not found" >&2 | ||
| exit 1 | ||
| fi | ||
| echo "$DOCKERHUB_TOKEN" | helm registry login docker.io --username "$DOCKERHUB_USERNAME" --password-stdin | ||
| helm push "$chart_archive" "$HELM_DESTINATION" | ||
| helm registry logout docker.io || true | ||
| - name: Logout from registries | ||
| if: always() | ||
| run: | | ||
| helm registry logout automq.azurecr.io || true | ||
| helm registry logout docker.io || true | ||
| rm -f "$CHART_NAME-${{ inputs.version }}.tgz" | ||