mirror of
https://github.com/arduino/library-registry.git
synced 2025-05-17 20:21:10 +03:00
Add CI workflow to validate GitHub Actions workflows
On every push or pull request that affects the repository's GitHub Actions workflows, and periodically, validate them against the JSON schema.
This commit is contained in:
parent
03a76407e5
commit
39bf4cdceb
35
.github/workflows/check-workflows-task.yml
vendored
Normal file
35
.github/workflows/check-workflows-task.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Source: https://github.com/arduino/tooling-project-assets/blob/master/workflow-templates/check-workflows-task.md
|
||||||
|
name: Check Workflows
|
||||||
|
|
||||||
|
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/*.ya?ml"
|
||||||
|
- "Taskfile.ya?ml"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/*.ya?ml"
|
||||||
|
- "Taskfile.ya?ml"
|
||||||
|
schedule:
|
||||||
|
# Run every Tuesday at 8 AM UTC to catch breakage resulting from changes to the JSON schema.
|
||||||
|
- cron: "0 8 * * TUE"
|
||||||
|
workflow_dispatch:
|
||||||
|
repository_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
validate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install Task
|
||||||
|
uses: arduino/setup-task@v1
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
version: 3.x
|
||||||
|
|
||||||
|
- name: Validate workflows
|
||||||
|
run: task --silent ci:validate
|
@ -7,6 +7,7 @@
|
|||||||
[](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml)
|
[](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml)
|
||||||
[](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml)
|
[](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml)
|
||||||
[](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml)
|
[](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml)
|
||||||
|
[](https://github.com/arduino/library-registry/actions/workflows/check-workflows-task.yml)
|
||||||
|
|
||||||
This branch contains the generated source file for the Arduino Library Manager index. If you want to add a library to
|
This branch contains the generated source file for the Arduino Library Manager index. If you want to add a library to
|
||||||
the Arduino Library Manager index, please follow these instructions:
|
the Arduino Library Manager index, please follow these instructions:
|
||||||
|
26
Taskfile.yml
26
Taskfile.yml
@ -8,6 +8,32 @@ vars:
|
|||||||
sh: cd "{{.GO_PROJECT_PATH}}" && echo $(go list ./... | tr '\n' ' ')
|
sh: cd "{{.GO_PROJECT_PATH}}" && echo $(go list ./... | tr '\n' ' ')
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-workflows-task/Taskfile.yml
|
||||||
|
ci:validate:
|
||||||
|
desc: Validate GitHub Actions workflows against their JSON schema
|
||||||
|
vars:
|
||||||
|
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/github-workflow.json
|
||||||
|
WORKFLOW_SCHEMA_URL: https://json.schemastore.org/github-workflow
|
||||||
|
WORKFLOW_SCHEMA_PATH:
|
||||||
|
sh: mktemp -t workflow-schema-XXXXXXXXXX.json
|
||||||
|
WORKFLOWS_DATA_PATH: "./.github/workflows/*.{yml,yaml}"
|
||||||
|
cmds:
|
||||||
|
- |
|
||||||
|
wget \
|
||||||
|
--quiet \
|
||||||
|
--output-document="{{.WORKFLOW_SCHEMA_PATH}}" \
|
||||||
|
{{.WORKFLOW_SCHEMA_URL}}
|
||||||
|
- |
|
||||||
|
npx \
|
||||||
|
--package=ajv-cli \
|
||||||
|
--package=ajv-formats \
|
||||||
|
ajv validate \
|
||||||
|
--all-errors \
|
||||||
|
--strict=false \
|
||||||
|
-c ajv-formats \
|
||||||
|
-s "{{.WORKFLOW_SCHEMA_PATH}}" \
|
||||||
|
-d "{{.WORKFLOWS_DATA_PATH}}"
|
||||||
|
|
||||||
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-general-formatting-task/Taskfile.yml
|
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-general-formatting-task/Taskfile.yml
|
||||||
general:check-formatting:
|
general:check-formatting:
|
||||||
desc: Check basic formatting style of all files
|
desc: Check basic formatting style of all files
|
||||||
|
Loading…
x
Reference in New Issue
Block a user