Skip to content

[CHORE] Parallelize release tests and clarify CI job names#255

Merged
ypopovych merged 2 commits into
mainfrom
chore/ci-workflow-job-names-and-parallelization
May 15, 2026
Merged

[CHORE] Parallelize release tests and clarify CI job names#255
ypopovych merged 2 commits into
mainfrom
chore/ci-workflow-job-names-and-parallelization

Conversation

@ypopovych

@ypopovych ypopovych commented May 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Release workflow now runs unit tests in parallel by platform (matrix), matching unitTests.yml.
  • Job names in unitTests.yml and integrationTests.yml now show Xcode_X.Y / platform, including when unitTests.yml is called as a reusable workflow from integrationTests.yml (previously the Xcode version was dropped because the matrix used a nested env object — switched to scalar xcode / platform keys).
  • Added .github/actions/setup-xcode composite action that selects an Xcode version and emits the matching simulator names as outputs, so the version→simulator mapping lives in a single file instead of being duplicated across each workflow.
  • createRelease.yml hoists the Xcode version into a workflow-level XCODE_VERSION env var so it can be bumped once.

Test plan

  • Open a PR (unit tests run) and confirm each unit job appears as Xcode_26.X / <platform> in checks.
  • Manually dispatch Integration Tests and confirm the unit / Xcode_26.X / <platform> and integration / Xcode_26.X / <platform> jobs show the Xcode version in their names.
  • Manually dispatch Create new release against a throwaway version and confirm the test job fans out into five platform-specific jobs.
  • Confirm the composite action fails with a clear message if given an unknown Xcode version (e.g. by temporarily passing Xcode_99.0).

🤖 Generated with Claude Code

- Parallelize createRelease test job by platform via a matrix, matching unitTests.yml
- Switch unitTests.yml matrix from a nested `env` object to scalar `xcode` and `platform` keys so the Xcode version stays in the job name when invoked as a reusable workflow from integrationTests.yml
- Give integrationTests.yml jobs the same `Xcode_X.Y / platform` naming
- Extract Xcode select + simulator-name resolution into `.github/actions/setup-xcode` composite action so version→simulator mappings live in one place
- Hoist Xcode version in createRelease.yml into a workflow-level `XCODE_VERSION` env so it can be bumped in a single spot

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@ypopovych
ypopovych requested review from a team as code owners May 15, 2026 15:12
`env` context isn't available in `jobs.<job_id>.name`, so the previous
`${{ env.XCODE_VERSION }}` reference there failed to parse. Use a static
`Test / <platform>` job name and keep `${{ env.XCODE_VERSION }}` in
step-level fields where it is supported.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@ypopovych
ypopovych requested a review from calvinbayer May 15, 2026 15:19
@ypopovych
ypopovych merged commit 5e7f23c into main May 15, 2026
14 of 16 checks passed
@ypopovych
ypopovych deleted the chore/ci-workflow-job-names-and-parallelization branch May 15, 2026 15:26
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.

2 participants