From b8df1e2814afa364aecf47702d16ec9faf33597d Mon Sep 17 00:00:00 2001 From: Garry O'Donnell Date: Tue, 16 Apr 2024 14:51:22 +0000 Subject: [PATCH] Add helm chart linting & publishing to CI --- .github/workflows/_helm.yml | 59 +++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 8 +++++ 2 files changed, 67 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..91f031f --- /dev/null +++ b/.github/workflows/_helm.yml @@ -0,0 +1,59 @@ +on: + workflow_call: + +jobs: + lint: + 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 + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout source + uses: actions/checkout@v4.1.2 + + - name: Retrieve chart dependencies + working-directory: charts/energy-scan + run: helm dependency update + + - name: Package chart + working-directory: charts/energy-scan + run: helm package . + + - 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') + working-directory: charts/energy-scan + run: helm push $(ls energy-scan-*.tgz) ${{ env.IMAGE_REPOSITORY }} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89d9249..ad84c61 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,14 @@ jobs: contents: read packages: write + helm: + needs: check + if: needs.check.outputs.branch-pr == '' + uses: ./.github/workflows/_helm.yml + permissions: + contents: read + packages: write + dist: needs: check if: needs.check.outputs.branch-pr == ''