name: Auto Update .app-files on: push: branches: - main paths: - 'ct/**.sh' workflow_dispatch: # Ermöglicht das manuelle Ausführen der Action jobs: update-app-files: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v2 # Step 2: Set up Git user for committing changes - name: Set up Git run: | git config --global user.name "GitHub Actions" git config --global user.email "actions@github.com" # Step 3: Install figlet - name: Install figlet run: sudo apt-get install -y figlet # Step 4: Run the updated generate-app-files.sh script - name: Run generate-app-files.sh run: | chmod +x .github/workflows/scripts/generate-app-headers.sh .github/workflows/scripts/generate-app-headers.sh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Step 5: Check for changes - name: Check if there are any changes id: verify-diff run: | git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT # Step 6: Commit changes (if any) and create a PR - name: Commit and create PR if changes exist if: steps.verify-diff.outputs.changed == 'true' run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" git add ct/*.app git commit -m "Update .app files" git checkout -b pr-update-app-files git push origin pr-update-app-files --force # Create PR against main gh pr create --title "[core] update .app files" \ --body "This PR is auto-generated by a Github Action to update the .app files." \ --head pr-update-app-files \ --base main \ --label "automated pr" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Re-approve pull request after update if: steps.verify-diff.outputs.changed == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then gh pr review "$PR_NUMBER" --approve else echo "PR was created by the bot, skipping review."