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

[CI] Use Xcode 13.4 #2100

Closed
jpsim opened this issue Mar 15, 2022 · 10 comments · Fixed by #2409
Closed

[CI] Use Xcode 13.4 #2100

jpsim opened this issue Mar 15, 2022 · 10 comments · Fixed by #2409

Comments

@jpsim
Copy link
Contributor

jpsim commented Mar 15, 2022

This is now the latest stable Xcode release and has some important fixes to Swift Concurrency back-deployment that could be beneficial to us.

Will require EngFlow to update their executors just as was done for #1997

cc @lfpino @Yannic

@lfpino
Copy link
Contributor

lfpino commented Mar 16, 2022

Ack @jpsim

@jpsim
Copy link
Contributor Author

jpsim commented Apr 25, 2022

@lfpino any progress on this?

In #1997 you mentioned that you were making changes to make this process simpler, so I was hoping it'd be faster to update this time around.

jpsim added a commit that referenced this issue Apr 26, 2022
https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md

This is a pre-requisite for updating to the latest Xcode version (#2100)

Signed-off-by: JP Simard <jp@jpsim.com>
jpsim added a commit that referenced this issue Apr 26, 2022
https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md

This is a pre-requisite for updating to the latest Xcode version (#2100)

Signed-off-by: JP Simard <jp@jpsim.com>
@lfpino
Copy link
Contributor

lfpino commented May 9, 2022

Hi @jpsim, sorry for the delay, yeah we've done some changes to make this faster but still not fully automated. I'll create an internal issue to move forward with this.

@jpsim
Copy link
Contributor Author

jpsim commented May 9, 2022

If you're just starting on this now, I suggest we look at having Xcode 13.3.1 (13E500a) which is now the latest stable release.

@Yannic
Copy link
Contributor

Yannic commented May 11, 2022

Working on it now, ETA later this week

@Yannic
Copy link
Contributor

Yannic commented May 13, 2022

Unfortunately, this will take longer than expected: Xcode 13.3.1 requires macOS 12, but we're still running macOS 11 on the worker instances 😞

@jpsim
Copy link
Contributor Author

jpsim commented May 13, 2022

I understand.

I don't know what your mac infra automation looks like, but you may want to look at tart which allows virtualizing macOS based on image snapshots pulled from an OCI-compatible container registry, similar to how Docker works.

@jpsim jpsim changed the title [CI] Use Xcode 13.3 [CI] Use Xcode 13.4 May 18, 2022
@jpsim
Copy link
Contributor Author

jpsim commented May 18, 2022

I updated the ticket to reflect that we should just jump straight to 13.4 (13F17a), which is now the latest stable release, and similarly also requires macOS 12.

@lfpino
Copy link
Contributor

lfpino commented May 25, 2022

Thanks for the tips @jpsim, we have an internal issue to upgrade to MacOS 12 and will keep you posted.

@jpsim
Copy link
Contributor Author

jpsim commented May 25, 2022

Thanks for the update. Looking forward to it and I hope you find a good solution to make the process smoother moving forward. I'm happy to workshop some ideas with you.

Yannic added a commit to Yannic/envoy-mobile that referenced this issue Jul 4, 2022
This upgrades `rules_foreign_cc` to a version including
bazel-contrib/rules_foreign_cc#938, which fixes
a build failure when the requested Apple SDK from `--xcode_version` does
not match the system's default Xcode's SDKs.

Example output:
```
rules_foreign_cc: Build failed!
rules_foreign_cc: Keeping temp build directory and dependencies directory for debug.
rules_foreign_cc: Please note that the directories inside a sandbox are still cleaned unless you specify --sandbox_debug Bazel command line flag.
rules_foreign_cc: Printing build logs:
_____ BEGIN BUILD LOGS _____
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'macosx12.1'
+ XCODE_VERSION_OVERRIDE=13.2.1.13C100
+ APPLE_SDK_VERSION_OVERRIDE=12.1
+ APPLE_SDK_PLATFORM=MacOSX
```

This fixes a hermeticity problem in the build and is a prerequisite for
upgradting the macOS RE cluster to macOS 12, which in turn is a
requirement for upgrading to Xcode 13.4.

Progress on envoyproxy#2100
Yannic added a commit to Yannic/envoy-mobile that referenced this issue Jul 4, 2022
This upgrades `rules_foreign_cc` to a version including
bazel-contrib/rules_foreign_cc#938, which fixes
a build failure when the requested Apple SDK from `--xcode_version` does
not match the system's default Xcode's SDKs.

Example output:
```
rules_foreign_cc: Build failed!
rules_foreign_cc: Keeping temp build directory and dependencies directory for debug.
rules_foreign_cc: Please note that the directories inside a sandbox are still cleaned unless you specify --sandbox_debug Bazel command line flag.
rules_foreign_cc: Printing build logs:
_____ BEGIN BUILD LOGS _____
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'macosx12.1'
+ XCODE_VERSION_OVERRIDE=13.2.1.13C100
+ APPLE_SDK_VERSION_OVERRIDE=12.1
+ APPLE_SDK_PLATFORM=MacOSX
```

This fixes a hermeticity problem in the build and is a prerequisite for
upgradting the macOS RE cluster to macOS 12, which in turn is a
requirement for upgrading to Xcode 13.4.

Progress on envoyproxy#2100

Signed-off-by: Yannic Bonenberger <yannic@engflow.com>
jpsim pushed a commit that referenced this issue Jul 5, 2022
This upgrades `rules_foreign_cc` to a version including
bazel-contrib/rules_foreign_cc#938, which fixes
a build failure when the requested Apple SDK from `--xcode_version` does
not match the system's default Xcode's SDKs.

Example output:
```
rules_foreign_cc: Build failed!
rules_foreign_cc: Keeping temp build directory and dependencies directory for debug.
rules_foreign_cc: Please note that the directories inside a sandbox are still cleaned unless you specify --sandbox_debug Bazel command line flag.
rules_foreign_cc: Printing build logs:
_____ BEGIN BUILD LOGS _____
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'macosx12.1'
+ XCODE_VERSION_OVERRIDE=13.2.1.13C100
+ APPLE_SDK_VERSION_OVERRIDE=12.1
+ APPLE_SDK_PLATFORM=MacOSX
```

This fixes a hermeticity problem in the build and is a prerequisite for
upgradting the macOS RE cluster to macOS 12, which in turn is a
requirement for upgrading to Xcode 13.4.

Progress on #2100

Signed-off-by: Yannic Bonenberger <yannic@engflow.com>
jpsim added a commit that referenced this issue Jul 19, 2022
Updates the version of Xcode Envoy Mobile is compatible
with to the latest stable version.

Risk Level: Low.
Testing: Local & CI.
Docs Changes: Done.
Release Notes: Done.
Fixes #2100

Signed-off-by: JP Simard <jp@jpsim.com>
jpsim pushed a commit to envoyproxy/envoy that referenced this issue Nov 29, 2022
This upgrades `rules_foreign_cc` to a version including
bazel-contrib/rules_foreign_cc#938, which fixes
a build failure when the requested Apple SDK from `--xcode_version` does
not match the system's default Xcode's SDKs.

Example output:
```
rules_foreign_cc: Build failed!
rules_foreign_cc: Keeping temp build directory and dependencies directory for debug.
rules_foreign_cc: Please note that the directories inside a sandbox are still cleaned unless you specify --sandbox_debug Bazel command line flag.
rules_foreign_cc: Printing build logs:
_____ BEGIN BUILD LOGS _____
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: SDK "macosx12.1" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'macosx12.1'
+ XCODE_VERSION_OVERRIDE=13.2.1.13C100
+ APPLE_SDK_VERSION_OVERRIDE=12.1
+ APPLE_SDK_PLATFORM=MacOSX
```

This fixes a hermeticity problem in the build and is a prerequisite for
upgradting the macOS RE cluster to macOS 12, which in turn is a
requirement for upgrading to Xcode 13.4.

Progress on envoyproxy/envoy-mobile#2100

Signed-off-by: Yannic Bonenberger <yannic@engflow.com>
Signed-off-by: JP Simard <jp@jpsim.com>
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 a pull request may close this issue.

3 participants