From d4a5001fd2987771b430f15896096f1087fedd58 Mon Sep 17 00:00:00 2001 From: Garry O'Donnell Date: Mon, 25 Mar 2024 19:46:16 +0000 Subject: [PATCH] Add helm chart CI --- .github/workflows/helm.yml | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/helm.yml diff --git a/.github/workflows/helm.yml b/.github/workflows/helm.yml new file mode 100644 index 0000000..7f6a2b7 --- /dev/null +++ b/.github/workflows/helm.yml @@ -0,0 +1,63 @@ +name: Helm Charts + +on: + push: + pull_request: + +jobs: + lint: + # Deduplicate jobs from pull requests and branch pushes within the same repo. + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v4.1.2 + with: + fetch-depth: 0 + + - name: Setup Helm + uses: azure/setup-helm@v3.5 + + - name: Setup chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Lint + run: > + ct + lint + --target-branch=${{ github.event.repository.default_branch }} + --validate-maintainers=false + + build_publish: + needs: + - lint + # Deduplicate jobs from pull requests and branch pushes within the same repo. + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout source + uses: actions/checkout@v4.1.2 + + - name: Retrieve chart dependencies + run: helm dependency update + + - name: Package chart + run: helm package charts/sessions + + - name: Generate Image Name + run: echo IMAGE_REPOSITORY=oci://ghcr.io/$(echo "${{ github.repository }}-chart" | tr '[:upper:]' '[:lower:]' | tr '[_]' '[\-]') >> $GITHUB_ENV + + - name: Log in to GitHub Docker Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3.1.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Publish chart + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + run: helm push $(ls sessions-*.tgz) ${{ env.IMAGE_REPOSITORY }}