Update update-submodules.yml #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update Submodules | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
update-submodules: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Configure Git identity | |
run: | | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
- name: Update submodules | |
run: | | |
git submodule foreach ' | |
git pull --ff-only origin $(git rev-parse --abbrev-ref HEAD) || | |
(git merge --no-ff origin/$(git rev-parse --abbrev-ref HEAD) || true)' | |
- name: Resolve merge conflicts (if any) | |
run: | | |
git submodule foreach ' | |
if git status | grep "Unmerged paths"; then | |
echo "Conflict detected, resolving with theirs strategy"; | |
git merge -X theirs --no-edit; | |
fi' | |
- name: Commit and push updated submodules | |
run: | | |
git add . | |
git commit -m "Resolve merge conflicts (theirs strategy) and update submodules" || echo "No changes to commit" | |
git push |