| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- name: Helm Release
- on:
- release:
- types: [published]
- branches:
- - main
- - nightly
- push:
- branches:
- - nightly
- - main
- paths:
- - "functions/kubernetes/charts/**"
- workflow_dispatch:
- permissions:
- contents: read
- packages: write
- jobs:
- main:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Setup Helm
- uses: azure/setup-helm@v4
- with:
- version: v3.18.4 # I run it locally so I know it works :b
- - name: Verify Helm
- run: helm version
- - name: Set versions
- run: |
- if [[ ${{ github.event_name }} == 'release' ]]; then
- TAG_NAME="${{ github.event.release.tag_name }}"
- # Remove the v prefix
- VERSION=${TAG_NAME#v}
- APP_VERSION="${VERSION}"
- CHART_VERSION="${VERSION}"
- else
- APP_VERSION="latest"
- CHART_VERSION="2.2.0"
- fi
- echo "APP_VERSION set to ${APP_VERSION}"
- echo "CHART_VERSION set to ${CHART_VERSION}. Validating..."
- # https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
- SEMVER_REGEX="^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$"
- if echo "${CHART_VERSION}" | grep -Pq "${SEMVER_REGEX}"; then
- echo "${CHART_VERSION} is a valid SemVer string";
- else
- echo "${CHART_VERSION} is an invalid SemVer string";
- exit 1;
- fi
- echo "CHART_VERSION=${CHART_VERSION}" >> "$GITHUB_ENV"
- echo "APP_VERSION=${APP_VERSION}" >> "$GITHUB_ENV"
- - name: Update helm dependencies
- run: helm dependency update ./functions/kubernetes/charts/shuffle
- - name: Package Helm chart
- run: helm package ./functions/kubernetes/charts/shuffle --version "${CHART_VERSION}" --app-version="${APP_VERSION}" --destination ./functions/kubernetes/charts
- - name: Login to OCI registry (ghcr.io)
- run: helm registry login ghcr.io --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }}
- - name: Push helm chart
- run: helm push ./functions/kubernetes/charts/shuffle-*.tgz oci://ghcr.io/shuffle/charts
|