name: Helm on: push: branches: - master - release-* paths: - 'charts/**' - '.github/workflows/helm.yaml' - '.github/ci/ct.yaml' pull_request: paths: - 'charts/**' - '.github/workflows/helm.yaml' - '.github/ci/ct.yaml' jobs: lint-and-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Helm uses: azure/setup-helm@v4.2.0 with: version: v3.15.1 - uses: actions/setup-python@v5.1.1 with: python-version: 3.12 - uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - name: Set up chart-testing uses: helm/chart-testing-action@v2.6.1 with: version: v3.11.0 - name: Install Helm Unit Test Plugin run: | helm plugin install https://github.com/helm-unittest/helm-unittest - name: Run Helm Unit Tests run: | helm unittest charts/descheduler --strict -d - name: Run chart-testing (list-changed) id: list-changed run: | changed=$(ct list-changed --config=.github/ci/ct.yaml) if [[ -n "$changed" ]]; then echo "changed=true" >> $GITHUB_OUTPUT fi - name: Run chart-testing (lint) run: ct lint --config=.github/ci/ct.yaml --validate-maintainers=false # Need a multi node cluster so descheduler runs until evictions - name: Create multi node Kind cluster run: make kind-multi-node # helm-extra-set-args only available after ct 3.6.0 - name: Run chart-testing (install) run: ct install --config=.github/ci/ct.yaml --helm-extra-set-args='--set=kind=Deployment'