Add workflow to automatically update LICENSE file with recipe licenses

Originally from meta-freescale-3rdparty.

Signed-off-by: Abner C. Paula <abner.cordeiro@ossystems.com.br>
(cherry picked from commit 77f6565f4a)
This commit is contained in:
Abner C. Paula 2024-12-05 08:50:26 -03:00 committed by Rodrigo M. Duarte
parent c0c3b61088
commit b18d9c7ff9
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,35 @@
name: Update LICENSE file
on:
push:
paths:
- "**/*.bb"
- "**/*.inc"
schedule:
- cron: "0 0 * * *" # Runs daily at midnight
workflow_dispatch: # Allows manual run
jobs:
update-license:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Run license generation script
run: |
./scripts/generate-license-file
- name: Commit and push LICENSE file
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git add LICENSE
if ! git diff-index --quiet HEAD; then
git commit -m "Auto-update LICENSE file with current recipe licenses"
git push
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

18
scripts/generate-license-file Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
# Create or clear the LICENSE file
echo "# License Information" > LICENSE
echo "" >> LICENSE
echo "This file lists all licenses used by recipes in the meta-freescale-3rdparty layer." >> LICENSE
echo "" >> LICENSE
# Find all .bb and .inc files and extract license information
find . -type f \( -name "*.bb" -o -name "*.inc" \) | while read -r file; do
# Extract the license line from each recipe file, if it exists
license_line=$(grep -i "^LICENSE" "$file")
if [ -n "$license_line" ]; then
echo "$file: $license_line" >> LICENSE
fi
done
echo "LICENSE file has been generated and updated with current recipe licenses."