diff --git a/.github/workflows/chart-testing.yaml b/.github/workflows/chart-testing.yaml new file mode 100644 index 0000000..3e05d45 --- /dev/null +++ b/.github/workflows/chart-testing.yaml @@ -0,0 +1,79 @@ +# https://github.com/marketplace/actions/helm-chart-testing +name: Chart-Testing + +on: + pull_request: + branches: [main] + paths: ["charts/**"] + push: + branches: [main] + paths: ["charts/**"] + workflow_dispatch: + +jobs: + + artifacthub-lint: + runs-on: ubuntu-latest + container: + image: artifacthub/ah + options: --user 1001 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Run ah lint + working-directory: ./charts + run: ah lint + + helm-lint: + runs-on: ubuntu-latest + steps: + - name: checkout git repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: setup helm + uses: azure/setup-helm@v3 + + - name: Update dependencies + run: find charts/ ! -path charts/ -maxdepth 1 -type d -exec helm dependency update {} \; + + - name: helm linting + run : helm lint charts/* + + chart-testing: + runs-on: ubuntu-latest + steps: + - name: checkout git repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: setup helm + uses: azure/setup-helm@v3 + + - uses: actions/setup-python@v5 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }}) + if [[ -n "$changed" ]]; then + echo "::set-output name=changed::true" + fi + + - name: Run chart-testing (lint) + run: ct lint --config .github/config/chart-testing.yaml + + - name: Create kind cluster + uses: helm/kind-action@v1.10.0 + if: steps.list-changed.outputs.changed == 'true' + + - name: Run chart-testing (install) + run: ct install --config .github/config/chart-testing.yaml