Skip to content

[chore]: update CI config #343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 13, 2025
Merged

[chore]: update CI config #343

merged 3 commits into from
May 13, 2025

Conversation

jamieQ
Copy link
Contributor

@jamieQ jamieQ commented May 9, 2025

updates the CI config with the following changes:

  1. bump to Xcode 16.1
  2. add a test matrix for the unit tests
    i. this is largely copied from the analogous logic in the Blueprint CI config
    ii. runs tests against the 3 most recent iOS SDKs (16.4, 17.5, 18.1)
  3. split out snapshot tests to run only against iOS 18.1
    i. this was primarily due to not knowing how to configure them to function correctly with the test matrix – something that should presumably be improved, but is no worse than what we're currently doing.
  4. disables a failing unit test after updating Xcode
    i. TODO: re-enable by adding support for app-hosted unit tests (tracked via this issue)

@jamieQ jamieQ force-pushed the jquadri/ci-config-updates branch 2 times, most recently from 89bec63 to 626eec6 Compare May 12, 2025 17:20
@jamieQ jamieQ changed the title [WIP]: some CI config updates [chore]: update CI config May 12, 2025
Comment on lines 10 to 13
guard #unavailable(iOS 18.0) else {
try XCTSkipIf(true, "Intrinsic content size does not update unless hosted in an actual app on iOS 18")
return
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure what a better solution to this problem is (iOS 18 runtime seemingly doesn't invalidate/update VCs in the same way it used to)... use app hosted unit tests?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use app hosted unit tests?

Yep. I've got a fix stashed if you want it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good, but let's do as a separate PR then (unless it requires very little code change)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this 'workaround' didn't actually seem to work around the problem for some reason, so i've just disabled the test currently

runs-on: macos-latest

strategy:
fail-fast: false # Don’t fail-fast so that we get all snapshot test changes
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure this is actually needed, but copied it from the Blueprint config

@jamieQ jamieQ marked this pull request as ready for review May 12, 2025 17:28
@jamieQ jamieQ requested review from a team as code owners May 12, 2025 17:28

- name: Install iOS ${{ matrix.sdk }}
if: ${{ matrix.installation_required }}
run: sudo xcodes runtimes install "iOS ${{ matrix.sdk }}"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How badly do you want to unit test on iOS 16? xcodes has a reputation of breaking a lot, I'd advise against depending on it if possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what things have you seen break? personally i don't feel too strongly, but figure we might as well try hitting all the versions we support if it's not too hard

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems like it adds a couple additional minutes to the CI time for that job. if it ends up being an issue i think we can probably drop it

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what things have you seen break?

Apple changes something on their backend and it just breaks this completely, blocking PRs in the meantime. The last time it happened we ended up disabling the check in Blueprint because it took more than several days to resolve.

Comment on lines 10 to 13
guard #unavailable(iOS 18.0) else {
try XCTSkipIf(true, "Intrinsic content size does not update unless hosted in an actual app on iOS 18")
return
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use app hosted unit tests?

Yep. I've got a fix stashed if you want it.

@jamieQ jamieQ marked this pull request as draft May 13, 2025 17:41
@jamieQ jamieQ force-pushed the jquadri/ci-config-updates branch from 6baeabb to 8c492ff Compare May 13, 2025 17:43
@jamieQ jamieQ marked this pull request as ready for review May 13, 2025 18:07
@jamieQ jamieQ force-pushed the jquadri/ci-config-updates branch from 8c492ff to 89dda04 Compare May 13, 2025 19:20
@jamieQ jamieQ enabled auto-merge (squash) May 13, 2025 19:25
@jamieQ jamieQ merged commit 2eec47e into main May 13, 2025
8 checks passed
@jamieQ jamieQ deleted the jquadri/ci-config-updates branch May 13, 2025 19:57
watt added a commit that referenced this pull request May 14, 2025
Adds an app host to to the WorkflowSwiftUI tests to restore the
preferred content size test disabled in #343.

Fixes #346
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.

3 participants