generate-manifest.yml (1.2 KB)


 1 name: Generate Resource Manifest
 2 
 3 on:
 4   push:
 5     branches: [ main ]
 6     paths: [ 'resources/**' ]  # Run when resources (including images) are added/changed
 7   workflow_dispatch:  # Allow manual trigger
 8 
 9 jobs:
10   generate-manifest:
11     runs-on: ubuntu-latest
12     permissions:
13       contents: write
14     
15     steps:
16     - name: Checkout repository
17       uses: actions/checkout@v4
18       with:
19         token: ${{ secrets.GITHUB_TOKEN }}
20     
21     - name: Set up Python
22       uses: actions/setup-python@v4
23       with:
24         python-version: '3.x'
25     
26     - name: Generate resource manifest
27       run: python resources/scripts/generate_resource_manifest.py
28     
29     - name: Check for changes
30       id: verify-changed-files
31       run: |
32         if [ -n "$(git status --porcelain)" ]; then
33           echo "changed=true" >> $GITHUB_OUTPUT
34         else
35           echo "changed=false" >> $GITHUB_OUTPUT
36         fi
37     
38     - name: Commit and push changes
39       if: steps.verify-changed-files.outputs.changed == 'true'
40       run: |
41         git config --local user.email "action@github.com"
42         git config --local user.name "GitHub Action"
43         git add resources/resource-manifest.json
44         git commit -m "Auto-update resource manifest [skip ci]"
45         git push