Skip to content

Release 3.13.12

Choose a tag to compare

@github-actions github-actions released this 05 Feb 07:44
· 47 commits to main since this release
ci: refactor release workflows for atomic manifest updates

Refactor CI/CD workflows to eliminate race conditions and improve reliability
by decoupling artifact generation from git operations.

Previous workflow: Each matrix job (per architecture) committed directly to git
→ Race conditions, flaky failures, difficult partial recovery

New workflow: Build → Artifact → Single Aggregation → Commit
→ No races, atomic updates, easy partial recovery

**reusable-release-python-tar.yml:**
- Rename job: release-assets-and-update-manifest → release-assets-and-generate-json
- Remove: All git operations (pull, commit, push)
- Remove: Complex bash script for manifest parsing
- Add: Call to generate_partial_manifest.py after release
- Add: Upload partial manifest as workflow artifact
- Simplified: ~120 lines removed, ~30 lines added

**release-latest-python-tag.yml & release-matching-python-tags.yml:**
- Add: New update-manifests job (runs after all builds complete)
- Add: Downloads all partial manifest artifacts
- Add: Calls apply_partial_manifests.py
- Add: Single atomic git commit/push
- Add: Concurrency control (manifest-update-${{ github.ref }})
- Change: Matrix fail-fast: false (preserve successful builds)

**generate_tar.yml, merge-manifest.yml, python-sample.yml:**
- Change: fail-fast: false in matrix strategy

Before:

After:

✅ **No race conditions:** Single commit point
✅ **Partial recovery:** Rerun only failed architectures
✅ **Better reliability:** fail-fast: false preserves successful builds
✅ **Atomic updates:** All-or-nothing manifest commits
✅ **Simpler logic:** Removed ~150 lines of bash script

- .github/workflows/reusable-release-python-tar.yml (+30, -152)
- .github/workflows/release-latest-python-tag.yml (+74, -6)
- .github/workflows/release-matching-python-tags.yml (+75, -6)
- .github/workflows/generate_tar.yml (+1, -1)
- .github/workflows/merge-manifest.yml (+1, -1)
- .github/workflows/python-sample.yml (+1, -1)

Signed-off-by: Adilhusain Shaikh <Adilhusain.Shaikh@ibm.com>