summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbner C. Paula <abner.cordeiro@ossystems.com.br>2024-12-05 08:50:26 -0300
committerRodrigo M. Duarte <rodrigo.duarte@ossystems.com.br>2025-04-01 14:53:49 -0300
commit92a20d902d18cb9f0f762e5c7ab6278d49b48071 (patch)
tree8aceb3b0bcfd48a2be08a03b3111319dd3bc0ca1
parent501032fb30abbad54616a2d9bb4555c297fc35b6 (diff)
downloadmeta-freescale-92a20d902d18cb9f0f762e5c7ab6278d49b48071.tar.gz
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 77f6565f4ac5d9a57dc49abafa04dca07cb2979a)
-rw-r--r--.github/workflows/update-license-file.yml35
-rwxr-xr-xscripts/generate-license-file18
2 files changed, 53 insertions, 0 deletions
diff --git a/.github/workflows/update-license-file.yml b/.github/workflows/update-license-file.yml
new file mode 100644
index 00000000..5b62ec11
--- /dev/null
+++ b/.github/workflows/update-license-file.yml
@@ -0,0 +1,35 @@
1name: Update LICENSE file
2
3on:
4 push:
5 paths:
6 - "**/*.bb"
7 - "**/*.inc"
8 schedule:
9 - cron: "0 0 * * *" # Runs daily at midnight
10 workflow_dispatch: # Allows manual run
11
12jobs:
13 update-license:
14 runs-on: ubuntu-latest
15
16 steps:
17 - name: Checkout repository
18 uses: actions/checkout@v3
19
20 - name: Run license generation script
21 run: |
22 ./scripts/generate-license-file
23
24 - name: Commit and push LICENSE file
25 run: |
26 git config --local user.name "github-actions[bot]"
27 git config --local user.email "github-actions[bot]@users.noreply.github.com"
28 git add LICENSE
29 if ! git diff-index --quiet HEAD; then
30 git commit -m "Auto-update LICENSE file with current recipe licenses"
31 git push
32 fi
33
34 env:
35 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/scripts/generate-license-file b/scripts/generate-license-file
new file mode 100755
index 00000000..b6d43cd9
--- /dev/null
+++ b/scripts/generate-license-file
@@ -0,0 +1,18 @@
1#!/bin/bash
2
3# Create or clear the LICENSE file
4echo "# License Information" > LICENSE
5echo "" >> LICENSE
6echo "This file lists all licenses used by recipes in the meta-freescale-3rdparty layer." >> LICENSE
7echo "" >> LICENSE
8
9# Find all .bb and .inc files and extract license information
10find . -type f \( -name "*.bb" -o -name "*.inc" \) | while read -r file; do
11 # Extract the license line from each recipe file, if it exists
12 license_line=$(grep -i "^LICENSE" "$file")
13 if [ -n "$license_line" ]; then
14 echo "$file: $license_line" >> LICENSE
15 fi
16done
17
18echo "LICENSE file has been generated and updated with current recipe licenses."