Daftarkan runner Anda dalam 10 menit
Mesin MacRun Anda adalah runner GitHub Actions self-hosted standar. Pertahankan pipeline Anda dan ubah dua baris YAML.
Hubungkan ke mesin Anda
Mesin Anda berada di jaringan Tailscale privat, bukan di internet publik. Jadi tidak ada port SSH terbuka yang bisa ditemukan orang, dan tidak ada yang perlu diperkuat. Untuk masuk, Anda butuh dua hal, cukup sekali.
Pasang Tailscale dari tailscale.com/download lalu masuk. Tailscale gratis untuk pemakaian pribadi dan untuk ukuran akun yang dibutuhkan kebanyakan tim di sini. Tailscale berjalan di macOS, Linux, dan Windows. Lalu terima undangan share yang kami kirim saat mesin Anda siap. Undangan itu memberi akses ke satu mesin itu saja, tidak ke bagian lain dari jaringan kami.
Portal Anda menampilkan perintah yang persis, lengkap dengan alamat mesin Anda:
ssh runner@100.x.x.x
Tidak ada kata sandi atau key yang perlu dikelola: Tailscale yang menangani autentikasi. Jika akun Tailscale Anda memakai email yang berbeda dari alamat penagihan, minta share untuk email itu di portal Anda.
Job CI Anda tidak butuh Tailscale. GitHub Actions menjangkau runner lewat koneksi keluar milik GitHub sendiri. Jadi ini hanya untuk saat Anda ingin membuka shell di mesin.
Buka layar, saat Anda membutuhkannya
SSH sudah cukup untuk CI. Untuk saat log tidak cukup, mesin yang sama bisa dijangkau dengan screen sharing lewat jaringan privat yang sama. Jadi Instruments, Simulator, dan UI Xcode bekerja seperti di komputer lokal. Portal Anda menampilkan alamat, pengguna runner, dan kata sandi unik untuk masa sewa Anda.
Di Mac, buka Finder, lalu Go → Connect to Server (⌘K):
vnc://100.x.x.x
Di Windows, pasang RealVNC Viewer atau TightVNC, lalu hubungkan ke 100.x.x.x:5900. Di Linux, Remmina dan TigerVNC sama-sama bisa, dengan alamat yang sama. Jika klien Anda hanya meminta kata sandi, kosongkan nama pengguna.
Inilah bagian yang tidak bisa dilakukan kebanyakan layanan CI. Runner yang di-host hanya memberi log, tidak lebih. Jadi crash yang hanya muncul di Instruments adalah crash yang tidak bisa Anda selidiki.
Ambil token registrasi dari GitHub
Di repo (atau org) Anda, buka Settings → Actions → Runners → New runner. GitHub menampilkan token sekali pakai. Anda akan menempelkannya ke perintah di bawah. Runner tingkat org dipakai bersama oleh semua repo di org tersebut.
Daftarkan runner di mesin Anda
SSH masuk seperti di atas, lalu jalankan perintah konfigurasi dari portal Anda (label unit Anda sudah terisi):
cd ~/actions-runner ./config.sh --url https://github.com/YOUR-ORG/YOUR-REPO \ --token <RUNNER_TOKEN> \ --labels self-hosted,macOS,macrun-unit-01 \ --unattended # start it as a service (survives reboots) ./svc.sh install && ./svc.sh start
Daemon runner-agent menjaga service ini tetap berjalan secara otomatis. Jika crash, service dijalankan ulang dalam 30 detik.
Ubah dua baris YAML
Arahkan workflow Anda ke runner. Hanya itu perubahannya:
jobs: build: - runs-on: macos-latest + runs-on: [self-hosted, macOS, macrun-unit-01]
Semua bagian lain di pipeline Anda tetap sama persis.
Versi Xcode
Rilis Xcode terbaru sudah terpasang dan dikunci lewat xcodes. Pilih salah satu di job Anda, atau minta versi baru dari portal (biasanya di hari yang sama):
- run: sudo xcodes select 26.6 - run: xcodebuild -version
Cache sudah hangat
Karena mesinnya milik Anda, cache tetap tersimpan di disk lokal di antara run. Jadi tidak ada biaya unduh ulang. Path yang umum:
~/Library/Developer/Xcode/DerivedData # build cache ~/Library/Caches/CocoaPods # pods ~/.gradle ~/.npm ~/.gem # toolchain caches ~/Library/Caches/org.swift.swiftpm # SwiftPM
Anda tetap bisa memakai actions/cache jika ingin restore key yang deterministik. Namun untuk kebanyakan build iOS, disk lokal yang hangat adalah keuntungannya.
Kelola mesin Anda
Reboot, minta versi Xcode, dan kelola tagihan dari portal Anda. Butuh hal lain? Balas email apa pun dari MacRun, dan manusia yang akan menjawab.