82 lines
2.4 KiB
YAML
82 lines
2.4 KiB
YAML
name: Validate Balatro Mods
|
||
|
||
on:
|
||
pull_request:
|
||
paths:
|
||
- "mods/**"
|
||
|
||
jobs:
|
||
validate:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Check out repository
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Install ImageMagick
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y imagemagick
|
||
|
||
- name: Check Required Files
|
||
run: |
|
||
for dir in mods/*/; do
|
||
if [ -d "$dir" ]; then
|
||
MOD_DIR="$(basename "$dir")"
|
||
|
||
# Ensure description.md and meta.json exist
|
||
if [ ! -f "$dir/description.md" ]; then
|
||
echo "Error: Missing description.md in $MOD_DIR"
|
||
exit 1
|
||
fi
|
||
|
||
if [ ! -f "$dir/meta.json" ]; then
|
||
echo "Error: Missing meta.json in $MOD_DIR"
|
||
exit 1
|
||
fi
|
||
fi
|
||
done
|
||
|
||
- name: Check Thumbnail Dimensions
|
||
run: |
|
||
for dir in mods/*/; do
|
||
if [ -d "$dir" ]; then
|
||
MOD_DIR="$(basename "$dir")"
|
||
THUMBNAIL="$dir/thumbnail.jpg"
|
||
|
||
if [ -f "$THUMBNAIL" ]; then
|
||
# Extract width and height using ImageMagick
|
||
DIMENSIONS=$(identify -format "%wx%h" "$THUMBNAIL")
|
||
WIDTH=$(echo "$DIMENSIONS" | cut -dx -f1)
|
||
HEIGHT=$(echo "$DIMENSIONS" | cut -dx -f2)
|
||
|
||
# Check if dimensions exceed 1920x500
|
||
if [ "$WIDTH" -gt 1920 ] || [ "$HEIGHT" -gt 500 ]; then
|
||
echo "Error: Thumbnail in $MOD_DIR exceeds the recommended size of 1920×500."
|
||
exit 1
|
||
fi
|
||
fi
|
||
fi
|
||
done
|
||
|
||
- name: Validate JSON Format
|
||
uses: github/super-linter@v4
|
||
env:
|
||
VALIDATE_JSON: true
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
- name: Validate meta.json Against Schema
|
||
uses: dsanders11/json-schema-validate-action@v1.2.0
|
||
with:
|
||
schema: "./schema/meta.schema.json"
|
||
files: |
|
||
mods/*/meta.json
|
||
|
||
review-and-approve:
|
||
needs: validate # This job will only run after 'validate' completes successfully.
|
||
runs-on: ubuntu-latest
|
||
environment:
|
||
name: mod-review # This is the environment you created earlier.
|
||
steps:
|
||
- name: Await Approval from Maintainers
|
||
run: echo "Waiting for manual approval by maintainers..."
|