diff --git a/.github/workflows/sync-with-gitlab.yml b/.github/workflows/sync-with-gitlab.yml new file mode 100644 index 0000000..d1f8f8a --- /dev/null +++ b/.github/workflows/sync-with-gitlab.yml @@ -0,0 +1,31 @@ +name: Automatic sync with Gitlab's read-only mirror + +on: [workflow_dispatch, push] + +jobs: + mirror: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up SSH key for Runner + env: + SSH_KEY: ${{ secrets.GITLAB_DEPLOY_KEY }} + run: | + mkdir -p ~/.ssh + echo "$SSH_KEY" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts + ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts + + - name: Clone repository from GitHub as mirror and push to Gitlab + env: + REPO_ORIGINAL: "https://github.com/rehlds/metamod-r.git" + REPO_TARGET: "git@gitlab.com:rehlds/metamod-r.git" + run: | + git clone --mirror "$REPO_ORIGINAL" repo-mirror + cd repo-mirror + git remote set-url origin "$REPO_TARGET" + git push --mirror --force