mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 00:28:23 +01:00
46 lines
1.2 KiB
YAML
46 lines
1.2 KiB
YAML
name: Lint subtrees.json
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '.github/subtrees.json'
|
|
|
|
workflow_call:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
lint-subtrees:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout PR code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Validate subtrees.json
|
|
run: |
|
|
set -e
|
|
|
|
FILE=".github/subtrees.json"
|
|
|
|
echo "Validating $FILE..."
|
|
|
|
# Ensure it's valid JSON
|
|
jq empty "$FILE"
|
|
|
|
# Check required structure
|
|
missing=$(jq 'to_entries | map(select(.value.prefix == null or .value.url == null)) | length' "$FILE")
|
|
if [ "$missing" -ne 0 ]; then
|
|
echo "❌ Some subtree entries are missing 'prefix' or 'url'"
|
|
jq 'to_entries | map(select(.value.prefix == null or .value.url == null))' "$FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# Optional: check for bad URLs
|
|
bad_urls=$(jq -r 'to_entries[] | select(.value.url | test("https://.+\\.git$") | not) | .key' "$FILE")
|
|
if [ -n "$bad_urls" ]; then
|
|
echo "❌ Invalid URLs found for the following subtrees:"
|
|
echo "$bad_urls"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ subtrees.json looks good!"
|