From 27c147cc3c485ad65d185e46ef20f961ae112cd3 Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Tue, 3 Mar 2026 16:04:42 -0600 Subject: [PATCH] feat: add release for valkey --- .gitea/workflows/release-charts-valkey.yml | 128 +++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 .gitea/workflows/release-charts-valkey.yml diff --git a/.gitea/workflows/release-charts-valkey.yml b/.gitea/workflows/release-charts-valkey.yml new file mode 100644 index 0000000..5f83b58 --- /dev/null +++ b/.gitea/workflows/release-charts-valkey.yml @@ -0,0 +1,128 @@ +name: release-charts-valkey + +on: + push: + branches: + - main + paths: + - "charts/valkey/**" + + workflow_dispatch: + +env: + WORKFLOW_DIR: "charts/valkey" + +jobs: + release: + runs-on: ubuntu-js + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up Helm + uses: azure/setup-helm@v4 + with: + token: ${{ secrets.GITEA_TOKEN }} + version: v3.19.2 + + - name: Add Repositories + run: | + cd ${WORKFLOW_DIR} + + echo ">> Adding repositories for chart dependencies ..." + helm dependency list --max-col-width 120 2> /dev/null \ + | tail +2 | head -n -1 \ + | awk '{ print "helm repo add " $1 " " $3 }' \ + | while read cmd; do echo "$cmd" | sh; done || true + + if helm repo list | tail +2 | read -r; then + echo ">> Update repository cache ..." + helm repo update + fi + + echo "----" + + - name: Package Helm Chart + run: | + cd ${WORKFLOW_DIR} + + echo ">> Building helm dependency ..." + helm dependency build --skip-refresh --debug + + echo "----" + + echo "PACKAGE_PATH=$(helm package . | awk '{print $NF}')" >> $GITEA_ENV + + - name: Publish Helm Chart to Harbor + run: | + echo ">> Logging into Harbor ..." + helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }} --debug + + echo "" + echo ">> Publishing chart to Harbor ..." + helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts --debug + + echo "----" + + - name: Publish Helm Chart to Gitea + run: | + echo ">> Installing Chart Museum plugin ..." + helm plugin install https://github.com/chartmuseum/helm-push --debug + + echo "" + echo ">> Adding Gitea repository ..." + helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm --debug + + echo "" + echo ">> Pushing chart to gitea" + helm cm-push ${{ env.PACKAGE_PATH }} helm-charts --debug + + - name: Extract Chart Metadata + run: | + cd ${WORKFLOW_DIR} + + echo ">> Adding Chart metadata to workflow ENV ..." + echo "" + echo ">> Chart Version: $(yq '.version' Chart.yaml)" + echo ">> Chart Name: $(yq '.name' Chart.yaml)" + + echo "----" + + echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV + echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV + + - name: Release Helm Chart + uses: akkuman/gitea-release-action@v1 + with: + name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} + tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} + files: |- + ${{ env.PACKAGE_PATH }} + + - name: ntfy Success + uses: niniyas/ntfy-action@master + if: success() + with: + url: '${{ secrets.NTFY_URL }}' + topic: '${{ secrets.NTFY_TOPIC }}' + title: 'Release Success - ${{ env.CHART_NAME }}' + priority: 3 + headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}' + tags: action,successfully,completed + details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has been released!' + icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png' + + - name: ntfy Failed + uses: niniyas/ntfy-action@master + if: failure() + with: + url: '${{ secrets.NTFY_URL }}' + topic: '${{ secrets.NTFY_TOPIC }}' + title: 'Release Failure - ${{ env.CHART_NAME }}' + priority: 4 + headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}' + tags: action,failed + details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has failed to be released.' + icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png' + actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=release-charts-volsync-target.yml", "clear": true}]' + image: true