name: Lint and Test Charts on: pull_request: branches: - master paths: - "charts/**" jobs: lint: runs-on: ubuntu-22.04 container: quay.io/helmpack/chart-testing:v3.11.0@sha256:f2fd21d30b64411105c7eafb1862783236a219d29f2292219a09fe94ca78ad2a steps: - name: Install helm-docs working-directory: /tmp env: HELM_DOCS_URL: https://github.com/norwoodj/helm-docs/releases/download/v1.14.2/helm-docs_1.14.2_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: Add workspace as safe directory run: | git config --global --add safe.directory /__w/hapi-fhir-jpaserver-starter/hapi-fhir-jpaserver-starter - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 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-22.04 strategy: matrix: k8s-version: [1.30.8, 1.31.4, 1.32.0] needs: - lint steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - name: Set up chart-testing uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 - 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@dda0770415bac9fc20092cacbc54aa298604d140 # v1.8.0 if: ${{ steps.list-changed.outputs.changed == 'true' }} with: cluster_name: kind-cluster-k8s-${{ matrix.k8s-version }} node_image: kindest/node:v${{ matrix.k8s-version }} - name: Run chart-testing (install) run: ct install --config .github/ct/config.yaml if: ${{ steps.list-changed.outputs.changed == 'true' }}