forked from arduino/compile-sketches
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request arduino#115 from per1234/check-license
Add CI workflow to check the license file
- Loading branch information
Showing
3 changed files
with
97 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-license.md | ||
name: Check License | ||
|
||
env: | ||
EXPECTED_LICENSE_FILENAME: LICENSE.txt | ||
# SPDX identifier: https://spdx.org/licenses/ | ||
EXPECTED_LICENSE_TYPE: GPL-3.0 | ||
|
||
# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows | ||
on: | ||
create: | ||
push: | ||
paths: | ||
- ".github/workflows/check-license.ya?ml" | ||
# See: https://github.com/licensee/licensee/blob/master/docs/what-we-look-at.md#detecting-the-license-file | ||
- "[cC][oO][pP][yY][iI][nN][gG]*" | ||
- "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*" | ||
- "[lL][iI][cC][eE][nN][cCsS][eE]*" | ||
- "[oO][fF][lL]*" | ||
- "[pP][aA][tT][eE][nN][tT][sS]*" | ||
pull_request: | ||
paths: | ||
- ".github/workflows/check-license.ya?ml" | ||
- "[cC][oO][pP][yY][iI][nN][gG]*" | ||
- "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*" | ||
- "[lL][iI][cC][eE][nN][cCsS][eE]*" | ||
- "[oO][fF][lL]*" | ||
- "[pP][aA][tT][eE][nN][tT][sS]*" | ||
schedule: | ||
# Run periodically to catch breakage caused by external changes. | ||
- cron: "0 6 * * WED" | ||
workflow_dispatch: | ||
repository_dispatch: | ||
|
||
jobs: | ||
run-determination: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
result: ${{ steps.determination.outputs.result }} | ||
steps: | ||
- name: Determine if the rest of the workflow should run | ||
id: determination | ||
run: | | ||
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" | ||
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. | ||
if [[ | ||
"${{ github.event_name }}" != "create" || | ||
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX | ||
]]; then | ||
# Run the other jobs. | ||
RESULT="true" | ||
else | ||
# There is no need to run the other jobs. | ||
RESULT="false" | ||
fi | ||
echo "result=$RESULT" >> $GITHUB_OUTPUT | ||
check-license: | ||
needs: run-determination | ||
if: needs.run-determination.outputs.result == 'true' | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: ruby # Install latest version | ||
|
||
- name: Install licensee | ||
run: gem install licensee | ||
|
||
- name: Check license file | ||
run: | | ||
EXIT_STATUS=0 | ||
# See: https://github.com/licensee/licensee | ||
LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)" | ||
DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')" | ||
echo "Detected license file: $DETECTED_LICENSE_FILE" | ||
if [ "$DETECTED_LICENSE_FILE" != "\"${EXPECTED_LICENSE_FILENAME}\"" ]; then | ||
echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: $EXPECTED_LICENSE_FILENAME" | ||
EXIT_STATUS=1 | ||
fi | ||
DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')" | ||
echo "Detected license type: $DETECTED_LICENSE_TYPE" | ||
if [ "$DETECTED_LICENSE_TYPE" != "\"${EXPECTED_LICENSE_TYPE}\"" ]; then | ||
echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${EXPECTED_LICENSE_TYPE}\"" | ||
EXIT_STATUS=1 | ||
fi | ||
exit $EXIT_STATUS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,3 @@ | ||
This file includes licensing information for Arduino GitHub Actions. | ||
|
||
Copyright (c) 2019 ARDUINO SA | ||
|
||
The software is released under the GNU General Public License, which covers the main body | ||
of the [insert app name] code. The terms of this license can be found at: | ||
https://www.gnu.org/licenses/gpl-3.0.en.html | ||
|
||
You can be released from the requirements of the above licenses by purchasing | ||
a commercial license. Buying such a license is mandatory if you want to modify or | ||
otherwise use the software for commercial activities involving the Arduino | ||
software without disclosing the source code of your own applications. To purchase | ||
a commercial license, send an email to [email protected] | ||
|
||
GNU GENERAL PUBLIC LICENSE | ||
Version 3, 29 June 2007 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters