File: check-taskfiles.yml

package info (click to toggle)
golang-github-arduino-pluggable-monitor-protocol-handler 0.9.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 292 kB
  • sloc: makefile: 4
file content (59 lines) | stat: -rw-r--r-- 1,776 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-taskfiles.md
name: Check Taskfiles

# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
on:
  push:
    paths:
      - ".github/workflows/check-taskfiles.ya?ml"
      - "**/Taskfile.ya?ml"
  pull_request:
    paths:
      - ".github/workflows/check-taskfiles.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:
    name: Validate ${{ matrix.file }}
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false

      matrix:
        file:
          # TODO: add paths to any additional Taskfiles here
          - ./**/Taskfile.yml

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Download JSON schema for Taskfiles
        id: download-schema
        uses: carlosperate/download-file-action@v1
        with:
          # See: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/taskfile.json
          file-url: https://json.schemastore.org/taskfile.json
          location: ${{ runner.temp }}/taskfile-schema

      - name: Install JSON schema validator
        run: |
          sudo npm install \
            --global \
            ajv-cli \
            ajv-formats
      - name: Validate ${{ matrix.file }}
        run: |
          # See: https://github.com/ajv-validator/ajv-cli#readme
          ajv validate \
            --all-errors \
            --strict=false \
            -c ajv-formats \
            -s "${{ steps.download-schema.outputs.file-path }}" \
            -d "${{ matrix.file }}"