name: Lint and Test Charts on: pull_request: branches: - master paths: - "charts/**" jobs: lint: runs-on: ubuntu-20.04 container: quay.io/helmpack/chart-testing:v3.4.0 steps: - name: Install helm-docs working-directory: /tmp env: HELM_DOCS_URL: https://github.com/norwoodj/helm-docs/releases/download/v1.5.0/helm-docs_1.5.0_Linux_x86_64.tar.gz run: | curl -LSs $HELM_DOCS_URL | tar xz && \ mv ./helm-docs /usr/local/bin/helm-docs && \ chmod +x /usr/local/bin/helm-docs && \ helm-docs --version - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Check if documentation is up-to-date run: helm-docs && git diff --exit-code HEAD - name: Run chart-testing (lint) run: ct lint --config .github/ct/config.yaml test: runs-on: ubuntu-20.04 needs: - lint steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up chart-testing uses: helm/chart-testing-action@v2.1.0 - name: Run chart-testing (list-changed) id: list-changed run: | changed=$(ct list-changed --config .github/ct/config.yaml) if [[ -n "$changed" ]]; then echo "::set-output name=changed::true" fi - name: Create k8s Kind Cluster uses: helm/kind-action@v1.2.0 if: steps.list-changed.outputs.changed == 'true' - name: Run chart-testing (install) run: ct install --config .github/ct/config.yaml if: steps.list-changed.outputs.changed == 'true'