mirror of
https://github.com/truenas/charts.git
synced 2026-02-03 02:23:49 +08:00
181 lines
6.0 KiB
YAML
181 lines
6.0 KiB
YAML
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
|