diff --git a/.github/workflows/invoke-push.yaml b/.github/workflows/invoke-push.yaml index 6d23505e..16b775c2 100644 --- a/.github/workflows/invoke-push.yaml +++ b/.github/workflows/invoke-push.yaml @@ -23,7 +23,7 @@ jobs: ref: master - run: npm i octokit @octokit/core - name: Trigger push workflow - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: APP_ID: ${{ secrets.APP_ID }} APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml new file mode 100644 index 00000000..980278fc --- /dev/null +++ b/.github/workflows/lint-test.yaml @@ -0,0 +1,46 @@ +name: Lint and Test Charts + +on: [pull_request,push] + +jobs: + lint-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 + + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + check-latest: true + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed_files=$(ct list-changed --config ct.yaml --target-branch ${{ github.event.repository.default_branch }} 2>/dev/null | wc -l | tr -d ' ') + echo "Changed files detected: $changed_files" + if [ $changed_files -ne 0 ]; then + echo "changed=true" >> $GITHUB_OUTPUT + else + echo "changed=false" >> $GITHUB_OUTPUT + fi + + - name: Run chart-testing (lint) + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --config ct.yaml --target-branch ${{ github.event.repository.default_branch }} --validate-maintainers=false + + - name: Create kind cluster + if: steps.list-changed.outputs.changed == 'true' + uses: helm/kind-action@v1.10.0 + + - name: Run chart-testing (install) + if: steps.list-changed.outputs.changed == 'true' + run: ct install --config ct.yaml --target-branch ${{ github.event.repository.default_branch }} \ No newline at end of file diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index d42d2d66..32b552a9 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -39,7 +39,7 @@ jobs: path: self - name: Validate chart - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: APP_ID: ${{ secrets.APP_ID }} APP_PRIVATE_KEY: ${{ secrets.GH_APP_PEM }} @@ -62,7 +62,7 @@ jobs: path: source - name: Package charts - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const helm = require('./self/.github/workflows/scripts/packageChart.js') @@ -72,7 +72,7 @@ jobs: run: npm i octokit fs @octokit/core - name: Update index and push files - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: APP_ID: ${{ secrets.APP_ID }} APP_PRIVATE_KEY: ${{ secrets.GH_APP_PEM }} diff --git a/ct.yaml b/ct.yaml new file mode 100644 index 00000000..fbb97c8c --- /dev/null +++ b/ct.yaml @@ -0,0 +1,2 @@ +chart-dirs: + - ./ \ No newline at end of file