A GitHub action to generate values schema json file by using helm plugin helm-values-schema-json. It always uses latetst version of the plugin.
[!IMPORTANT] This action runs the plugin's root
helm schemacommand only (schema generation). Subcommands such ashelm schema lintandhelm schema bundleare not supported.
To use this action, add the following step to your workflow:
name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml[!NOTE] This will only generate json schema but no further action will be taken.
| Name | Description | Default | Required |
|---|---|---|---|
values |
Single or comma-separated list of yaml files provided as input or in .schema.yaml |
'' |
false |
draft |
Draft version of the schema. Accepted values are 4, 6, 7, 2019 and 2020 | 2020 |
false |
output |
Output filename with path to store the generated schema | values.schema.json |
false |
indent |
Indentation spaces (even number) | 4 |
false |
id |
ID of the schema | '' |
false |
ref |
URI reference of the schema. Relative to CWD when using bundle |
'' |
false |
title |
Title of the schema | '' |
false |
description |
Description of the schema | '' |
false |
additionalProperties |
Additional properties allowed in the schema (bool) | '' |
false |
noAdditionalProperties |
Additional properties allowed in the schema, including child objects (bool) | '' |
false |
git-push |
If true it will commit and push the changes (ignored if fail-on-diff is set) |
false |
false |
git-push-user-name |
If empty the name of the GitHub Actions bot will be used | github-actions[bot] |
false |
git-push-user-email |
If empty the no-reply email of the GitHub Actions bot will be used | github-actions[bot]@users.noreply.github.com |
false |
git-commit-message |
Commit message | update values.schema.json |
false |
fail-on-diff |
Fail the job if there is any diff found between the generated output and existing file | false |
false |
working-directory |
Working directory where the schema command should run. Useful when using configuration file .schema.yaml. |
'.' |
false |
useHelmDocs |
Read description from helm-docs comments | false |
false |
| Name | Description |
|---|---|
plugin-path |
Path to the cached JSON schema binary |
To fail the workflow if there is a diff between the generated schema and the committed one, add the following step to your workflow:
name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml
fail-on-diff: true[!NOTE] This options are ignored if
fail-on-diff: true.
To automatically commit the generated schema, add the following step to your workflow:
name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml
git-push: trueTo overwrite default user and email which is set to github-actions[bot] and
add custom commit message, add the following:
name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml
git-push: true
git-push-user-name: "John Doe"
git-push-user-email: "john.doe@example.com"
git-commit-message: "chore: update values schema json"You can generate schema from mutiple yaml files with values by passing comma
separated list to input parameter.
name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml,${GITHUB_WORKSPACE}/values2.yaml
output: my.output.json
draft: 7
indent: 2name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
values: values.yaml
output: ${GITHUB_WORKSPACE}/my.output.json
draft: 7name: Generate values schema json
on:
- pull_request
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate values schema json
uses: losisin/helm-values-schema-json-action@v3
with:
working-directory: path/to/helm/chartYour input matters. Feel free to open issues for bugs, feature requests, or any feedback you may have. Check if a similar issue exists before creating a new one, and please use clear titles and explanations to help understand your point better. Your thoughts help me improve this project!
🌟 Thank you for considering contributing to my project! Your efforts are incredibly valuable. To get started:
- Fork the repository.
- Create your feature branch:
git checkout -b feature/YourFeature - Commit your changes:
git commit -am 'Add: YourFeature' - Push to the branch:
git push origin feature/YourFeature - Submit a pull request! 🚀