Skip to content

fix(ci): allow sdk publish after partial native release#101

Merged
Lythaeon merged 1 commit intomainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit intomainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon
Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon Lythaeon merged commit f59b796 into main Apr 12, 2026
3 checks passed
@Lythaeon Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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