ci: add GitHub Actions workflow to build Omega Mac app

Adds a manually-triggered workflow that builds the SwiftUI app on a
macOS 15 runner with Xcode 16, packages it as a .app bundle, and
uploads it as a downloadable artifact. Also lowers the deployment
target to macOS 14 so it runs on Sonoma.
This commit is contained in:
Ajax Davis 2026-02-09 22:27:21 +10:00
parent e42bbdff34
commit dda28d642c
2 changed files with 73 additions and 1 deletions

72
.github/workflows/build-omega-mac.yml vendored Normal file
View file

@ -0,0 +1,72 @@
name: Build Omega Mac
on:
workflow_dispatch:
jobs:
build:
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
- name: Resolve dependencies
working-directory: apps/omega-mac
run: swift package resolve
- name: Build release
working-directory: apps/omega-mac
run: swift build -c release
- name: Package .app bundle
working-directory: apps/omega-mac
run: |
mkdir -p OmegaMac.app/Contents/MacOS
mkdir -p OmegaMac.app/Contents/Resources
cp .build/release/OmegaMac OmegaMac.app/Contents/MacOS/OmegaMac
cat > OmegaMac.app/Contents/Info.plist << 'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>OmegaMac</string>
<key>CFBundleIdentifier</key>
<string>com.tpmjs.omega-mac</string>
<key>CFBundleName</key>
<string>Omega</string>
<key>CFBundleDisplayName</key>
<string>Omega</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<false/>
<key>com.apple.security.network.client</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
PLIST
codesign --force --sign - OmegaMac.app
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: OmegaMac
path: apps/omega-mac/OmegaMac.app

View file

@ -3,7 +3,7 @@ import PackageDescription
let package = Package(
name: "OmegaMac",
platforms: [.macOS(.v15)],
platforms: [.macOS(.v14)],
dependencies: [
.package(url: "https://github.com/gonzalezreal/swift-markdown-ui", from: "2.4.0"),
],