forked from intel/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
53 lines (50 loc) · 1.81 KB
/
sycl-sync-main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
name: main branch sync
on:
workflow_dispatch:
permissions: read-all
jobs:
sync:
permissions:
contents: write # for Git to git push
runs-on: ubuntu-20.04
if: github.repository == 'intel/llvm'
steps:
- uses: actions/checkout@v4
with:
# persist-credentials: false allows us to use our own credentials for
# pushing to the repository. Otherwise, the default github actions token
# is used.
persist-credentials: false
fetch-depth: 0
path: src
- name: Sync
env:
BRANCH: main
SYNC_REPO: https://github.com/llvm/llvm-project
LLVMBOT_TOKEN: ${{ secrets.LLVM_MAIN_SYNC_BBSYCL_TOKEN }}
run: |
cd $GITHUB_WORKSPACE/src
branch_exist=`git ls-remote --heads origin $BRANCH | wc -l`
if [ $branch_exist -ne 0 ]; then
git checkout $BRANCH
git pull --ff --ff-only $SYNC_REPO $BRANCH
if [ $? -ne 0 ]; then
echo "failed to pull from $SYNC_REPO $BRANCH, abort"
exit 1
fi
git_status=`git rev-list --count --left-right origin/$BRANCH...$BRANCH`
if [ "0 0" == "$git_status" ] ; then
echo "no change, skip"
elif [[ "$git_status" = 0* ]] ; then
git push https://[email protected]/${{ github.repository }} ${BRANCH}
else
echo "$BRANCH branch invalid state"
exit 1
fi
else
git remote add upstream $SYNC_REPO
git fetch upstream
git checkout -B $BRANCH upstream/$BRANCH
git push https://[email protected]/${{ github.repository }} ${BRANCH}
fi
echo "sync finished"