80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: Check SPDX-License-Identifier
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|       - develop
 | |
|   pull_request:
 | |
| 
 | |
| jobs:
 | |
|   check-spdx-license-id:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v4.2.2
 | |
|       - name: Check
 | |
|         run: |
 | |
|           counter=0
 | |
| 
 | |
|           search() {
 | |
|             local directory="$1"
 | |
|             find "$directory" -type f \
 | |
|               '(' \
 | |
|                 -name "*.cjs" -and -not -name '*.config.cjs' -o \
 | |
|                 -name "*.html" -o \
 | |
|                 -name "*.js" -and -not -name '*.config.js' -o \
 | |
|                 -name "*.mjs" -and -not -name '*.config.mjs' -o \
 | |
|                 -name "*.scss" -o \
 | |
|                 -name "*.ts" -and -not -name '*.config.ts' -o \
 | |
|                 -name "*.vue" \
 | |
|               ')' -and \
 | |
|               -not -name '*eslint*'
 | |
|           }
 | |
| 
 | |
|           check() {
 | |
|             local file="$1"
 | |
|             if ! (
 | |
|               grep -q "SPDX-FileCopyrightText: syuilo and misskey-project" "$file" ||
 | |
|               grep -q "SPDX-License-Identifier: AGPL-3.0-only" "$file"
 | |
|             ); then
 | |
|               echo "Missing: $file"
 | |
|               ((counter++))
 | |
|             fi
 | |
|           }
 | |
| 
 | |
|           directories=(
 | |
|             "cypress/e2e"
 | |
|             "packages/backend/migration"
 | |
|             "packages/backend/src"
 | |
|             "packages/backend/test"
 | |
|             "packages/frontend-shared/@types"
 | |
|             "packages/frontend-shared/js"
 | |
|             "packages/frontend/.storybook"
 | |
|             "packages/frontend/@types"
 | |
|             "packages/frontend/lib"
 | |
|             "packages/frontend/public"
 | |
|             "packages/frontend/src"
 | |
|             "packages/frontend/test"
 | |
|             "packages/frontend-embed/@types"
 | |
|             "packages/frontend-embed/src"
 | |
|             "packages/misskey-bubble-game/src"
 | |
|             "packages/misskey-reversi/src"
 | |
|             "packages/sw/src"
 | |
|             "scripts"
 | |
|           )
 | |
| 
 | |
|           for directory in "${directories[@]}"; do
 | |
|             for file in $(search $directory); do
 | |
|               check "$file"
 | |
|             done
 | |
|           done
 | |
| 
 | |
|           if [ $counter -gt 0 ]; then
 | |
|             echo "SPDX-License-Identifier is missing in $counter files."
 | |
|             exit 1
 | |
|           else
 | |
|             echo "SPDX-License-Identifier is certainly described in all target files!"
 | |
|             exit 0
 | |
|           fi          
 |