Using Bowtie in GitHub Actions¶
Bowtie can be used from within GitHub Actions by using it in a GitHub workflow step. For example:
name: Run Bowtie
on: [push]
jobs:
bowtie:
runs-on: ubuntu-latest
steps:
- name: Install Bowtie
uses: bowtie-json-schema/bowtie@2025.3.5
Once you have installed it, the Bowtie CLI will be available in successive run steps. Most commonly, you can use it to validate an instance (some data) using a specific JSON Schema implementation by adding:
- name: Validate Schema
run: bowtie validate -i lua-jsonschema schema.json instance.json
replacing lua-jsonschema
and the filenames with your implementation and schema of choice.
For full details on the commands available, see the CLI documentation.
A fully working example of the above code can also be found here.
Including Bowtie Output in a Workflow Summary¶
Some of Bowtie’s commands, notably bowtie summary, support outputting in markdown format using the --format markdown
option.
This can be useful for including their output in GitHub Actions’ workflow summaries, e.g. to show validation results within the GitHub UI.
For example:
- name: Validate 37 is an Integer
run: |
bowtie validate -i python-jsonschema <(printf '{"type": "integer"}') <(printf '37') | bowtie summary --format markdown >> $GITHUB_STEP_SUMMARY
- name: Smoke Test a Bowtie Implementation
run: bowtie smoke -i go-jsonschema --format markdown >> $GITHUB_STEP_SUMMARY