You've already forked library-registry
mirror of
https://github.com/arduino/library-registry.git
synced 2025-11-23 03:22:23 +03:00
Merge pull request #6 from arduino/check-workflows
Enhance CI system for checking GitHub Actions workflows
This commit is contained in:
73
.github/.yamllint.yml
vendored
Normal file
73
.github/.yamllint.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# See: https://yamllint.readthedocs.io/en/stable/configuration.html
|
||||||
|
# The code style defined in this file is the official standardized style to be used in all Arduino projects and should
|
||||||
|
# not be modified.
|
||||||
|
# Note: Rules disabled solely because they are redundant to Prettier are marked with a "Prettier" comment.
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
level: error
|
||||||
|
forbid: non-empty
|
||||||
|
min-spaces-inside: -1 # Prettier
|
||||||
|
max-spaces-inside: -1 # Prettier
|
||||||
|
min-spaces-inside-empty: -1 # Prettier
|
||||||
|
max-spaces-inside-empty: -1 # Prettier
|
||||||
|
brackets:
|
||||||
|
level: error
|
||||||
|
forbid: non-empty
|
||||||
|
min-spaces-inside: -1 # Prettier
|
||||||
|
max-spaces-inside: -1 # Prettier
|
||||||
|
min-spaces-inside-empty: -1 # Prettier
|
||||||
|
max-spaces-inside-empty: -1 # Prettier
|
||||||
|
colons: disable # Prettier
|
||||||
|
commas: disable # Prettier
|
||||||
|
comments: disable # Prettier
|
||||||
|
comments-indentation: disable # Prettier
|
||||||
|
document-end: disable # Prettier
|
||||||
|
document-start: disable
|
||||||
|
empty-lines: disable # Prettier
|
||||||
|
empty-values: disable
|
||||||
|
hyphens: disable # Prettier
|
||||||
|
indentation: disable # Prettier
|
||||||
|
key-duplicates: disable # Prettier
|
||||||
|
key-ordering: disable
|
||||||
|
line-length:
|
||||||
|
level: warning
|
||||||
|
max: 120
|
||||||
|
allow-non-breakable-words: true
|
||||||
|
allow-non-breakable-inline-mappings: true
|
||||||
|
new-line-at-end-of-file: disable # Prettier
|
||||||
|
new-lines: disable # Prettier
|
||||||
|
octal-values:
|
||||||
|
level: warning
|
||||||
|
forbid-implicit-octal: true
|
||||||
|
forbid-explicit-octal: false
|
||||||
|
quoted-strings: disable
|
||||||
|
trailing-spaces: disable # Prettier
|
||||||
|
truthy:
|
||||||
|
level: error
|
||||||
|
allowed-values:
|
||||||
|
- "true"
|
||||||
|
- "false"
|
||||||
|
- "on" # Used by GitHub Actions as a workflow key.
|
||||||
|
check-keys: true
|
||||||
|
|
||||||
|
yaml-files:
|
||||||
|
# Source: https://github.com/ikatyang/linguist-languages/blob/master/data/YAML.json (used by Prettier)
|
||||||
|
- ".clang-format"
|
||||||
|
- ".clang-tidy"
|
||||||
|
- ".gemrc"
|
||||||
|
- ".yamllint"
|
||||||
|
- "glide.lock"
|
||||||
|
- "*.yml"
|
||||||
|
- "*.mir"
|
||||||
|
- "*.reek"
|
||||||
|
- "*.rviz"
|
||||||
|
- "*.sublime-syntax"
|
||||||
|
- "*.syntax"
|
||||||
|
- "*.yaml"
|
||||||
|
- "*.yaml-tmlanguage"
|
||||||
|
- "*.yaml.sed"
|
||||||
|
- "*.yml.mysql"
|
||||||
|
|
||||||
|
ignore: |
|
||||||
|
/.git/
|
||||||
58
.github/workflows/check-workflows.yml
vendored
Normal file
58
.github/workflows/check-workflows.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
name: Check Workflows
|
||||||
|
|
||||||
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/*.yaml"
|
||||||
|
- ".github/workflows/*.yml"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/*.yaml"
|
||||||
|
- ".github/workflows/*.yml"
|
||||||
|
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: Download JSON schema for GitHub Actions workflows
|
||||||
|
id: download-schema
|
||||||
|
uses: carlosperate/download-file-action@v1.0.3
|
||||||
|
with:
|
||||||
|
# See: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/github-workflow.json
|
||||||
|
file-url: https://json.schemastore.org/github-workflow
|
||||||
|
location: ${{ runner.temp }}/github-workflow-schema
|
||||||
|
file-name: github-workflow.json
|
||||||
|
|
||||||
|
- name: Get week number for use in cache key
|
||||||
|
id: get-date
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=week-number::$(date --utc '+%V')"
|
||||||
|
|
||||||
|
- name: Load dependencies cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.npm
|
||||||
|
key: ${{ runner.os }}-node-ajv-cli-${{ steps.get-date.outputs.week-number }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-node-ajv-cli-
|
||||||
|
|
||||||
|
- name: Install JSON schema validator
|
||||||
|
run: sudo npm install --global ajv-cli
|
||||||
|
|
||||||
|
- name: Validate GitHub Actions workflows
|
||||||
|
run: |
|
||||||
|
# See: https://github.com/ajv-validator/ajv-cli#readme
|
||||||
|
ajv validate \
|
||||||
|
--strict=false \
|
||||||
|
-s "${{ steps.download-schema.outputs.file-path }}" \
|
||||||
|
-d "./.github/workflows/*.{yml,yaml}"
|
||||||
78
.github/workflows/check-yaml.yml
vendored
Normal file
78
.github/workflows/check-yaml.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
name: Check YAML
|
||||||
|
|
||||||
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/check-yaml.yml"
|
||||||
|
- ".yamllint*"
|
||||||
|
# Source: https://github.com/ikatyang/linguist-languages/blob/master/data/YAML.json (used by Prettier)
|
||||||
|
- "**/.clang-format"
|
||||||
|
- "**/.clang-tidy"
|
||||||
|
- "**/.gemrc"
|
||||||
|
- "**/glide.lock"
|
||||||
|
- "**.yml"
|
||||||
|
- "**.mir"
|
||||||
|
- "**.reek"
|
||||||
|
- "**.rviz"
|
||||||
|
- "**.sublime-syntax"
|
||||||
|
- "**.syntax"
|
||||||
|
- "**.yaml"
|
||||||
|
- "**.yaml-tmlanguage"
|
||||||
|
- "**.yaml.sed"
|
||||||
|
- "**.yml.mysql"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/check-yaml.yml"
|
||||||
|
- ".yamllint*"
|
||||||
|
- "**/.clang-format"
|
||||||
|
- "**/.clang-tidy"
|
||||||
|
- "**/.gemrc"
|
||||||
|
- "**/glide.lock"
|
||||||
|
- "**.yml"
|
||||||
|
- "**.mir"
|
||||||
|
- "**.reek"
|
||||||
|
- "**.rviz"
|
||||||
|
- "**.sublime-syntax"
|
||||||
|
- "**.syntax"
|
||||||
|
- "**.yaml"
|
||||||
|
- "**.yaml-tmlanguage"
|
||||||
|
- "**.yaml.sed"
|
||||||
|
- "**.yml.mysql"
|
||||||
|
schedule:
|
||||||
|
# Run every Tuesday at 8 AM UTC to catch breakage caused by changes to yamllint.
|
||||||
|
- cron: "0 8 * * TUE"
|
||||||
|
workflow_dispatch:
|
||||||
|
repository_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
name: ${{ matrix.configuration.name }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
configuration:
|
||||||
|
- name: Generate problem matcher output
|
||||||
|
# yamllint's "github" output type produces annotated diffs, but is not useful to humans reading the log.
|
||||||
|
format: github
|
||||||
|
# The other matrix job is used to set the result, so this job is configured to always pass.
|
||||||
|
continue-on-error: true
|
||||||
|
- name: Check formatting
|
||||||
|
# yamllint's "colored" output type is most suitable for humans reading the log.
|
||||||
|
format: colored
|
||||||
|
continue-on-error: false
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Check YAML
|
||||||
|
continue-on-error: ${{ matrix.configuration.continue-on-error }}
|
||||||
|
run: |
|
||||||
|
yamllint \
|
||||||
|
--config-file "${{ github.workspace }}/.github/.yamllint.yml" \
|
||||||
|
--format ${{ matrix.configuration.format }} \
|
||||||
|
.
|
||||||
2
.github/workflows/spell-check.yml
vendored
2
.github/workflows/spell-check.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
|||||||
uses: codespell-project/actions-codespell@master
|
uses: codespell-project/actions-codespell@master
|
||||||
with:
|
with:
|
||||||
# In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here:
|
# In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here:
|
||||||
ignore_words_list:
|
ignore_words_list: ""
|
||||||
builtin: clear,informal,en-GB_to_en-US
|
builtin: clear,informal,en-GB_to_en-US
|
||||||
check_filenames: true
|
check_filenames: true
|
||||||
check_hidden: true
|
check_hidden: true
|
||||||
|
|||||||
Reference in New Issue
Block a user