|
1 |
| -name: Check license |
| 1 | +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-license.md |
| 2 | +name: Check License |
2 | 3 |
|
3 | 4 | env:
|
4 | 5 | EXPECTED_LICENSE_FILENAME: LICENSE.txt
|
5 | 6 | # SPDX identifier: https://spdx.org/licenses/
|
6 | 7 | EXPECTED_LICENSE_TYPE: CC0-1.0
|
7 | 8 |
|
| 9 | +# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows |
8 | 10 | on:
|
9 | 11 | push:
|
10 | 12 | paths:
|
11 |
| - - ".github/workflows/check-license.yml" |
12 |
| - # Recognized license files. |
| 13 | + - ".github/workflows/check-license.ya?ml" |
13 | 14 | # See: https://github.com/licensee/licensee/blob/master/docs/what-we-look-at.md#detecting-the-license-file
|
14 | 15 | - "[cC][oO][pP][yY][iI][nN][gG]*"
|
15 | 16 | - "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*"
|
|
18 | 19 | - "[pP][aA][tT][eE][nN][tT][sS]*"
|
19 | 20 | pull_request:
|
20 | 21 | paths:
|
21 |
| - - ".github/workflows/check-license.yml" |
| 22 | + - ".github/workflows/check-license.ya?ml" |
22 | 23 | - "[cC][oO][pP][yY][iI][nN][gG]*"
|
23 | 24 | - "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*"
|
24 | 25 | - "[lL][iI][cC][eE][nN][cCsS][eE]*"
|
25 | 26 | - "[oO][fF][lL]*"
|
26 | 27 | - "[pP][aA][tT][eE][nN][tT][sS]*"
|
| 28 | + workflow_dispatch: |
| 29 | + repository_dispatch: |
27 | 30 |
|
28 | 31 | jobs:
|
29 |
| - check: |
| 32 | + check-license: |
30 | 33 | runs-on: ubuntu-latest
|
31 | 34 |
|
32 | 35 | steps:
|
33 |
| - - name: Checkout local repository |
34 |
| - uses: actions/checkout@v2 |
| 36 | + - name: Checkout repository |
| 37 | + uses: actions/checkout@v3 |
35 | 38 |
|
36 |
| - - uses: ruby/setup-ruby@v1 |
| 39 | + - name: Install Ruby |
| 40 | + uses: ruby/setup-ruby@v1 |
37 | 41 | with:
|
38 | 42 | ruby-version: ruby # Install latest version
|
39 | 43 |
|
40 | 44 | - name: Install licensee
|
41 | 45 | run: gem install licensee
|
42 | 46 |
|
43 |
| - # See: https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/licensing-a-repository |
44 | 47 | - name: Check license file
|
45 | 48 | run: |
|
| 49 | + EXIT_STATUS=0 |
46 | 50 | # See: https://github.com/licensee/licensee
|
47 | 51 | LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)"
|
48 | 52 |
|
49 | 53 | DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')"
|
50 | 54 | echo "Detected license file: $DETECTED_LICENSE_FILE"
|
51 |
| - if [ "$DETECTED_LICENSE_FILE" != "\"$EXPECTED_LICENSE_FILENAME\"" ]; then |
52 |
| - echo "ERROR: detected license file doesn't match expected: $EXPECTED_LICENSE_FILENAME" |
53 |
| - exit 1 |
| 55 | + if [ "$DETECTED_LICENSE_FILE" != "\"${EXPECTED_LICENSE_FILENAME}\"" ]; then |
| 56 | + echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: $EXPECTED_LICENSE_FILENAME" |
| 57 | + EXIT_STATUS=1 |
54 | 58 | fi
|
55 | 59 |
|
56 | 60 | DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')"
|
57 | 61 | echo "Detected license type: $DETECTED_LICENSE_TYPE"
|
58 |
| - if [ "$DETECTED_LICENSE_TYPE" != "\"$EXPECTED_LICENSE_TYPE\"" ]; then |
59 |
| - echo "ERROR: detected license type doesn't match expected $EXPECTED_LICENSE_TYPE" |
60 |
| - exit 1 |
| 62 | + if [ "$DETECTED_LICENSE_TYPE" != "\"${EXPECTED_LICENSE_TYPE}\"" ]; then |
| 63 | + echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${EXPECTED_LICENSE_TYPE}\"" |
| 64 | + EXIT_STATUS=1 |
61 | 65 | fi
|
| 66 | +
|
| 67 | + exit $EXIT_STATUS |
0 commit comments