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.
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@v1
with:
input: values.yaml
Note
This will only generate json schema but no further action will be taken.
Name | Description | Default | Required |
---|---|---|---|
input |
Input value file. Can be single or comma-separated list of yaml files | values.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 |
title |
Title of the schema | '' |
false |
description |
Description of the schema | '' |
false |
additionalProperties |
Additional properties allowed in the schema (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 |
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@v1
with:
input: 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@v1
with:
input: values.yaml
git-push: true
To 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@v1
with:
input: values.yaml
git-push: true
git-push-user-name: "John Doe"
git-push-user-email: "[email protected]"
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@v1
with:
input: values.yaml,${GITHUB_WORKSPACE}/values2.yaml
output: my.output.json
draft: 7
indent: 2
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@v1
with:
input: values.yaml
output: ${GITHUB_WORKSPACE}/my.output.json
draft: 7
Your 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! 🚀