Files
humanlayer/humanlayer-wui/RELEASE.md
Dex bf1b7a4f12 feat: Add GitHub Actions workflow for macOS release builds (#350)
* feat: Add GitHub Actions workflow for macOS release builds

- Create workflow_dispatch triggered workflow to build Tauri WUI and hld daemon
- Builds macOS ARM binaries and DMG installer
- Uploads artifacts for manual release creation
- Includes temporary push trigger for testing on feature branch
- Add comprehensive usage documentation with testing instructions

* feat: Add GitHub Release creation to workflow

- Automatically create draft GitHub Release when triggered via workflow_dispatch
- Attach DMG, daemon binary, and install instructions to release
- Update documentation to reflect automatic release creation
- Release created in draft mode for review before publishing

* fix: Remove temporary push trigger from workflow

- Workflow now only runs via workflow_dispatch
- Ready for production use with gh CLI or GitHub UI

* fix: Add permissions and update to modern release action

- Add contents: write permission for creating releases
- Switch from deprecated actions/create-release to softprops/action-gh-release@v2
- Simplify release asset uploads with glob pattern
- Fix authentication issues when creating releases

* fix: Add ad-hoc signing to prevent macOS damaged app error

- Set APPLE_SIGNING_IDENTITY='-' for ad-hoc signing
- Update installation instructions for right-click opening
- Add troubleshooting guide for security warnings
- Document xattr workaround as fallback

* fix: Improve installation instructions and embed in release notes

- Remove separate INSTALL.md file
- Put all instructions directly in GitHub Release notes
- Fix security approval steps based on real user testing
- Add clear security notice at the top with emoji
- Improve step-by-step flow for System Settings approval
2025-07-24 09:07:35 -07:00

3.2 KiB

macOS Release Workflow Usage Guide

Testing the Workflow (Before Merging)

The workflow has a temporary push trigger for testing on the add-macos-release-workflow branch. This allows testing before merging to main.

Using gh CLI:

# After pushing changes to the branch
gh workflow run release-macos.yml --ref add-macos-release-workflow -f release_version=v0.1.0-test

# Check workflow status
gh run list --workflow=release-macos.yml

# Watch a specific run
gh run watch

Important: Remove the push trigger before merging!

The push: trigger in the workflow file is temporary and must be removed before creating the PR.

Prerequisites

  • Push access to the repository
  • Release version decided (e.g., v0.1.0)

Triggering a Release Build

  1. Go to the Actions tab in GitHub
  2. Select "Build macOS Release Artifacts" from the left sidebar
  3. Click "Run workflow" button on the right
  4. Enter the version tag (e.g., v0.1.0)
  5. Click the green "Run workflow" button

Monitoring the Build

  1. Click on the running workflow to see progress
  2. Build typically takes 10-15 minutes
  3. Check each step for any errors

Workflow Results

After successful completion:

For Push Triggers (Testing Only)

  1. Artifacts are uploaded to GitHub Actions
  2. Download from the "Artifacts" section at the bottom of the workflow run
  3. Three artifacts available:
    • humanlayer-wui-macos-dmg - The WUI application installer
    • hld-darwin-arm64 - The daemon binary
    • INSTALL - Installation instructions

For Manual Triggers (workflow_dispatch)

  1. A draft GitHub Release is automatically created
  2. All artifacts are attached to the release
  3. Release includes pre-formatted description and installation instructions
  4. Go to Releases page to review and publish the draft

Publishing the Release

When triggered via workflow_dispatch:

  1. Go to Releases page
  2. Find the draft release with your version tag
  3. Review the auto-generated release notes
  4. Edit if needed (add changelog, known issues, etc.)
  5. Click "Publish release" to make it public

Updating for New npm Versions

When the npm package version changes:

  1. Edit .github/workflows/release-macos.yml
  2. Find the line npm install -g humanlayer@0.10.0
  3. Update to the new version
  4. Commit and push the change

Troubleshooting

Build Failures

  • Rust/Cargo errors: Check if Rust dependencies changed
  • Go build errors: Verify Go version matches hld/go.mod
  • Bun/npm errors: Clear caches with bun install --force

Artifact Issues

  • Missing DMG: Check Tauri build logs for errors
  • Missing daemon: Verify Go cross-compilation settings
  • Wrong architecture: Ensure GOARCH=arm64 is set

macOS Security Issues

The workflow uses ad-hoc signing to prevent "damaged app" errors on Apple Silicon. However, users will still see security warnings.

For "app is damaged" errors:

  • The workflow should prevent this with ad-hoc signing
  • If it still occurs, users can run: xattr -cr /Applications/humanlayer-wui.app

For security warnings:

  • This is expected for unsigned apps
  • Users must right-click and select "Open" for first launch
  • Or approve in System Settings > Privacy & Security