Skip to content

ci: macOS DMG 번들링 재시도 경로 추가 - #543

Merged
seonghobae merged 4 commits into
developfrom
codex/retry-macos-dmg-bundling
Jul 10, 2026
Merged

ci: macOS DMG 번들링 재시도 경로 추가#543
seonghobae merged 4 commits into
developfrom
codex/retry-macos-dmg-bundling

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

요약

검증

  • bash -n scripts/release/build_tauri_bundle_with_retry.sh
  • python3 scripts/checks/verify_supply_chain.py
  • git diff --check

Review process와 queued GitHub checks는 blocker가 아닙니다. 완료된 package failure가 재현되면 이 PR의 로그를 기준으로 후속 수정합니다.

Figma Code Connect는 사용하지 않았습니다.

Copilot AI review requested due to automatic review settings July 2, 2026 23:45
@seonghobae
seonghobae enabled auto-merge July 2, 2026 23:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.

macOS DMG 번들링 단계에서 일시적인 실패(부분 DMG/마운트 잔존 등)를 자동으로 정리하고 1회 재시도할 수 있도록 CI 빌드 경로를 개선하는 PR입니다.

Changes:

  • tauri build를 감싸는 재시도 스크립트 추가 (환경변수로 시도 횟수 제어)
  • DMG 번들링 실패 시 부분 산출물 및 /Volumes/BandScope* 마운트 정리 후 재시도
  • GitHub Actions macOS (amd64/arm64) 빌드 단계에서 새 스크립트 사용 및 시도 횟수 2로 설정

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
scripts/release/build_tauri_bundle_with_retry.sh tauri build 재시도 래퍼 및 DMG 상태 정리 로직 추가
.github/workflows/build-baseline.yml macOS DMG 빌드에서 재시도 스크립트를 사용하도록 CI 단계 변경

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

Comment thread .github/workflows/build-baseline.yml Outdated
Comment thread .github/workflows/build-baseline.yml Outdated
Comment thread scripts/release/build_tauri_bundle_with_retry.sh
Comment thread scripts/release/build_tauri_bundle_with_retry.sh
Comment thread scripts/release/build_tauri_bundle_with_retry.sh
Address review feedback on the Tauri bundle retry script:
- Resolve the repo root from BASH_SOURCE so dmg_dir is absolute and safe to
  remove regardless of the caller's working directory.
- Detach every mounted /Volumes/BandScope* volume via hdiutil info parsing
  instead of hardcoding the "BandScope 0.1.3" version string.
- Capture the build exit status in the else branch so intent is explicit.
- Invoke the script via `bash` in build-baseline.yml so it does not depend on
  the executable bit (bit also retained on the file).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTAMs4bpSZS77Xe3RQjv9P
@seonghobae

Copy link
Copy Markdown
Collaborator Author

Addressed all review feedback in the latest commit:

  • Direct script execution / exec bit (build-baseline.yml:230,278): the workflow now invokes the script via bash scripts/release/build_tauri_bundle_with_retry.sh ..., so it no longer depends on the executable bit. The file mode is also kept at 100755 as a belt-and-suspenders measure.
  • Hardcoded BandScope 0.1.3 volume (script:27): cleanup now enumerates every mounted /Volumes/BandScope* volume by parsing hdiutil info and detaches each, so it survives version bumps and build-number-suffixed volume names.
  • Relative dmg_dir (script:21): the repo root is resolved from BASH_SOURCE[0] and dmg_dir is now absolute, so running the script from another working directory cannot delete an unintended path.
  • status=$? outside the if (script:38): the exit status is now captured in an explicit else branch immediately after the failing command, making the intent clear.

bash -n and shellcheck both pass on the updated script.

@opencode-agent

opencode-agent Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: cec36e91e0e510b42c276d4160f91e276c530a33
  • Workflow run: 29122842610
  • Workflow attempt: 1
  • Gate result: APPROVE (approval step)

Pull request overview

OpenCode reviewed the current-head bounded evidence and found no blocking issues.

Findings

No blocking findings.

Summary

Approval sufficiency: bounded evidence supplied affirmative approval evidence for changed files, coverage/docstring posture, risk surfaces, and current-head verification; approval is not based merely on the absence of known blockers.
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including .github/workflows/build-baseline.yml, scripts/release/build_tauri_bundle_with_retry.sh, services/analysis-engine/src/bandscope_analysis/ranges/analyzer.py, services/analysis-engine/src/bandscope_analysis/roles/extractor.py, services/analysis-engine/src/bandscope_analysis/separation/separator.py, and 4 more.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence reports supported repository test suites passed.
Docstring coverage: coverage execution evidence reports configured repository docstring gates passed or docstring coverage was advisory.
DAG: CodeGraph/source-backed behavior map connects .github/workflows/build-baseline.yml to the affected review, runtime, or workflow path and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, current-head workflow evidence, and, where numeric, scientific, statistical, or literature-backed claims are affected, original-paper/formula evidence and parameter-recovery expectations were used for claims.
Standards search: standards and external-source checks are delegated to configured OpenCode web_search/Context7/DeepWiki sources when applicable; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions, object naming, and reserved-word safety for schema/API/config/code surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, test, setup, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: connected user, operator, API, CLI, documentation, review-comment, status-check, rendering, and workflow-reader behavior was checked for contradictions against code, docs, and tests in bounded evidence.
Visual/DOM: Playwright visual, DOM locator, ARIA snapshot, console, and responsive evidence were checked when a web UI surface was present; for non-web surfaces, API/CLI/log/docs/workflow interaction evidence was reviewed instead.
Accessibility/i18n: accessibility, localization, and human-readable text surfaces were checked where UI, CLI, API message, docs, logs, or review text changed.
Supply-chain/license: dependency, package, model, container, and external-tool changes were checked in bounded evidence.
Packaging: package, build, test, lint, and security contracts were checked in bounded evidence.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.

  • Result: APPROVE
  • Reason: PR improves build reliability with retry logic, passes all tests, and addresses prior feedback.
  • Head SHA: cec36e91e0e510b42c276d4160f91e276c530a33
  • Workflow run: 29122842610
  • Workflow attempt: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: build-baseline.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: build-baseline.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file (6 files)"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file (6 files)"]
  R2 --> V2["required checks"]
  Evidence --> S3["Test (2 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (2 files)"]
  R3 --> V3["targeted test run"]
Loading

@opencode-agent opencode-agent Bot 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

OpenCode reviewed the current-head bounded evidence and found no blocking issues.

Findings

No blocking findings.

Summary

Approval sufficiency: bounded evidence supplied affirmative approval evidence for changed files, coverage/docstring posture, risk surfaces, and current-head verification; approval is not based merely on the absence of known blockers.
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including .github/workflows/build-baseline.yml, scripts/release/build_tauri_bundle_with_retry.sh, services/analysis-engine/src/bandscope_analysis/ranges/analyzer.py, services/analysis-engine/src/bandscope_analysis/roles/extractor.py, services/analysis-engine/src/bandscope_analysis/separation/separator.py, and 4 more.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence reports supported repository test suites passed.
Docstring coverage: coverage execution evidence reports configured repository docstring gates passed or docstring coverage was advisory.
DAG: CodeGraph/source-backed behavior map connects .github/workflows/build-baseline.yml to the affected review, runtime, or workflow path and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, current-head workflow evidence, and, where numeric, scientific, statistical, or literature-backed claims are affected, original-paper/formula evidence and parameter-recovery expectations were used for claims.
Standards search: standards and external-source checks are delegated to configured OpenCode web_search/Context7/DeepWiki sources when applicable; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions, object naming, and reserved-word safety for schema/API/config/code surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, test, setup, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: connected user, operator, API, CLI, documentation, review-comment, status-check, rendering, and workflow-reader behavior was checked for contradictions against code, docs, and tests in bounded evidence.
Visual/DOM: Playwright visual, DOM locator, ARIA snapshot, console, and responsive evidence were checked when a web UI surface was present; for non-web surfaces, API/CLI/log/docs/workflow interaction evidence was reviewed instead.
Accessibility/i18n: accessibility, localization, and human-readable text surfaces were checked where UI, CLI, API message, docs, logs, or review text changed.
Supply-chain/license: dependency, package, model, container, and external-tool changes were checked in bounded evidence.
Packaging: package, build, test, lint, and security contracts were checked in bounded evidence.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.

  • Result: APPROVE
  • Reason: PR improves build reliability with retry logic, passes all tests, and addresses prior feedback.
  • Head SHA: cec36e91e0e510b42c276d4160f91e276c530a33
  • Workflow run: 29122842610
  • Workflow attempt: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: build-baseline.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: build-baseline.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file (6 files)"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file (6 files)"]
  R2 --> V2["required checks"]
  Evidence --> S3["Test (2 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (2 files)"]
  R3 --> V3["targeted test run"]
Loading

@seonghobae
seonghobae merged commit 5333fe7 into develop Jul 10, 2026
44 checks passed
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