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.png" 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) # If thumbnail exceeds 1920x500, exit with error if [ "$WIDTH" -gt 1920 ] || [ "$HEIGHT" -gt 500 ]; then echo "Error: Thumbnail in $MOD_DIR exceeds the 1920×500 recommended size." 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: ajv-validator/ajv-cli-action@v1 with: schema: "./schema/meta.schema.json" files: "mods/*/meta.json"