Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
f595bb4
chore: add .worktrees/ to gitignore for isolated workspace development
Feb 4, 2026
2f0db78
feat(macos): add Intel (x86_64) architecture support to build-macos.y…
Feb 4, 2026
f0c7e5c
fix: replace non-existent --universal flag with separate architecture…
Feb 4, 2026
6930c39
fix(macos): correct job name from 'Universal' to 'Multi-Arch' for bot…
Feb 4, 2026
9d30ccf
feat(macos): add Intel architecture support to reusable build workflow
Feb 4, 2026
0fd6f19
fix: exclude universal-apple-darwin from rustup target installation
Feb 4, 2026
031e1ba
feat(release): add Intel Mac builds to release workflow matrix
Feb 4, 2026
04b913c
feat(test): add Intel Mac target to build-test workflow
Feb 4, 2026
a5b7112
feat(test): add Intel Mac target to devtest workflow
Feb 4, 2026
da8f09e
fix(macos): enable Metal GPU support for Intel Macs
Feb 4, 2026
a8cdce9
docs: add Intel Mac support information to README and GPU documentation
Feb 4, 2026
9f848bd
test: add unsigned Intel Mac build test workflow
Feb 4, 2026
bf44f3e
fix: sync Tauri dependency versions to resolve build mismatch
Feb 4, 2026
b11813f
fix: update Tauri Rust dependencies to v2.10.1
Feb 4, 2026
95c9ba4
fix: use correct tauri-plugin-log version 2.8.0
Feb 4, 2026
a4a502e
feat: enable automatic PR testing on workflow changes
Feb 4, 2026
77847ed
fix: build llama-helper sidecar before Tauri build
Feb 4, 2026
748ab3b
fix: disable updater artifacts creation in test workflow
Feb 5, 2026
21fc7c7
feat: enable automatic Actions on push and PR updates
Feb 5, 2026
5e9ac06
fix: change build-test to only trigger on main branch targets
Feb 5, 2026
e35f26e
test: trigger automatic Actions verification
Feb 5, 2026
1fa41db
fix: make Tauri updater signing conditional based on secret availability
Feb 5, 2026
0f8d6f4
fix: only enable updater artifacts when sign-binaries=true AND privat…
Feb 5, 2026
591da50
fix: disable signing in build-test workflow to prevent updater artifa…
Feb 6, 2026
8cbce9f
Disable updater artifacts without signing keys
Feb 9, 2026
8ca916a
Use pull_request for build-test CI
Feb 9, 2026
b6f1372
Fix CI signing and devtest macOS targets
Feb 9, 2026
40969d8
Avoid macOS signing when sign-binaries is false
Feb 9, 2026
b394c7c
Guard signing steps behind boolean input
Feb 9, 2026
d1e46d8
Clear signing env vars for unsigned builds
Feb 9, 2026
071289e
Upload devtest artifacts on push
Feb 9, 2026
5dc0e29
Auto release on v* tags
Feb 9, 2026
defdd15
Upload per-platform artifacts in devtest
Feb 9, 2026
2dce1b8
Fix devtest artifact path output
Feb 9, 2026
25a3eef
Retry checkout on GitHub 5xx
Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 88 additions & 23 deletions .github/workflows/build-devtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ on:
required: false
type: boolean
default: true
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- feature/macos-intel-support

# Cancel duplicate workflow runs
concurrency:
Expand All @@ -34,9 +39,13 @@ jobs:
matrix:
include:
- platform: macos-latest
platform-name: macOS
target: aarch64-apple-darwin
platform-name: macOS (Apple Silicon)
target: "aarch64-apple-darwin"
args: --target aarch64-apple-darwin
- platform: macos-latest
platform-name: macOS (Intel)
target: "x86_64-apple-darwin"
args: --target x86_64-apple-darwin
- platform: windows-latest
platform-name: Windows
target: x86_64-pc-windows-msvc
Expand All @@ -53,9 +62,45 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
continue-on-error: true
with:
fetch-depth: 0

- name: Ensure repository checkout
shell: bash
env:
REPO: ${{ github.repository }}
REF: ${{ github.ref }}
GITHUB_TOKEN: ${{ github.token }}
run: |
set -euo pipefail

if git rev-parse --verify HEAD >/dev/null 2>&1; then
echo "Checkout succeeded."
exit 0
fi

echo "Checkout failed; retrying with manual fetch."
rm -rf .git
git init .
git remote add origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${REPO}.git"

if [[ -z "${REF}" ]]; then
REF="HEAD"
fi

for i in 1 2 3; do
if git fetch --no-tags --prune origin "${REF}" && git checkout FETCH_HEAD; then
echo "Manual checkout succeeded on attempt ${i}."
exit 0
fi
echo "Manual checkout attempt ${i} failed; retrying..."
sleep $((i * 5))
done

echo "Manual checkout failed after retries."
exit 1

- name: Get version from tauri.conf.json
id: get-version
shell: bash
Expand Down Expand Up @@ -347,8 +392,8 @@ jobs:
LLAMA_FEATURES="--features metal"
echo "Using Metal GPU acceleration for macOS"
elif [[ "${{ matrix.platform }}" == *"windows"* ]]; then
LLAMA_FEATURES="--features vulkan"
echo "Using Vulkan GPU acceleration for Windows"
LLAMA_FEATURES=""
echo "Using CPU-only mode for Windows"
else
echo "Using CPU-only mode for Linux"
fi
Expand Down Expand Up @@ -383,9 +428,10 @@ jobs:
APPLE_CERTIFICATE: ${{ contains(matrix.platform, 'macos') && secrets.APPLE_CERTIFICATE || '' }}
APPLE_CERTIFICATE_PASSWORD: ${{ contains(matrix.platform, 'macos') && secrets.APPLE_CERTIFICATE_PASSWORD || '' }}
APPLE_SIGNING_IDENTITY: ${{ contains(matrix.platform, 'macos') && env.CERT_ID || '' }}
# Tauri updater signing (ALWAYS enabled for .sig files)
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
# Tauri updater signing (enabled only when explicitly signing the build and key is available)
TAURI_SIGNING_PRIVATE_KEY: ${{ github.event.inputs.sign-build == 'true' && secrets.TAURI_SIGNING_PRIVATE_KEY || '' }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ github.event.inputs.sign-build == 'true' && secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD || '' }}
TAURI_BUNDLE_CREATE_UPDATER_ARTIFACTS: ${{ github.event.inputs.sign-build == 'true' && secrets.TAURI_SIGNING_PRIVATE_KEY != '' && 'true' || 'false' }}
# License validation RSA public key (embedded at build time)
MEETILY_RSA_PUBLIC_KEY: ${{ secrets.MEETILY_RSA_PUBLIC_KEY }}
# Supabase configuration (for online license verification)
Expand All @@ -401,9 +447,10 @@ jobs:
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Tauri updater signing (ALWAYS enabled for .sig files)
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
# Tauri updater signing (disabled for unsigned builds)
TAURI_SIGNING_PRIVATE_KEY: ''
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
TAURI_BUNDLE_CREATE_UPDATER_ARTIFACTS: 'false'
# License validation RSA public key (embedded at build time)
MEETILY_RSA_PUBLIC_KEY: ${{ secrets.MEETILY_RSA_PUBLIC_KEY }}
# Supabase configuration (for online license verification)
Expand Down Expand Up @@ -467,24 +514,42 @@ jobs:
Get-AuthenticodeSignature -FilePath "$msiPath" | Format-List
}

- name: Prepare artifact paths
if: github.event_name != 'workflow_dispatch' || github.event.inputs.upload-artifacts == 'true'
id: artifact-paths
shell: bash
run: |
set -euo pipefail

if [[ "${{ matrix.platform }}" == *"macos"* ]]; then
printf '%s\n' \
"paths=target/${{ matrix.target }}/release/bundle/dmg/*.dmg" \
"target/${{ matrix.target }}/release/bundle/macos/*.app" \
"target/${{ matrix.target }}/release/bundle/macos/*.app.tar.gz" \
"target/${{ matrix.target }}/release/bundle/macos/*.app.tar.gz.sig" \
>> "$GITHUB_OUTPUT"
elif [[ "${{ matrix.platform }}" == *"windows"* ]]; then
printf '%s\n' \
"paths=target/${{ matrix.target }}/release/bundle/msi/*.msi" \
"target/${{ matrix.target }}/release/bundle/msi/*.msi.sig" \
"target/${{ matrix.target }}/release/bundle/nsis/*.exe" \
"target/${{ matrix.target }}/release/bundle/nsis/*.exe.sig" \
>> "$GITHUB_OUTPUT"
else
printf '%s\n' \
"paths=target/${{ matrix.target }}/release/bundle/deb/*.deb" \
"target/${{ matrix.target }}/release/bundle/appimage/*.AppImage" \
"target/${{ matrix.target }}/release/bundle/rpm/*.rpm" \
>> "$GITHUB_OUTPUT"
fi

# Upload artifacts
- name: Upload artifacts
if: github.event.inputs.upload-artifacts == 'true'
if: github.event_name != 'workflow_dispatch' || github.event.inputs.upload-artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: meetily-devtest-${{ matrix.platform-name }}-${{ matrix.target }}-${{ steps.get-version.outputs.version }}
path: |
target/aarch64-apple-darwin/release/bundle/dmg/*.dmg
target/aarch64-apple-darwin/release/bundle/macos/*.app
target/aarch64-apple-darwin/release/bundle/macos/*.app.tar.gz
target/aarch64-apple-darwin/release/bundle/macos/*.app.tar.gz.sig
target/x86_64-pc-windows-msvc/release/bundle/msi/*.msi
target/x86_64-pc-windows-msvc/release/bundle/msi/*.msi.sig
target/x86_64-pc-windows-msvc/release/bundle/nsis/*.exe
target/x86_64-pc-windows-msvc/release/bundle/nsis/*.exe.sig
target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb
target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage
target/x86_64-unknown-linux-gnu/release/bundle/rpm/*.rpm
path: ${{ steps.artifact-paths.outputs.paths }}
retention-days: 14

# Generate summary
Expand Down
Loading