123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- name: Charts Tests
- on:
- pull_request:
- paths:
- - library/**
- - '!library/common'
- - '!library/common-test'
- - .github/ct-install-config/**
- - '!.github/ct-install-config/common*'
- - .github/workflows/charts_test.yaml
- jobs:
- lint:
- name: Lint Charts
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- helm-version:
- - v3.9.4
- - v3.10.3
- - v3.12.1
- steps:
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
- with:
- # Depth 0 is required for chart-testing to work properly
- fetch-depth: 0
- - name: Install Helm
- uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # tag=v3
- with:
- version: ${{ matrix.helm-version }}
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # tag=v4
- with:
- python-version: "3.10"
- - name: Set up chart-testing
- uses: helm/chart-testing-action@b43128a8b25298e1e7b043b78ea6613844e079b1 # tag=v2.6.0
- - name: Run chart-testing (lint)
- id: lint
- run: |
- ct lint --config .github/ct-install-config/charts-ct-lint.yaml
- list-changed:
- needs:
- - lint
- name: List Changed Charts
- runs-on: ubuntu-22.04
- outputs:
- changed_json: ${{ steps.list-changed.outputs.changed_json }}
- steps:
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
- with:
- # Depth 0 is required for chart-testing to work properly
- fetch-depth: 0
- - name: Set up chart-testing
- uses: helm/chart-testing-action@b43128a8b25298e1e7b043b78ea6613844e079b1 # tag=v2.6.0
- - name: List Changed Charts
- id: list-changed
- shell: bash
- run: |
- changed_json=$(ct list-changed \
- --config .github/ct-install-config/charts-ct-install.yaml | \
- jq --raw-input '.' | jq --compact-output --slurp '.')
- echo "changed_json=$changed_json" >> $GITHUB_OUTPUT
- echo 'Detected changes in the following charts:'
- echo "$changed_json" | jq --raw-output '.[]'
- install:
- needs:
- - lint
- - list-changed
- name: Install Chart
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- chart: ${{ fromJson(needs.list-changed.outputs.changed_json) }}
- # We run tests on Helm version of latest SCALE release, SCALE nightly and manually defined "latest"
- helm-version:
- - v3.9.4
- - v3.12.1
- # We run tests on k3s version of latest SCALE release
- k3s-version:
- - v1.26.15+k3s1
- steps:
- - name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
- with:
- # Depth 0 is required for chart-testing to work properly
- fetch-depth: 0
- - name: Install Helm
- uses: azure/setup-helm@f382f75448129b3be48f8121b9857be18d815a82 # tag=v3
- with:
- version: ${{ matrix.helm-version }}
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # tag=v4
- with:
- python-version: "3.10"
- - name: Set up chart-testing
- uses: helm/chart-testing-action@b43128a8b25298e1e7b043b78ea6613844e079b1 # tag=v2.6.0
- - name: Create k3d cluster - Attempt 1/3
- continue-on-error: true
- id: createc1
- uses: nolar/setup-k3d-k3s@293b8e5822a20bc0d5bcdd4826f1a665e72aba96 # tag=v1.0.9
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- version: ${{ matrix.k3s-version }}
- # Flags found here https://github.com/k3d-io/k3d
- k3d-args: --k3s-arg --disable=metrics-server@server:*
- - name: Wait 10 second to retry
- if: steps.createc1.outcome=='failure'
- run: |
- sleep 10
- - name: Create k3d cluster - Attempt 2/3
- continue-on-error: true
- if: steps.createc1.outcome=='failure'
- id: createc2
- uses: nolar/setup-k3d-k3s@293b8e5822a20bc0d5bcdd4826f1a665e72aba96 # tag=v1.0.9
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- version: ${{ matrix.k3s-version }}
- # Flags found here https://github.com/k3d-io/k3d
- k3d-args: --k3s-arg --disable=metrics-server@server:*
- - name: Wait 10 second to retry
- if: steps.createc2.outcome=='failure'
- run: |
- sleep 10
- - name: Create k3d cluster - Attempt 3/3
- id: createc3
- if: steps.createc2.outcome=='failure'
- uses: nolar/setup-k3d-k3s@293b8e5822a20bc0d5bcdd4826f1a665e72aba96 # tag=v1.0.9
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- version: ${{ matrix.k3s-version }}
- # Flags found here https://github.com/k3d-io/k3d
- k3d-args: --k3s-arg --disable=metrics-server@server:*
- - name: Run chart-testing (install)
- shell: bash
- run: |
- ct install --config .github/ct-install-config/charts-ct-install.yaml --charts ${{ matrix.chart }}
|