From 8af8c7cb5baa8c9769ba90d691162fc675190c4d Mon Sep 17 00:00:00 2001 From: Daniel Arantes Loverde Date: Thu, 30 Jul 2026 11:57:09 -0300 Subject: [PATCH] [macos-runner] Replace SSH-based VM wake/sleep with a dedicated runner container Drop the SSH + restricted-key design entirely. wake/sleep now runs on a new macos-ctl runner (its own Docker container on the VPS, Docker socket mounted) which runs docker start/stop macos directly on the sibling container - no SSH indirection, and no borrowing of another project's runner (pedifoods-web) to do it. --- .gitea/workflows/beta.yml | 26 ++++---------------------- .gitea/workflows/release.yml | 26 ++++---------------------- .gitea/workflows/test.yml | 26 ++++---------------------- 3 files changed, 12 insertions(+), 66 deletions(-) diff --git a/.gitea/workflows/beta.yml b/.gitea/workflows/beta.yml index 9d300e8..3d6284c 100644 --- a/.gitea/workflows/beta.yml +++ b/.gitea/workflows/beta.yml @@ -7,19 +7,10 @@ on: jobs: wake-macos-vm: - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Start macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} start + run: docker start macos build-and-upload: needs: wake-macos-vm @@ -64,16 +55,7 @@ jobs: sleep-macos-vm: needs: build-and-upload if: always() - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Stop macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} stop + run: docker stop macos diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d48ec63..fac245f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -7,19 +7,10 @@ on: jobs: wake-macos-vm: - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Start macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} start + run: docker start macos build-archive-deliver: needs: wake-macos-vm @@ -71,16 +62,7 @@ jobs: sleep-macos-vm: needs: build-archive-deliver if: always() - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Stop macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} stop + run: docker stop macos diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 1ee4c6e..63b6471 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -7,19 +7,10 @@ on: jobs: wake-macos-vm: - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Start macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} start + run: docker start macos test: needs: wake-macos-vm @@ -39,16 +30,7 @@ jobs: sleep-macos-vm: needs: test if: always() - runs-on: pedifoods - container: - image: alpine:3.20 + runs-on: macos-ctl steps: - - name: Install ssh client - run: apk add --no-cache openssh-client - name: Stop macOS VM container - run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 \ - ${{ secrets.VPS_SSH_USER }}@${{ secrets.VPS_SSH_HOST }} stop + run: docker stop macos