@ondeinference / onde / commits / f22a3db

Preserve local Swift package fallback in release automation

Seto Elkahfi committed May 15, 2026 at 05:57 UTC f22a3dbc42a306c568e644c56031f428d74f3821
1 file changed +14 -14
.github/workflows/release-sdk-swift.yml
+14 -14
@@ -101,7 +101,7 @@ jobs:
101 token: ${{ secrets.ONDE_SWIFT_PAT }}
102 path: onde-swift
103
104 - - name: Rewrite Package.swift with release URL and checksum
104 + - name: Rewrite Package.swift release constants
105 if: startsWith(github.ref, 'refs/tags/')
106 env:
107 CHECKSUM: ${{ steps.meta.outputs.checksum }}
@@ -116,22 +116,22 @@ jobs:
116 url = os.environ["RELEASE_URL"]
117 checksum = os.environ["CHECKSUM"].strip()
118
119 - pattern = re.compile(
120 - r'\.binaryTarget\(\s*name:\s*"OndeFramework".*?\)',
121 - re.DOTALL,
119 + url_pattern = re.compile(
120 + r'(let releaseFrameworkURL =\s*\n\s*")([^"]+)(")',
121 + re.MULTILINE,
122 )
123 -
124 - replacement = (
125 - '.binaryTarget(\n'
126 - ' name: "OndeFramework",\n'
127 - f' url: "{url}",\n'
128 - f' checksum: "{checksum}"\n'
129 - ' )'
123 + checksum_pattern = re.compile(
124 + r'(let releaseFrameworkChecksum =\s*\n\s*")([^"]+)(")',
125 + re.MULTILINE,
126 )
127
132 - updated = pattern.sub(replacement, src)
133 - if updated == src:
134 - raise RuntimeError("binaryTarget pattern did not match — check Package.swift format")
128 + updated, url_count = url_pattern.subn(rf'\1{url}\3', src, count=1)
129 + updated, checksum_count = checksum_pattern.subn(rf'\1{checksum}\3', updated, count=1)
130 +
131 + if url_count != 1:
132 + raise RuntimeError("releaseFrameworkURL pattern did not match — check Package.swift format")
133 + if checksum_count != 1:
134 + raise RuntimeError("releaseFrameworkChecksum pattern did not match — check Package.swift format")
135
136 pkg.write_text(updated)
137 print("Package.swift updated:")