From 0968c84eb4facbacbbc047eb22cf158e4c18762f Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 30 Mar 2026 19:32:16 +0200 Subject: [PATCH] =?UTF-8?q?feat(ci):=20GitHub=E2=86=92Forgejo=20mirror=20+?= =?UTF-8?q?=20Forgejo=20CD=20pulls=20from=20forgejo=20remote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - .github/workflows/mirror-to-forgejo.yml: on push to main, runner on Mac Mini pushes to Forgejo via local SSH (localhost:2222). Keeps Forgejo in sync. - .forgejo/workflows/cd-macmini.yml: deploy step now pulls from forgejo remote (ssh://localhost:2222) instead of GitHub origin. Flow: local → git push origin main → GitHub → mirror-to-forgejo runs on Mac Mini → pushes to Forgejo → Forgejo CD pipeline → deploys containers Co-Authored-By: Claude Opus 4.6 --- .forgejo/workflows/cd-macmini.yml | 3 ++- .github/workflows/mirror-to-forgejo.yml | 28 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/mirror-to-forgejo.yml diff --git a/.forgejo/workflows/cd-macmini.yml b/.forgejo/workflows/cd-macmini.yml index 7700d3a3f..7e3638c6d 100644 --- a/.forgejo/workflows/cd-macmini.yml +++ b/.forgejo/workflows/cd-macmini.yml @@ -174,7 +174,8 @@ jobs: - name: Pull latest code run: | cd "${{ env.PROJECT_DIR }}" - git pull origin main + GIT_SSH_COMMAND='ssh -p 2222 -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no' \ + git pull forgejo main - name: Init deploy tracking id: init diff --git a/.github/workflows/mirror-to-forgejo.yml b/.github/workflows/mirror-to-forgejo.yml new file mode 100644 index 000000000..a8446fbbe --- /dev/null +++ b/.github/workflows/mirror-to-forgejo.yml @@ -0,0 +1,28 @@ +# Mirror GitHub → Forgejo on every push to main +# Keeps Forgejo in sync so it can serve as the deployment source. +# +# Requires GitHub secret: +# FORGEJO_DEPLOY_KEY — private SSH key matching mac-mini-deploy key in Forgejo +# (key fingerprint: SHA256:baNsV+pq28d1vSWX+jtqyV0GqRnjUcHfDZM8RopcGDE) + +name: Mirror to Forgejo + +on: + push: + branches: [main] + +jobs: + mirror: + name: Push to Forgejo + runs-on: self-hosted + steps: + - name: Mirror to Forgejo via SSH + run: | + cd /Users/mana/projects/manacore-monorepo + + git pull origin main + + # Push to Forgejo via localhost SSH (runner is on the Mac Mini) + GIT_SSH_COMMAND='ssh -p 2222 -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no' \ + git push ssh://git@localhost:2222/till/manacore-monorepo.git main 2>&1 + echo "Mirrored to Forgejo"