Skip to content

[DND-1417] Add CI: lint, render-diff, and kind functional tests #3

[DND-1417] Add CI: lint, render-diff, and kind functional tests

[DND-1417] Add CI: lint, render-diff, and kind functional tests #3

Workflow file for this run

name: Lint & Render
# Hard gate: helm lint + helm template + kubeconform schema validation across a
# representative value set per backend. Runs on GitHub-hosted runners with only
# public actions (this is a public repo — no self-hosted runners, no secrets).
on:
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: read
env:
KUBE_VERSION: "1.29.0"
KUBECONFORM_VERSION: "v0.6.7"
jobs:
lint-render:
name: lint-render (${{ matrix.values }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
values:
- test-values/filesystem.yaml
- test-values/transient.yaml
- test-values/s3.yaml
- test-values/azureblob.yaml
- test-values/gcs.yaml
- test-values/b2.yaml
- test-values/openstack-swift.yaml
- test-values/rackspace.yaml
- test-values/multi-backend.yaml
- test-values/ingress.yaml
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up Helm
uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
with:
version: v3.19.2
- name: Helm lint
run: helm lint charts/s3proxy --values "${{ matrix.values }}"
- name: Helm template
run: |
helm template s3proxy charts/s3proxy \
--values "${{ matrix.values }}" \
--kube-version "${KUBE_VERSION}" > rendered.yaml
echo "----- rendered manifests -----"
cat rendered.yaml
- name: Install kubeconform
run: |
curl -sSfL "https://github.com/yannh/kubeconform/releases/download/${KUBECONFORM_VERSION}/kubeconform-linux-amd64.tar.gz" \
| tar -xz kubeconform
sudo install kubeconform /usr/local/bin/kubeconform
kubeconform -v
- name: Validate rendered manifests (kubeconform)
run: |
kubeconform -strict -summary \
-kubernetes-version "${KUBE_VERSION}" \
-schema-location default \
rendered.yaml