diff --git a/.github/workflows/sync-main.yml b/.github/workflows/sync-main.yml new file mode 100644 index 0000000000000..b7c1331d0c6c9 --- /dev/null +++ b/.github/workflows/sync-main.yml @@ -0,0 +1,47 @@ +name: automatic sync main branch from llvm-project to llvm + +on: + schedule: + - cron: '*/10 * * * *' +jobs: + sync-main: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + 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 + 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 origin + 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 origin + fi + echo "sync finished" diff --git a/README.md b/README.md index 68cb9cd1deefc..31b46298c6a87 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details. ## DPC++ extensions + + + DPC++ is an open, cross-architecture language built upon the ISO C++ and Khronos SYCL\* standards. DPC++ extends these standards with a number of extensions, which can be found in [sycl/doc/extensions](sycl/doc/extensions) directory.