Skip to content

fix: revert release workflow to single-job universal build - #11

Merged
tukuyomil032 merged 1 commit into
mainfrom
fix/release-workflow-single-job
Jun 10, 2026
Merged

fix: revert release workflow to single-job universal build#11
tukuyomil032 merged 1 commit into
mainfrom
fix/release-workflow-single-job

Conversation

@tukuyomil032

@tukuyomil032 tukuyomil032 commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • 問題: 並列 matrix ビルド(arm64/x86_64 別ジョブ)が Swift Macro のクロスコンパイルで失敗
    • arm64 ランナーで ARCHS=x86_64 のみ指定すると FrameworkToolboxMacros(Swift Compiler Plugin)のアーカイブパスが解決できずにビルドエラー
  • 修正: 単一ジョブの Universal ビルドに戻し、-derivedDataPath build/DerivedData を追加してキャッシュを確実に効かせる
  • 効果: 2回目以降のビルドは DerivedData キャッシュ hit で ~4 分に短縮

Test Plan

  • ワークフローが BUILD SUCCEEDED で完了する
  • Universal DMG(arm64 + x86_64)が生成される
  • GitHub Release v0.3.0-beta-2 が作成される

🤖 Generated with Claude Code

Summary by CodeRabbit

リリースノート

  • Chores
    • リリースワークフローを統合し、ユニバーサルバイナリのビルドおよび署名プロセスを簡素化しました。

…tion fails on arm64 runner when ARCHS=x86_64 only

FrameworkToolboxMacros is a Swift compiler plugin that runs on the host; separate arch jobs break the macro executable path during archive. Single job with -derivedDataPath gives reliable caching (~4min on cache hit).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 10, 2026 03:43
@tukuyomil032
tukuyomil032 merged commit ca4deec into main Jun 10, 2026
4 of 5 checks passed

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 updates the GitHub Actions release workflow to revert from a parallel per-architecture matrix build back to a single-job universal (arm64 + x86_64) archive build, addressing Swift Macro cross-compilation failures and improving DerivedData cache reuse.

Changes:

  • Removes the arm64/x86_64 matrix build and artifact upload/download flow in favor of a single xcodebuild archive universal build.
  • Adds -derivedDataPath build/DerivedData and caches that directory to improve repeat build times.
  • Updates signing and DMG creation steps to use the .xcarchive app product path directly.

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

Comment on lines +31 to +33
key: ${{ runner.os }}-dd-release-${{ hashFiles('perch.xcodeproj/project.pbxproj', 'perch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: |
${{ runner.os }}-dd-release-${{ matrix.arch }}-
${{ runner.os }}-dd-release-
Comment on lines +49 to 52
- name: Build universal archive
run: |
set -o pipefail
xcodebuild archive \
@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6743b3bc-60a8-431b-8a03-2e7d7b1ea8d6

📥 Commits

Reviewing files that changed from the base of the PR and between 7f25fc5 and 2cbf199.

📒 Files selected for processing (1)
  • .github/workflows/release.yml

📝 Walkthrough

Walkthrough

GitHub Actions リリースワークフローをアーキテクチャ別マトリクス駆動の複数ジョブから、ユニバーサル(arm64+x86_64)アーカイブビルドを単一ジョブで実行する構成に統合しました。キャッシュ戦略、ビルド手順、署名対象パス、DMG ステージング出力パスがすべて新しいユニバーサルビルド流れに合わせて更新されています。

Changes

リリースワークフロー単一ジョブ化

Layer / File(s) Summary
ジョブ定義とキャッシュ戦略の更新
.github/workflows/release.yml
ジョブ定義を build から release へ置き換え、DerivedData キャッシュのキーをアーキテクチャ非依存の形式に変更し、単一ジョブ前提のキャッシュ戦略を確立しました。
ユニバーサルビルドと署名ステップ
.github/workflows/release.yml
アーキ別ビルドプロセスをユニバーサル指定(ARCHS=arm64 x86_64)の単一 xcodebuild archive に置き換え、署名対象アプリパスを xcarchive 配下のユニバーサル成果物に更新しました。
DMG ステージング出力パスの更新
.github/workflows/release.yml
DMG ステージング用の app コピー元パスを、ビルド直下から xcarchive 配下へ変更し、ユニバーサルアーカイブ構造に対応させました。

関連 PR

  • tukuyomil032/Perch#4: 両 PR とも .github/workflows/release.yml をアーキ別ビルドからユニバーサル xcodebuild archive フローへ切り替え、DerivedData キャッシュやアドホック署名ステップを更新しています。
  • tukuyomil032/Perch#8: どちらのPRも .github/workflows/release.yml でベータ/アーキ別の分岐を廃止してユニバーサル(arm64+x86_64)前提の xcodebuild archive と単一DMG作成・添付(GitHub Release)に整理する変更が入っているため、コードレベルで強く関連しています。

見積もりレビュー工数

🎯 3 (Moderate) | ⏱️ ~20 分

🐰 ワークフローは一つに、
アーキ別の迷いを捨てて、
ユニバーサルビルドで
arm64 と x86_64 を抱きしめ、
リリースの道は シンプルに光る 🌟

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/release-workflow-single-job

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 and usage tips.

@tukuyomil032
tukuyomil032 deleted the fix/release-workflow-single-job branch June 13, 2026 08:32
tukuyomil032 added a commit that referenced this pull request Jun 24, 2026
twoColumnView already shows the large artwork plus full lyrics/track info up top. The second HStack — small waveform + Title — Artist text + music.note.list button — was being painted underneath it and read as a mini-widget stuck inside the expanded card (Image #11), well off from the Image #4 reference.

Drop the row entirely so the expanded layout is artwork+lyrics, then progressSection, then controlsSection. The full-lyrics overlay button goes with it; LyricsView is already inline in the main row, so the overlay isn't needed for the common path. showLyricsFullView remains unused for now — clean up in a follow-up if no other entry point appears.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tukuyomil032 added a commit that referenced this pull request Jun 24, 2026
…) in twoColumnView

Reverts Fix 6 (60e0cb4). Dropping the HStack made the expanded card look thin and lost the lyrics overlay entry point — Image #11 was missing the waveform band and Title—Artist line that Image #4 expects. Put the row back exactly as it appears on main: WaveformView (real audio capture or synthetic fallback), the truncated Title — Artist label, and the music.note.list button that opens the lyricsFullView when lyrics are loaded.

showLyricsFullView is wired again because the button is back; no other call sites changed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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