name: Helm on: push: branches: - main - release-* paths: - 'deploy/charts/**' - 'deploy/crds' pull_request: paths: - 'deploy/charts/**' - 'deploy/crds' workflow_dispatch: {} jobs: lint-and-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Generate chart run: | make helm.generate - name: Set up Helm uses: azure/setup-helm@v3.5 with: version: v3.4.2 - uses: actions/setup-python@v4.5.0 with: python-version: 3.7 - name: Set up chart-testing uses: helm/chart-testing-action@v2.4.0 - name: Run chart-testing (list-changed) id: list-changed run: | changed=$(ct list-changed --config=.github/ci/ct.yaml) if [[ -n "$changed" ]]; then echo "::set-output name=changed::true" fi - name: Install chart unittest run: | helm env helm plugin install https://github.com/helm-unittest/helm-unittest - name: Run chart-testing (lint) run: ct lint --config=.github/ci/ct.yaml - name: Create kind cluster uses: helm/kind-action@v1.5.0 if: steps.list-changed.outputs.changed == 'true' - name: Run chart-testing (install) run: ct install --config=.github/ci/ct.yaml --charts deploy/charts/external-secrets if: steps.list-changed.outputs.changed == 'true' - name: Run unitests if: steps.list-changed.outputs.changed == 'true' run: make helm.test release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Configure Git run: | git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - name: Set up Helm uses: azure/setup-helm@v3.4 with: version: v3.4.2 - name: Generate chart run: | make helm.generate - name: Run chart-releaser uses: helm/chart-releaser-action@v1.5.0 if: github.ref == 'refs/heads/main' env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" CR_RELEASE_NAME_TEMPLATE: "helm-chart-{{ .Version }}" with: charts_dir: deploy/charts charts_repo_url: https://charts.external-secrets.io