Skip to content

Fixes for chart-testing to actually notify properly #1350

Fixes for chart-testing to actually notify properly

Fixes for chart-testing to actually notify properly #1350

Workflow file for this run

name: Lint and Test Charts
on:
push:
branches:
- main
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.6.3
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch main --chart-dirs charts --chart-dirs other-charts)
if [[ -n "$changed" ]]; then
echo 'changed=true' >> $GITHUB_OUTPUT
fi
- name: Run chart-testing (lint changed)
id: ct-lint
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch main --chart-dirs charts --chart-dirs other-charts
continue-on-error: true
- name: Run chart-testing (lint all)
id: ct-lint-all
run: ct lint --target-branch main --all --chart-dirs charts --chart-dirs other-charts
continue-on-error: true
- name: Notify Slack of chart linting failure
if: steps.ct-lint.outcome != 'success' || steps.ct-lint-all.outcome != 'success'
uses: slackapi/[email protected]
with:
payload-delimiter: "_"
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Linting failed for ${{ steps.ct-lint.outcome != 'success' && 'changed' || 'all' }} charts. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Fail the workflow if failed linting
if: steps.ct-lint.outcome != 'success' || steps.ct-lint-all.outcome != 'success'
run: exit 1
install:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.6.3
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch main --chart-dirs charts --chart-dirs other-charts)
if [[ -n "$changed" ]]; then
echo 'changed=true' >> $GITHUB_OUTPUT
fi
- name: Create kind cluster
uses: helm/[email protected]
if: ( steps.list-changed.outputs.changed == 'true' ) || ${{ github.ref == 'refs/heads/main' }}
# no allow-failure until https://github.com/actions/toolkit/issues/399
- name: Run chart-testing (install changed)
id: ct-install
if: ${{ github.ref != 'refs/heads/main' && steps.list-changed.outputs.changed == 'true' }}
run: ct install --target-branch main --chart-dirs charts --chart-dirs other-charts
continue-on-error: true
# no allow-failure until https://github.com/actions/toolkit/issues/399
- name: Run chart-testing (install all)
id: ct-install-all
if: ${{ github.ref == 'refs/heads/main' }}
run: ct install --target-branch main --all --chart-dirs charts --chart-dirs other-charts
continue-on-error: true
- name: Notify Slack of chart install failure
if: steps.ct-install.outcome != 'success' || steps.ct-install-all.outcome != 'success'
uses: slackapi/[email protected]
with:
payload-delimiter: "_"
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Failure during test installation of ${{ steps.ct-install.outcome != 'success' && 'changed' || 'all' }} charts. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Fail the workflow if failed installs
if: steps.ct-install.outcome != 'success' || steps.ct-install-all.outcome != 'success'
run: exit 1
check-versions-connect:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.6.3
- uses: extractions/setup-just@v2
- name: Run executable verification for default interpreters
run: |
just test-connect-interpreter-versions