Fork Sync #16513
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: Fork Sync | |
on: | |
schedule: | |
- cron: '0 */3 * * *' # every 3 hours | |
workflow_dispatch: # on button click | |
jobs: | |
sync: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
- name: Merge upstream changes | |
run: | | |
set -e | |
set -x | |
git config --global user.name "$GITHUB_ACTOR" | |
git config --global user.email "[email protected]" | |
git remote add upstream https://github.com/theos/theos.git | |
git checkout master && git fetch upstream && git merge upstream/master | |
cd vendor/lib | |
git remote add upstream https://github.com/theos/lib.git | |
git checkout master && git fetch upstream && git merge upstream/master && git push | |
cd - | |
cd vendor/include | |
git remote add upstream https://github.com/theos/headers.git | |
git checkout master && git fetch upstream && git merge upstream/master && git push | |
cd - | |
# revert submodules to upstream commits | |
git submodule update --recursive | |
git commit --all -m "Sync Repo" && git push || echo "No changes" | |