Skip to content

Run macOS connect smoke on self-hosted runner#8899

Open
atavism wants to merge 2 commits into
atavism/macos-connectfrom
atavism/macos-connect-self-hosted
Open

Run macOS connect smoke on self-hosted runner#8899
atavism wants to merge 2 commits into
atavism/macos-connectfrom
atavism/macos-connect-self-hosted

Conversation

@atavism

@atavism atavism commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Splits the macOS connect smoke into a dedicated self-hosted CI job. The macOS build still runs on the normal hosted workflow, then the signed app artifact is downloaded and tested on the persistent lantern-macos-smoke runner

Copilot AI review requested due to automatic review settings July 8, 2026 03:56
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 791c096a-177d-428f-a16c-f140e0dd89ce

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch atavism/macos-connect-self-hosted

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR splits the macOS connect/disconnect smoke test out of the standard hosted macOS build workflow into a dedicated reusable workflow that runs on a persistent self-hosted macOS ARM64 runner, while the hosted build job produces and uploads a signed app artifact for the smoke job to consume.

Changes:

  • Added a new reusable workflow (macos-connect-smoke.yml) that downloads build artifacts and runs the connect smoke suite on a self-hosted runner.
  • Updated the macOS build workflow to package and upload Lantern.app.zip as an artifact (and removed the inline connect smoke execution).
  • Updated the app smoke test orchestrator to invoke the new macOS connect smoke workflow after the macOS build completes.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/macos-connect-smoke.yml New reusable workflow to run macOS connect smoke on a self-hosted runner using downloaded artifacts.
.github/workflows/build-macos.yml Removes in-build connect smoke; packages and uploads the macOS app as a zipped artifact for downstream smoke testing.
.github/workflows/app-smoke-tests.yml Adds a dedicated macos-connect-smoke job that depends on the macOS build and calls the new workflow.
.github/scripts/macos_smoke_suite.sh Enhances app path resolution to support downloaded artifacts (zip/DMG) and improves cleanup behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +80 to +97
- name: Decode APP_ENV
uses: timheuer/base64-to-file@v1.2
with:
fileName: "app.env"
fileDir: ${{ github.workspace }}
encodedString: ${{ secrets.APP_ENV }}

- name: Prepare macOS test project
shell: bash
run: |
set -euo pipefail
echo "GOMOBILECACHE=$HOME/.cache/gomobile" >> "$GITHUB_ENV"
mkdir -p "$HOME/.cache/gomobile"
flutter --version
flutter config --enable-macos-desktop
make install-gomobile
make macos pubget gen

Comment on lines +98 to +100
- name: macOS connect smoke suite
shell: bash
run: ./.github/scripts/macos_smoke_suite.sh
Comment on lines +40 to +58
extract_app_zip() {
local zip_path="$1"
local tmp_dir
tmp_dir="$(mktemp -d)"

log_step "Extracting Lantern app from $zip_path"
ditto -x -k "$zip_path" "$tmp_dir"

local app_path
app_path="$(find_first_name "$tmp_dir" "Lantern.app" || true)"
if [[ -z "$app_path" ]]; then
printf 'Lantern.app not found inside %s\n' "$zip_path" >&2
rm -rf "$tmp_dir"
return 1
fi

copy_app_bundle "$app_path" "$APP_INSTALL_DIR"
rm -rf "$tmp_dir"
}
@atavism atavism requested a review from jigar-f July 8, 2026 04:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants