diff --git a/.github/workflows/json-schema-validation.yaml b/.github/workflows/json-schema-validation.yaml new file mode 100644 index 0000000..9b9f01a --- /dev/null +++ b/.github/workflows/json-schema-validation.yaml @@ -0,0 +1,38 @@ +# This workflow validates the JSON schema of the cluster-app, which is located in +# `helm/*/values.schema.json`, using schemalint. It also ensures that the `values.yaml` +# file located in `helm/*/values.yaml` is generated with helm-values-gen, using the +# defaults defined in the JSON schema. + +name: JSON schema validation + +on: + workflow_call: {} + +permissions: {} + +jobs: + validate: + name: Verify values.schema.json with schemalint + runs-on: ubuntu-24.04 + permissions: + contents: read + steps: + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Run schemalint + id: run-schemalint + uses: giantswarm/schemalint/actions/verify-helm-schema@5d64fa08da5ef5d593b0298a1ebb6c0e02dfa0b6 # v2.6.1 + with: + rule-set: 'cluster-app' + generate: + name: Check that values.yaml is generated from values.schema.json with helm-values-gen + runs-on: ubuntu-24.04 + permissions: + contents: read + steps: + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Run helm-values-gen + id: run-helm-values-gen + uses: giantswarm/helm-values-gen/actions/ensure-generated@6b3fba3fca3e197dd57767eb7245d4f7b3fec21f # v1.0.4 diff --git a/CHANGELOG.md b/CHANGELOG.md index ac9c503..ac69e8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Instead this file uses a date-based structure. ### Added +- Add reusable workflow `json-schema-validation.yaml`. - Add reusable workflow `cluster-values-validation.yaml`. - Add reusable workflow `helm-render-diff.yaml`. - Add reusable workflow `update-chart.yaml`.