name: Helm lint on: workflow_call: inputs: chart-directory: description: | Root directory of the Helm chart. Example: `charts/my-app`. type: string default: '.' helm-version: description: | Helm version to install. Example: `v3.14.0`. Defaults to `latest`. type: string default: 'latest' runs-on: description: 'Runner label to use for the job.' type: string default: 'ubuntu-latest' jobs: lint: name: Lint Helm chart runs-on: ${{ inputs.runs-on }} steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Helm uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0 with: version: ${{ inputs.helm-version }} - name: Update Helm dependencies run: | if grep -q '^dependencies:' "${{ inputs.chart-directory }}/Chart.yaml" 2>/dev/null; then helm dependency update "${{ inputs.chart-directory }}" fi - name: Helm lint run: helm lint "${{ inputs.chart-directory }}" - name: Helm template (dry-run) run: helm template test-release "${{ inputs.chart-directory }}" --debug > /dev/null