Skip to content
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

Fix CI not handling Xcode version correctly with packages #1387

Merged
merged 1 commit into from
Mar 11, 2023

Conversation

ychin
Copy link
Member

@ychin ychin commented Mar 11, 2023

In the CI setup, xcode-select is only called after the packages have been set up, but during setup we actually need to build the packages from source to have the correct deployment target linked correctly. This means we could potentially be building with the wrong configuration (e.g. when building for 10.9 legacy builds, we could be using an Xcode version that's too new for that) when building gettext/libsodium. This is compounded by the fact that our GitHub Action cache key for the libraries only include the formula, but not the active Xcode version itself so a cache could be propagated for a while until suddenly things break.

To fix this, first make sure we do Xcode configuration early on in the build, and to properly use the Xcode version as part of the cache key. This way, when Xcode version changes, we will invalidate the cache and rebuild gettext / libsodium with the correct configuration and if that's wrong we will immediately fail the build instead of using old stale caches.

@ychin ychin added the Infrastructure Non-app infrastructure issues, e.g. CI label Mar 11, 2023
In the CI setup, xcode-select is only called after the packages have
been set up, but during setup we actually need to build the packages
from source to have the correct deployment target linked correctly. This
means we could potentially be building with the wrong configuration
(e.g. when building for 10.9 legacy builds, we could be using an Xcode
version that's too new for that) when building gettext/libsodium. This
is compounded by the fact that our GitHub Action cache key for the
libraries only include the formula, but not the active Xcode version
itself so a cache could be propagated for a while until suddenly things
break.

To fix this, first make sure we do Xcode configuration early on in the
build, and to properly use the Xcode version as part of the cache key.
This way, when Xcode version changes, we will invalidate the cache and
rebuild gettext / libsodium with the correct configuration and if that's
wrong we will immediately fail the build instead of using old stale
caches.

Also, bump Xcode from 14.1 to 14.2 in CI.
@ychin ychin force-pushed the fix-ci-wrong-xcode-version-packages branch from 4c8155c to 86af12a Compare March 11, 2023 19:25
@ychin ychin merged commit 4dd814b into macvim-dev:master Mar 11, 2023
@ychin ychin deleted the fix-ci-wrong-xcode-version-packages branch March 11, 2023 19:26
@ychin ychin added the Non User Facing Non-user facing change. These issues do no need to show up in release notes. label Mar 20, 2023
tono pushed a commit to tono/macvim that referenced this pull request Mar 21, 2023
…ion-packages

Fix CI not handling Xcode version correctly with packages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure Non-app infrastructure issues, e.g. CI Non User Facing Non-user facing change. These issues do no need to show up in release notes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant