forgejo/.forgejo/workflows/mirror.yml
Earl Warren 6b1a57d0ef
[CI] push forgejo branches to the specified destination (squash) verbose
(cherry picked from commit 848685d68d8bf7b7a38fea221db5e474cd30ea79)
(cherry picked from commit e8021f281f905e4499db4e67c91326932bfd613f)
(cherry picked from commit 2a4b3a2a4327c8000f0b583d91575c800c6035c4)
2024-02-05 13:33:59 +01:00

28 lines
941 B
YAML

name: mirror
on:
push:
branches:
- 'forgejo'
- 'v*/forgejo'
jobs:
mirror:
if: ${{ secrets.MIRROR_TOKEN != '' }}
runs-on: docker
container:
image: 'docker.io/node:20-bookworm'
steps:
- name: git push {v*/,}forgejo
run: |
git init --bare .
git remote add origin ${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}
git fetch origin refs/heads/forgejo:refs/mirror/forgejo
git ls-remote origin refs/heads/v*/forgejo | while read sha full_ref ; do
ref=${full_ref#refs/heads/}
echo git fetch origin $full_ref:refs/mirror/$ref
git fetch origin $full_ref:refs/mirror/$ref
done
echo git push --force https://${{ vars.MIRROR_DESTINATION }} refs/mirror/*:refs/heads/*
git push --force https://any:${{ secrets.MIRROR_TOKEN }}@${{ vars.MIRROR_DESTINATION }} refs/mirror/*:refs/heads/*