| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- name: Validate Plugin Licenses
- on:
- pull_request:
- paths:
- - 'plugins/**'
- push:
- branches: [main]
- paths:
- - 'plugins/**'
- permissions:
- contents: read
- jobs:
- validate-licenses:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Check every plugin has an Apache 2.0 LICENSE file
- run: |
- set -euo pipefail
- missing=()
- wrong_content=()
- for plugin_dir in plugins/*/; do
- plugin="${plugin_dir%/}"
- if [[ ! -f "$plugin/LICENSE" ]]; then
- missing+=("$plugin")
- elif ! grep -q "Apache License" "$plugin/LICENSE" || \
- ! grep -q "Version 2.0" "$plugin/LICENSE"; then
- wrong_content+=("$plugin")
- fi
- done
- if [[ "${#missing[@]}" -gt 0 ]]; then
- echo "::error::The following plugins are missing a LICENSE file:"
- for p in "${missing[@]}"; do
- echo " - $p"
- done
- exit 1
- fi
- if [[ "${#wrong_content[@]}" -gt 0 ]]; then
- echo "::error::The following plugins have a LICENSE file that does not contain Apache 2.0 text:"
- for p in "${wrong_content[@]}"; do
- echo " - $p"
- done
- exit 1
- fi
- echo "All $(ls -d plugins/*/ | wc -l) plugins have an Apache 2.0 LICENSE file."
|