123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- name: Common Library Tests
- on:
- pull_request:
- paths:
- - library/common/**
- - library/common-test/**
- - .github/ct-install-config/common*.yaml
- - '!.github/ct-install-config/charts*'
- - .github/workflows/common_library_tests.yaml
- jobs:
- lint:
- name: Lint Common
- 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/common-ct-lint.yaml
- unittest:
- needs:
- - lint
- name: Unit Tests
- runs-on: ubuntu-22.04
- env:
- helmUnitVersion: 0.3.0
- 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@f382f75448129b3be48f8121b9857be18d815a82 # tag=v3
- with:
- version: ${{ matrix.helm-version }}
- - name: Run Unit-tests
- shell: bash
- run: |
- # Retry helm plugin install
- helm plugin install https://github.com/helm-unittest/helm-unittest --version v${helmUnitVersion} || \
- helm plugin install https://github.com/helm-unittest/helm-unittest --version v${helmUnitVersion} || \
- helm plugin install https://github.com/helm-unittest/helm-unittest --version v${helmUnitVersion} || \
- helm plugin install https://github.com/helm-unittest/helm-unittest --version v${helmUnitVersion}
- # Run tests
- cd library/common-test/
- helm dependency update
- helm unittest -f "tests/*/*.yaml" .
- install:
- needs:
- - lint
- name: Install Charts
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- matrix:
- # We run tests on k3s version of latest SCALE release, SCALE nightly and manually defined "latest"
- k3s-version:
- - v1.26.15+k3s1
- # We run tests on Helm version of latest SCALE release, SCALE nightly and manually defined "latest"
- helm-version:
- - v3.12.1
- values:
- - basic-values.yaml
- - configmap-values.yaml
- - secrets-values.yaml
- - imagePullSecret-values.yaml
- - job-values.yaml
- - cron-values.yaml
- - persistence-values.yaml
- - rbac-values.yaml
- - init-values.yaml
- 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)
- run: |
- # This is done to improve speed of the tests, so we can run tests in parallel
- # Move all ci values on a temp location (or skip if already moved from another matrix job)
- mv library/common-test/ci library/common-test/runtests || echo "Nothing to move"
- # Move one values.yaml to the correct location to run the test
- mv -f library/common-test/runtests/${{ matrix.values }} library/common-test/values.yaml
- # Actually run the test
- ct install --config .github/ct-install-config/common-ct-install.yaml
|