also looking at this
fix(native): preserve workspace sources and native overlay lifecycle
#384
20 files
+500
-227
Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.
| @@ -35,9 +35,9 @@ jobs: | ||
| 35 | 35 | steps: |
| 36 | 36 | - uses: actions/checkout@v6 |
| 37 | 37 | - name: Install the managed Android toolchain |
| 38 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 38 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 39 | 39 | with: |
| 40 | version: '0.11.101' | |
| 40 | version: '0.11.106' | |
| 41 | 41 | install: 'false' |
| 42 | 42 | packages: bun.com@1.4.3 git-scm.org@2.53.0 openjdk.org@17.0.20.8 android.com/cmdline-tools@14742923.0.0 |
| 43 | 43 | - name: Boot and dispose the stock Play image through the SDK |
| @@ -60,9 +60,9 @@ jobs: | ||
| 60 | 60 | steps: |
| 61 | 61 | - uses: actions/checkout@v6 |
| 62 | 62 | - name: Install the identical managed Android toolchain |
| 63 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 63 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 64 | 64 | with: |
| 65 | version: '0.11.101' | |
| 65 | version: '0.11.106' | |
| 66 | 66 | install: 'false' |
| 67 | 67 | packages: bun.com@1.4.3 git-scm.org@2.53.0 openjdk.org@17.0.20.8 android.com/cmdline-tools@14742923.0.0 |
| 68 | 68 | - name: Verify bounded budget validation and normal readiness contracts |
| @@ -95,9 +95,9 @@ jobs: | ||
| 95 | 95 | - uses: actions/checkout@v6 |
| 96 | 96 | |
| 97 | 97 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 98 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 98 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 99 | 99 | with: |
| 100 | version: '0.11.101' | |
| 100 | version: '0.11.106' | |
| 101 | 101 | |
| 102 | 102 | - name: Verify Zig installation |
| 103 | 103 | run: zig version |
| @@ -180,9 +180,9 @@ jobs: | ||
| 180 | 180 | - uses: actions/checkout@v6 |
| 181 | 181 | |
| 182 | 182 | - name: Setup Pantry (provides Bun and Zig) |
| 183 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 183 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 184 | 184 | with: |
| 185 | version: '0.11.101' | |
| 185 | version: '0.11.106' | |
| 186 | 186 | |
| 187 | 187 | - name: First-party Zig dependencies |
| 188 | 188 | uses: ./.github/actions/first-party-zig-deps |
| @@ -254,9 +254,9 @@ jobs: | ||
| 254 | 254 | - uses: actions/checkout@v6 |
| 255 | 255 | |
| 256 | 256 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 257 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 257 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 258 | 258 | with: |
| 259 | version: '0.11.101' | |
| 259 | version: '0.11.106' | |
| 260 | 260 | |
| 261 | 261 | - name: Install dependencies |
| 262 | 262 | run: bun install |
| @@ -300,9 +300,9 @@ jobs: | ||
| 300 | 300 | - uses: actions/checkout@v6 |
| 301 | 301 | |
| 302 | 302 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 303 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 303 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 304 | 304 | with: |
| 305 | version: '0.11.101' | |
| 305 | version: '0.11.106' | |
| 306 | 306 | |
| 307 | 307 | - name: Install dependencies |
| 308 | 308 | run: bun install |
| @@ -327,9 +327,9 @@ jobs: | ||
| 327 | 327 | - uses: actions/checkout@v6 |
| 328 | 328 | |
| 329 | 329 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 330 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 330 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 331 | 331 | with: |
| 332 | version: '0.11.101' | |
| 332 | version: '0.11.106' | |
| 333 | 333 | |
| 334 | 334 | - name: Install XcodeGen |
| 335 | 335 | run: brew install xcodegen |
| @@ -369,9 +369,9 @@ jobs: | ||
| 369 | 369 | - uses: actions/checkout@v6 |
| 370 | 370 | |
| 371 | 371 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 372 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 372 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 373 | 373 | with: |
| 374 | version: '0.11.101' | |
| 374 | version: '0.11.106' | |
| 375 | 375 | |
| 376 | 376 | - name: Setup Java |
| 377 | 377 | uses: actions/setup-java@v6 |
| @@ -420,9 +420,9 @@ jobs: | ||
| 420 | 420 | - uses: actions/checkout@v6 |
| 421 | 421 | |
| 422 | 422 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 423 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 423 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 424 | 424 | with: |
| 425 | version: '0.11.101' | |
| 425 | version: '0.11.106' | |
| 426 | 426 | |
| 427 | 427 | - name: Install dependencies |
| 428 | 428 | run: bun install |
| @@ -439,9 +439,9 @@ jobs: | ||
| 439 | 439 | - uses: actions/checkout@v6 |
| 440 | 440 | |
| 441 | 441 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 442 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 442 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 443 | 443 | with: |
| 444 | version: '0.11.101' | |
| 444 | version: '0.11.106' | |
| 445 | 445 | |
| 446 | 446 | - name: Install dependencies |
| 447 | 447 | run: bun install |
| @@ -466,9 +466,9 @@ jobs: | ||
| 466 | 466 | - uses: actions/checkout@v6 |
| 467 | 467 | |
| 468 | 468 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 469 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 469 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 470 | 470 | with: |
| 471 | version: '0.11.101' | |
| 471 | version: '0.11.106' | |
| 472 | 472 | |
| 473 | 473 | - name: Install dependencies |
| 474 | 474 | run: bun install |
| @@ -546,9 +546,9 @@ jobs: | ||
| 546 | 546 | - uses: actions/checkout@v6 |
| 547 | 547 | |
| 548 | 548 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 549 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 549 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 550 | 550 | with: |
| 551 | version: '0.11.101' | |
| 551 | version: '0.11.106' | |
| 552 | 552 | |
| 553 | 553 | - name: Install dependencies |
| 554 | 554 | run: bun install |
| @@ -604,9 +604,9 @@ jobs: | ||
| 604 | 604 | fetch-depth: 0 |
| 605 | 605 | |
| 606 | 606 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 607 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 607 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 608 | 608 | with: |
| 609 | version: '0.11.101' | |
| 609 | version: '0.11.106' | |
| 610 | 610 | |
| 611 | 611 | - name: Install Dependencies |
| 612 | 612 | run: bun install |
| @@ -87,9 +87,9 @@ jobs: | ||
| 87 | 87 | fetch-depth: 0 |
| 88 | 88 | |
| 89 | 89 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 90 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 90 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 91 | 91 | with: |
| 92 | version: '0.11.101' | |
| 92 | version: '0.11.106' | |
| 93 | 93 | |
| 94 | 94 | - name: Install System Dependencies |
| 95 | 95 | if: matrix.platform.deps != '' |
| @@ -362,9 +362,9 @@ jobs: | ||
| 362 | 362 | # publish the Zig package here: a failed second leg would otherwise make |
| 363 | 363 | # an incomplete version visible in the pantry registry. |
| 364 | 364 | - name: Stage draft release |
| 365 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 365 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 366 | 366 | with: |
| 367 | version: '0.11.101' | |
| 367 | version: '0.11.106' | |
| 368 | 368 | install: 'false' |
| 369 | 369 | release: 'true' |
| 370 | 370 | release-draft: 'true' |
| @@ -455,9 +455,9 @@ jobs: | ||
| 455 | 455 | # paths; it does not rebuild a platform binary. The complete GitHub |
| 456 | 456 | # release is public before this registry version can become visible. |
| 457 | 457 | - name: Publish Zig package |
| 458 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 458 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 459 | 459 | with: |
| 460 | version: '0.11.101' | |
| 460 | version: '0.11.106' | |
| 461 | 461 | install: 'false' |
| 462 | 462 | publish: 'zig' |
| 463 | 463 | package-dir: packages/zig |
| @@ -668,9 +668,9 @@ jobs: | ||
| 668 | 668 | fetch-depth: 0 |
| 669 | 669 | |
| 670 | 670 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 671 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 671 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 672 | 672 | with: |
| 673 | version: '0.11.101' | |
| 673 | version: '0.11.106' | |
| 674 | 674 | |
| 675 | 675 | - name: Install Dependencies |
| 676 | 676 | run: bun install --frozen-lockfile |
| @@ -757,9 +757,9 @@ jobs: | ||
| 757 | 757 | fetch-depth: 0 |
| 758 | 758 | |
| 759 | 759 | - name: Setup Pantry (provides Bun, Zig, etc.) |
| 760 | uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101 | |
| 760 | uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106 | |
| 761 | 761 | with: |
| 762 | version: '0.11.101' | |
| 762 | version: '0.11.106' | |
| 763 | 763 | - uses: actions/setup-node@v6 |
| 764 | 764 | with: |
| 765 | 765 | node-version: '24' |
| @@ -203,8 +203,8 @@ test('workflow setup uses a known Pantry CLI instead of resolving latest', () => | ||
| 203 | 203 | for (const [name, job] of Object.entries(workflow.jobs)) { |
| 204 | 204 | for (const step of job.steps ?? []) { |
| 205 | 205 | if (step.uses?.startsWith('pantry-pm/pantry/packages/action@')) { |
| 206 | expect(step.with?.version, `${file} ${name} must pin Pantry CLI`).toBe('0.11.101') | |
| 207 | expect(step.uses, `${file} ${name} must pin the matching action source`).toBe('pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf') | |
| 206 | expect(step.with?.version, `${file} ${name} must pin Pantry CLI`).toBe('0.11.106') | |
| 207 | expect(step.uses, `${file} ${name} must pin the matching action source`).toBe('pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a') | |
| 208 | 208 | } |
| 209 | 209 | } |
| 210 | 210 | } |
| @@ -403,7 +403,7 @@ test('a failed native leg cannot publish a partial GitHub, Zig, or npm release', | ||
| 403 | 403 | expect(release.jobs.npm.if).toContain("needs.prepare-npm.result == 'success'") |
| 404 | 404 | expect(release.jobs.npm.if).toContain("needs.publish-release.result == 'success'") |
| 405 | 405 | const zigPublish = registry.steps!.find(step => step.name === 'Publish Zig package') |
| 406 | expect(zigPublish?.with).toMatchObject({ version: '0.11.101', install: 'false', publish: 'zig', 'package-dir': 'packages/zig' }) | |
| 406 | expect(zigPublish?.with).toMatchObject({ version: '0.11.106', install: 'false', publish: 'zig', 'package-dir': 'packages/zig' }) | |
| 407 | 407 | expect(zigPublish?.with?.release).toBeUndefined() |
| 408 | 408 | expect(Object.entries(release.jobs).flatMap(([name, job]) => |
| 409 | 409 | (job.steps ?? []).filter(step => step.with?.publish === 'zig').map(() => name))).toEqual(['publish-pantry']) |