name: Update Submodules on: schedule: - cron: '0 0 * * *' # Runs daily at midnight workflow_dispatch: permissions: contents: write pull-requests: write jobs: update-submodules: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 - name: Update submodules run: | git submodule update --remote --recursive - name: Check for changes id: diff run: | if [ -n "$(git status --porcelain)" ]; then echo "changes=true" >> $GITHUB_OUTPUT else echo "changes=false" >> $GITHUB_OUTPUT fi - name: Create Pull Request if: steps.diff.outputs.changes == 'true' uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: "chore: update submodules" title: "chore: update submodules" body: "Automated update of submodules to their latest commits." branch: update-submodules base: main delete-branch: true