Skip to content

Fix workflows

Fix workflows #5

Workflow file for this run

on:
pull_request:
branches:
- main
jobs:
generate_doc:
name: Generate the documentation from the JSON Schemas
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-20.04"]
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Extract branch name
shell: bash
run: echo "branch=${GITHUB_HEAD_REF#refs/heads/}" >> $GITHUB_OUTPUT
id: extract_branch
- name: Install json-schema-for-humans
run: pip install json-schema-for-humans
- name: Create documentation directory
run: mkdir -p _docs
- name: Generate the documentation
run: |
generate-schema-doc --config template_name=md_nested ./.schema/controller.json ./_docs/controller.md
generate-schema-doc --config template_name=md_nested ./.schema/manufacturer.json ./_docs/manufacturer.md
generate-schema-doc --config template_name=md_nested ./.schema/category.json ./_docs/category.md
- name: Pull current branch
run: |
git stash
git pull ${{ steps.extract_branch.outputs.branch }} current
git checkout current
git stash pop
- name: Commit files
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add *
if ! git diff-index --quiet HEAD; then
git commit -m "Update documentation" -a
fi
- name: push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ steps.extract_branch.outputs.branch }}
validate:
name: Validate JSON Files against schemas
runs-on: ubuntu-latest
needs:
- generate_doc
steps:
- uses: actions/checkout@v3
- name: Validate Category JSON
uses: dsanders11/json-schema-validate-action@v1.1.0
with:
schema: ".schema/category.json"
files: "*/config.json"
- name: Validate Manufacturer JSON
uses: dsanders11/json-schema-validate-action@v1.1.0
with:
schema: ".schema/manufacturer.json"
files: "*/*/config.json"
- name: Validate Controller JSON
uses: dsanders11/json-schema-validate-action@v1.1.0
with:
schema: ".schema/controller.json"
files: "*/*/*/config.json"