Skip to content

Add Swift SDK release workflow - #4

Merged
setoelkahfi merged 2 commits into
mainfrom
swift-sdk/release-workflow
Sep 26, 2026
Merged

setoelkahfi merged 2 commits into
mainfrom
swift-sdk/release-workflow

Conversation

@setoelkahfi

Copy link
Copy Markdown
Collaborator

Pushing a swift-vX.Y.Z tag builds DemucsFramework.xcframework with
build-swift-xcframework.sh, runs demucs-swift's tests against it,
attaches the zip and checksum to a GitHub release, then updates
demucs-swift's Package.swift and generated bindings and tags it X.Y.Z.

The swift-v prefix keeps these tags out of release.yml's v* trigger.
Publishing needs a DEMUCS_SWIFT_PAT secret with write access to
SplitFireAI/demucs-swift. The README documents the SDK and the tag.

Co-Authored-By: siGit Code noreply@sigit.si
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com


Stack created with GitHub Stacks CLI • Give Feedback 💬

@setoelkahfi
setoelkahfi added this pull request to stack #5 September 26, 2026 08:48
@setoelkahfi setoelkahfi self-assigned this Sep 26, 2026
@setoelkahfi
setoelkahfi marked this pull request as ready for review September 26, 2026 08:58
@setoelkahfi
setoelkahfi force-pushed the swift-sdk/release-workflow branch from 0e9c366 to e8383bc Compare September 26, 2026 09:04

@sigit-code-review sigit-code-review Bot 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.

Adds a release-sdk-swift.yml workflow that triggers on swift-vX.Y.Z tags (or manual dispatch). It validates the tag against the demucs-ffi crate version, builds the XCFramework on macOS, tests demucs-swift against it, creates a GitHub release with the zip and checksum, then updates demucs-swift's Package.swift and generated bindings, commits to main, and tags X.Y.Z. The README gets a Swift SDK section documenting the package, the tag convention, and the local build command. The swift-v prefix avoids colliding with release.yml's v* trigger.


Automated review by siGit Code Review · commit e8383bc · see the review dashboard

Comment thread .github/workflows/release-sdk-swift.yml
Comment thread .github/workflows/release-sdk-swift.yml Outdated
Comment thread .github/workflows/release-sdk-swift.yml Outdated
Comment thread .github/workflows/release-sdk-swift.yml

@sigit-code-review sigit-code-review Bot 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.

Adds a Release SDK Swift workflow triggered by swift-vX.Y.Z tags (or manual workflow_dispatch). It runs preflight checks (fmt, clippy, test), builds DemucsFramework.xcframework via build-swift-xcframework.sh, tests demucs-swift against the locally-built framework, then publishes: creates a GitHub release with the zip and checksum, updates demucs-swift's Package.swift and generated bindings, commits, and pushes + tags X.Y.Z on demucs-swift. Earlier review threads about rebase-before-push, stale-tag detection, and regex flexibility are addressed in this diff. README gains a Swift SDK section, a make swift-xcframework row, and demucs-ffi/uniffi-bindgen in the project structure.

The one thing to verify before merging is the tag trigger pattern — it uses regex-style + quantifiers inside a GitHub Actions glob filter, which likely won't match real swift-v1.2.3 tags.


Automated review by siGit Code Review · commit f2f27fb · see the review dashboard

Comment thread .github/workflows/release-sdk-swift.yml
@setoelkahfi
setoelkahfi force-pushed the swift-sdk/release-workflow branch from f2f27fb to 8a40561 Compare September 26, 2026 10:49

@sigit-code-review sigit-code-review Bot 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.

The change adds a Release SDK Swift workflow that triggers on swift-vX.Y.Z tags (or manual dispatch), runs preflight checks, builds DemucsFramework.xcframework, tests demucs-swift against it locally, then publishes: it updates Package.swift with the release URL/checksum, commits to demucs-swift, creates a GitHub release with the zip and checksum, and pushes plus tags demucs-swift at X.Y.Z. The README gains a Swift SDK section documenting the package, tag convention, and local build command. Earlier findings about push ordering, tag-existence checks, and regex robustness were addressed in f2f27fb; the dry-run clone question was settled (public repo). The critical tag-pattern issue at line 8 remains unanswered.


Automated review by siGit Code Review · commit 8a40561 · see the review dashboard

@setoelkahfi
setoelkahfi force-pushed the swift-sdk/release-workflow branch from 8a40561 to 96732b5 Compare September 26, 2026 11:20
Base automatically changed from swift-sdk/xcframework-build to main September 26, 2026 11:46
setoelkahfi and others added 2 commits September 26, 2026 13:47
Pushing a swift-vX.Y.Z tag builds DemucsFramework.xcframework with
build-swift-xcframework.sh, runs demucs-swift's tests against it,
attaches the zip and checksum to a GitHub release, then updates
demucs-swift's Package.swift and generated bindings and tags it X.Y.Z.

The swift-v prefix keeps these tags out of release.yml's v* trigger.
Publishing needs a DEMUCS_SWIFT_PAT secret with write access to
SplitFireAI/demucs-swift. The README documents the SDK and the tag.

Co-Authored-By: siGit Code <noreply@sigit.si>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Swift package commit now happens before the GitHub release, and it
fails if demucs-swift already has the version tag with a different
Package.swift or bindings. Before, the run warned and pushed to main
anyway, leaving SwiftPM users on the old tag.

The push rebases onto main first, since main can move while the Swift
tests run. The demucs-swift checkout uses full history so the rebase and
the tag comparison work.

The Package.swift regex no longer requires the string literal on its own
line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: siGit Code <noreply@sigit.si>
@setoelkahfi
setoelkahfi force-pushed the swift-sdk/release-workflow branch from 96732b5 to 8d67f1b Compare September 26, 2026 11:47

@sigit-code-review sigit-code-review Bot 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.

Adds a Release SDK Swift GitHub Actions workflow triggered by swift-vX.Y.Z tags (and manual workflow_dispatch). It runs preflight checks (fmt, clippy, tests, tag/version match), builds DemucsFramework.xcframework via build-swift-xcframework.sh on macOS, tests demucs-swift against the freshly built framework, then publishes: creates a GitHub release with the zip and checksum, updates demucs-swift's Package.swift URL/checksum and generated bindings, commits, rebases onto main, pushes, and tags X.Y.Z. The README gains a Swift SDK section, a make swift-xcframework table entry, cargo test -p demucs-ffi, and project-structure entries for demucs-ffi/ and uniffi-bindgen/. Earlier review threads on push/rebase ordering, tag-conflict handling, regex robustness, dry-run checkout, and the tag trigger pattern were all settled and addressed.


Automated review by siGit Code Review · commit 8d67f1b · see the review dashboard

@setoelkahfi
setoelkahfi merged commit 7551c6b into main Sep 26, 2026
7 checks passed
@setoelkahfi
setoelkahfi deleted the swift-sdk/release-workflow branch September 26, 2026 11:56
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.

1 participant