1
0
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:
per1234 2021-07-15 07:34:02 -07:00
parent 03a76407e5
commit 39bf4cdceb
3 changed files with 62 additions and 0 deletions

View 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

View File

@ -7,6 +7,7 @@
[![Check General Formatting status](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml) [![Check General Formatting status](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-general-formatting-task.yml)
[![Check Prettier Formatting status](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml) [![Check Prettier Formatting status](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-prettier-formatting-task.yml)
[![Check Taskfiles status](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml) [![Check Taskfiles status](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml/badge.svg)](https://github.com/arduino/library-registry/actions/workflows/check-taskfiles.yml)
[![Check Workflows status](https://github.com/arduino/library-registry/actions/workflows/check-workflows-task.yml/badge.svg)](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:

View File

@ -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