# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json

name: helm-test

permissions: {}

on:
  pull_request:
    branches:
      - main
      - release*
    paths:
      - charts/**
      - .github/workflows/helm-test.yaml

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  helm-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: Setup caches
        uses: ./.github/actions/setup-caches
        timeout-minutes: 5
        continue-on-error: true
        with:
          build-cache-key: helm-tests
      - name: Setup build env
        uses: ./.github/actions/setup-build-env
        timeout-minutes: 10
      - name: Setup python
        uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
        with:
          python-version: 3.8.13
      - name: Set up chart-testing
        uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1
      - name: Run chart-testing (lint)
        run: |
          if [[ $(ct list-changed --target-branch=main) ]];
          then
            ct lint --target-branch=main --check-version-increment=false --validate-maintainers=false
          fi
      - name: Setup test env
        uses: ./.github/actions/setup-test-env
      - name: Helm test
        run: make helm-test
      - name: Debug failure
        if: failure()
        uses: ./.github/actions/kyverno-logs

  linter-artifacthub:
    runs-on: ubuntu-latest
    container:
      image: artifacthub/ah
      options: --user root
    steps:
      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: Run ah lint
        working-directory: ./charts/
        run: ah lint