12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- name: Create PR to import libraries to main
- on:
- workflow_dispatch:
- concurrency:
- group: ${{ github.workflow }}
- cancel-in-progress: true
- env:
- REPO: ${{ github.repository }}
- TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
- jobs:
- sync:
- runs-on: ubuntu-latest
- steps:
- - name: Get current date
- id: date
- run: echo "::set-output name=dtm::$(date +'%y%m%d-%H%M')"
- - name: Sync
- run: |
- currsha=$(curl -s -H "Accept: application/vnd.github.VERSION.sha" https://api.github.com/repos/$REPO/commits/rightlib)
- echo "Current rightlib sha: ${currsha}"
- lastsha=$(curl -s https://raw.githubusercontent.com/$REPO/main/ydb/ci/rightlib.txt)
- echo "Last imported rightlib sha: ${lastsha}"
- if [ "${currsha}" == "${lastsha}" ];then
- echo "No new commits on the rightlib branch to merge, exiting"
- exit 0
- fi
- echo "Git clone..."
- git clone https://$TOKEN@github.com/$REPO.git ydb
- git config --global user.email "alex@ydb.tech"
- git config --global user.name "Alexander Smirnov"
- cd ydb
- # git fetch --depth `expr $(git rev-list --count HEAD) + 1`
- # echo "Commits in rightlib: $(git rev-list --count HEAD)"
- # echo "Fetch main..."
- # git fetch origin main:main --shallow-exclude rightlib
- # git fetch --depth `expr $(git rev-list --count main) + 1`
- # echo "Commits in main: $(git rev-list --count main)"
- git checkout rightlib
- libsha=$(git rev-parse HEAD)
- echo "Libs sha: $libsha"
- echo "Dev branch..."
- git checkout main
- devbranch="mergelibs-${{ steps.date.outputs.dtm }}"
- git checkout -b ${devbranch}
- prevsha=$(git rev-parse HEAD)
- git merge rightlib --no-edit
- currsha=$(git rev-parse HEAD)
- if [ ${prevsha} == ${currsha} ];then
- echo "Merge did not bring any changes, exiting"
- exit
- fi
- echo ${libsha} > ydb/ci/rightlib.txt
- git add .
- git commit -m "Import libraries ${{ steps.date.outputs.dtm }}"
- git push --set-upstream origin mergelibs-${{ steps.date.outputs.dtm }}
- curl -L -X POST --fail-with-body \
- -H "Accept: application/vnd.github+json" \
- -H "Authorization: Bearer $TOKEN" \
- -H "X-GitHub-Api-Version: 2022-11-28" \
- https://api.github.com/repos/$REPO/pulls \
- -d '{"title":"Library import ${{ steps.date.outputs.dtm }}","body":"","head":"'${devbranch}'","base":"main"}'
|