Merge upstream branches #35171
This file contains hidden or 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
| # .github/workflows/example.yml | |
| name: Merge upstream branches | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| # actually, ~5 minutes is the highest | |
| # effective frequency you will get | |
| - cron: '0 * * * *' | |
| jobs: | |
| merge-upstream-to-all-branches: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2.4.0 | |
| - name: Merge upstream | |
| run: | | |
| git config --global user.name 'bot' | |
| git config --global user.email 'bot@noreply.com' | |
| for BRANCH in `git branch --list|sed 's/\*//g'`; | |
| do | |
| git checkout $BRANCH | |
| git fetch --all | |
| git pull --unshallow # this option is very important, you would get | |
| # complains about unrelated histories without it. | |
| # (but actions/checkout@v2 can also be instructed | |
| # to fetch all git depth right from the start) | |
| git remote add upstream https://github.com/torvalds/linux | |
| git fetch upstream master | |
| git pull --rebase upstream master | |
| git push -f origin $BRANCH | |
| git remote remove upstream | |
| done |