upd job_sync
Some checks are pending
coverage / build (pull_request) Blocked by required conditions
test / test (pull_request) Blocked by required conditions

This commit is contained in:
2025-12-29 13:08:48 +03:00
parent a3fa32db52
commit a0a3f07c90

View File

@@ -11,42 +11,84 @@ jobs:
if: github.server_url != 'https://github.com' if: github.server_url != 'https://github.com'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: init - name: init
run: | run: |
git config --global user.email "vtolstov <vtolstov@users.noreply.github.com>" git config --global user.email "vtolstov <vtolstov@users.noreply.github.com>"
git config --global user.name "github-actions[bot]" git config --global user.name "github-actions[bot]"
echo "machine git.unistack.org login vtolstov password ${{ secrets.TOKEN_GITEA }}" >> /root/.netrc echo "machine git.unistack.org login vtolstov password ${{ secrets.TOKEN_GITEA }}" >> /root/.netrc
echo "machine github.com login vtolstov password ${{ secrets.TOKEN_GITHUB }}" >> /root/.netrc echo "machine github.com login vtolstov password ${{ secrets.TOKEN_GITHUB }}" >> /root/.netrc
- name: sync master - name: check master
run: | id: check_master
git clone --filter=blob:none --filter=tree:0 --branch master --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo run: |
cd repo src_hash=$(git ls-remote https://github.com/${GITHUB_REPOSITORY} refs/heads/master | cut -f1)
git remote add --no-tags --fetch --track master upstream https://github.com/${GITHUB_REPOSITORY} dst_hash=$(git ls-remote ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} refs/heads/master | cut -f1)
git pull --rebase upstream master echo "src_hash=$src_hash"
git push upstream master --progress echo "dst_hash=$dst_hash"
git push origin master --progress if [ "$src_hash" != "$dst_hash" -a "$src_hash" != "" -a "$dst_hash" != "" ]; then
cd ../ echo "sync_needed=true" >> $GITHUB_OUTPUT
rm -rf repo else
echo "sync_needed=false" >> $GITHUB_OUTPUT
fi
- name: sync v3 - name: sync master
run: | if: steps.check_master.outputs.sync_needed == 'true'
git clone --filter=blob:none --filter=tree:0 --branch v3 --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo run: |
cd repo git clone --filter=blob:none --filter=tree:0 --branch master --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo
git remote add --no-tags --fetch --track v3 upstream https://github.com/${GITHUB_REPOSITORY} cd repo
git pull --rebase upstream v3 git remote add --no-tags --fetch --track master upstream https://github.com/${GITHUB_REPOSITORY}
git push upstream v3 --progress git pull --rebase upstream master
git push origin v3 --progress git push upstream master --progress
cd ../ git push origin master --progress
rm -rf repo cd ../
rm -rf repo
- name: sync v4 - name: check v3
run: | id: check_v3
git clone --filter=blob:none --filter=tree:0 --branch v4 --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo run: |
cd repo src_hash=$(git ls-remote https://github.com/${GITHUB_REPOSITORY} refs/heads/v3 | cut -f1)
git remote add --no-tags --fetch --track v4 upstream https://github.com/${GITHUB_REPOSITORY} dst_hash=$(git ls-remote ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} refs/heads/v3 | cut -f1)
git pull --rebase upstream v4 echo "src_hash=$src_hash"
git push upstream v4 --progress echo "dst_hash=$dst_hash"
git push origin v4 --progress if [ "$src_hash" != "$dst_hash" ]; then
cd ../ echo "sync_needed=true" >> $GITHUB_OUTPUT
rm -rf repo else
echo "sync_needed=false" >> $GITHUB_OUTPUT
fi
- name: sync v3
if: steps.check_v3.outputs.sync_needed == 'true'
run: |
git clone --filter=blob:none --filter=tree:0 --branch v3 --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo
cd repo
git remote add --no-tags --fetch --track v3 upstream https://github.com/${GITHUB_REPOSITORY}
git pull --rebase upstream v3
git push upstream v3 --progress
git push origin v3 --progress
cd ../
rm -rf repo
- name: check v4
id: check_v4
run: |
src_hash=$(git ls-remote https://github.com/${GITHUB_REPOSITORY} refs/heads/v4 | cut -f1)
dst_hash=$(git ls-remote ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} refs/heads/v4 | cut -f1)
echo "src_hash=$src_hash"
echo "dst_hash=$dst_hash"
if [ "$src_hash" != "$dst_hash" ]; then
echo "sync_needed=true" >> $GITHUB_OUTPUT
else
echo "sync_needed=false" >> $GITHUB_OUTPUT
fi
- name: sync v4
if: steps.check_v4.outputs.sync_needed == 'true'
run: |
git clone --filter=blob:none --filter=tree:0 --branch v4 --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} repo
cd repo
git remote add --no-tags --fetch --track v4 upstream https://github.com/${GITHUB_REPOSITORY}
git pull --rebase upstream v4
git push upstream v4 --progress
git push origin v4 --progress
cd ../
rm -rf repo