Skip to content

Helm linting and testing pipeline #15

Helm linting and testing pipeline

Helm linting and testing pipeline #15

name: Lint and Test Charts
on: pull_request
jobs:
lint-test:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- dir: 'helm/syntho-ui'
dyff_args: '--exclude "frontend_url" --exclude "frontend_path" --exclude "frontend_protocol" --exclude "SynthoLicense" --exclude-regexp "core.image.*" --exclude-regexp "backend.image.*" --exclude-regexp "backend.user.*" --exclude-regexp "frontend.image.*" --exclude-regexp "redis.image.*" --exclude-regexp "db.image.*" --exclude "db.storageClassName" --exclude "db.pvLabelKey" --exclude "redis.storageClassName" --exclude "redis.pvLabelKey" --exclude "frontend.ingress.className" --exclude "frontend.ingress.hosts.0.host" --exclude "frontend.ingress.hosts.0.host" --exclude "frontend.ingress.tls.enabled" --exclude "frontend.ingress.tls.conf.0.hosts.0" --exclude "imagePullSecrets"'
- dir: 'helm/ray'
dyff_args: '--exclude-regexp "head.resources.*" --exclude-regexp "storage.*" --exclude-regexp "operatorImage.*" --exclude-regexp "image.*" --exclude "SynthoLicense"'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.14.4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Install Dyff
run: sudo apt install curl jq && curl --silent --location https://git.io/JYfAY | bash
- name: Check differences between values.yaml and values.yaml.tpl
run: dyff between ${{ matrix.dir }}/values.yaml ${{ matrix.dir }}/values.yaml.tpl ${{ matrix.dyff_args }} -s
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
dir=${{ matrix.dir }}
if [[ $(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --chart-dirs helm) =~ $dir ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --chart-dirs helm --charts ${{ matrix.dir }} --validate-maintainers=false
- name: Create kind cluster
if: steps.list-changed.outputs.changed == 'true'
uses: helm/[email protected]
- name: Run chart-testing (install)
if: steps.list-changed.outputs.changed == 'true'
run: ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs helm --charts ${{ matrix.dir }}