Commit Graph

8 Commits

Author SHA1 Message Date
Daniel Arantes Loverde
247e59b5f1 [macos-runner] Merge keychain unlock and fastlane into a single step
Identity was visible with find-identity inside the unlock step itself
but still invisible to fastlane in the next step - each run: block
likely spawns a distinct process/session on this host executor, so the
unlock doesn't survive across steps even though keychain search-list
membership does. Run unlock and fastlane in the same shell invocation
to remove that boundary entirely.
2026-07-30 18:44:29 -03:00
Daniel Arantes Loverde
a0f18644d7 [macos-runner] Use a dedicated CI keychain instead of the login keychain
A Gitea Actions job runs in a different macOS security session than an
interactive SSH login - login.keychain-db's unlock state and search-list
membership don't reliably carry over across that boundary, so the
identity was invisible to the job even after successful unlock. Point
the workflow's unlock step at a dedicated ci-signing.keychain-db instead,
created independent of any login session.
2026-07-30 18:40:51 -03:00
Daniel Arantes Loverde
d84fcc6ac4 [macos-runner] Force login keychain into the job session's search list
Unlocking alone wasn't enough - the launchd session's default keychain
search list apparently doesn't include the login keychain by default,
so sigh/fastlane still found zero identities even after a successful
unlock. Explicitly set it as both the search list and default keychain,
and print find-identity in the step itself to verify before fastlane runs.
2026-07-30 18:30:10 -03:00
Daniel Arantes Loverde
54728cdc71 [macos-runner] Unlock login keychain explicitly before fastlane signing steps
act_runner's launchd daemon now runs as loverde_vm_mac (UserName set),
but its background session doesn't inherit the unlock state from an
interactive SSH session - the login keychain is still locked when
fastlane/sigh looks for signing identities, so none are found. Unlock it
explicitly at the start of each signing job instead.
2026-07-30 18:21:54 -03:00
Daniel Arantes Loverde
d9c2035807 [macos-runner] Replace actions/checkout@v4 with a plain git clone step
actions/checkout@v4 is a JS action, and act_runner's host-executor JS
action path hits a known upstream caching bug on this runner (nested
hostexecutor/.cache/act path never gets the downloaded action, causing
MODULE_NOT_FOUND on every run). Introducing a config.yaml to work around
it (workdir_parent) triggers a separate act_runner bug requiring a Docker
socket that doesn't exist on this Mac. Side-stepping both by doing the
checkout as a plain shell git clone, which the host executor runs fine.
2026-07-30 17:48:47 -03:00
Daniel Arantes Loverde
8af8c7cb5b [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.
2026-07-30 11:57:09 -03:00
Daniel Arantes Loverde
cef21aa160 [macos-runner] Fix wake/sleep jobs to use an actually-registered runner label
runs-on: docker matched no registered runner (labels are macos-release,
atomenta, pedifoods, lc-wallet-web). Use pedifoods, this repo's own
existing always-on runner, to run the wake/sleep SSH steps.
2026-07-30 11:46:04 -03:00
Daniel Arantes Loverde
dda7bbcb17 [macos-runner] Add Gitea Actions workflows for self-hosted macOS CI
Replaces bitrise.yml with equivalent test/beta/release pipelines running
on the self-hosted macos-release runner (act_runner inside a dockur/macos
VM). Each workflow wakes the VM over SSH before the job and stops it
after, since the VM can't be left running 24/7 without starving the
VPS's other services.
2026-07-30 11:35:58 -03:00