1
1
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-license.md
2
2
name : Check License
3
3
4
- env :
5
- EXPECTED_LICENSE_FILENAME : LICENSE.txt
6
- # SPDX identifier: https://spdx.org/licenses/
7
- EXPECTED_LICENSE_TYPE : GPL-3.0
8
-
9
4
# See: https://docs.github.com/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows
10
5
on :
11
6
create :
@@ -58,12 +53,23 @@ jobs:
58
53
echo "result=$RESULT" >> $GITHUB_OUTPUT
59
54
60
55
check-license :
56
+ name : ${{ matrix.check-license.path }}
61
57
needs : run-determination
62
58
if : needs.run-determination.outputs.result == 'true'
63
59
runs-on : ubuntu-latest
64
60
permissions :
65
61
contents : read
66
62
63
+ strategy :
64
+ fail-fast : false
65
+
66
+ matrix :
67
+ check-license :
68
+ - path : ./
69
+ expected-filename : LICENSE.txt
70
+ # SPDX identifier: https://spdx.org/licenses/
71
+ expected-type : GPL-3.0
72
+
67
73
steps :
68
74
- name : Checkout repository
69
75
uses : actions/checkout@v4
@@ -76,23 +82,27 @@ jobs:
76
82
- name : Install licensee
77
83
run : gem install licensee
78
84
79
- - name : Check license file
85
+ - name : Check license file for ${{ matrix.check-license.path }}
80
86
run : |
81
87
EXIT_STATUS=0
88
+
89
+ # Go into folder path
90
+ cd ./${{ matrix.check-license.path }}
91
+
82
92
# See: https://github.com/licensee/licensee
83
93
LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)"
84
94
85
95
DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')"
86
96
echo "Detected license file: $DETECTED_LICENSE_FILE"
87
- if [ "$DETECTED_LICENSE_FILE" != "\"${EXPECTED_LICENSE_FILENAME }\"" ]; then
88
- echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: $EXPECTED_LICENSE_FILENAME "
97
+ if [ "$DETECTED_LICENSE_FILE" != "\"${{ matrix.check-license.expected-filename } }\"" ]; then
98
+ echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: ${{ matrix.check-license.expected-filename }} "
89
99
EXIT_STATUS=1
90
100
fi
91
101
92
102
DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')"
93
103
echo "Detected license type: $DETECTED_LICENSE_TYPE"
94
- if [ "$DETECTED_LICENSE_TYPE" != "\"${EXPECTED_LICENSE_TYPE }\"" ]; then
95
- echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${EXPECTED_LICENSE_TYPE }\""
104
+ if [ "$DETECTED_LICENSE_TYPE" != "\"${{ matrix.check-license.expected-type } }\"" ]; then
105
+ echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${{ matrix.check-license.expected-type } }\""
96
106
EXIT_STATUS=1
97
107
fi
98
108
0 commit comments