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

Update iOS build runner from macos-11 to macos-12 in workflow #3292

Merged
merged 3 commits into from
Jul 2, 2024

Conversation

softins
Copy link
Member

@softins softins commented Jun 17, 2024

Short description of changes

Update the build runner for iOS from macos-11 to macos-12 in the Auto-Build workflow

CHANGELOG: Build: Updated the build runner for iOS in Github from macos-11 to macos-12

Context: Fixes an issue?

Fixes #3304

Does this change need documentation? What needs to be documented and how?
Probably not.

Status of this Pull Request

Ready for review. Build succeeds.

What is missing until this pull request can be merged?

Maybe testing of the iOS build. Not sure how to do that. @ann0see has tested the build and reports it runs ok.

Checklist

  • I've verified that this Pull Request follows the general code principles
  • I tested my code and it does what I want
  • My code follows the style guide
  • I waited some time after this Pull Request was opened and all GitHub checks completed without errors.
  • I've filled all the content above

Github have deprecated macos-11 as a runner, and will remove it
on 28 Jun 2024.

See https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/
for the announcement.
@softins softins added the tooling Changes to the automated build system label Jun 17, 2024
@softins softins added this to the Release 3.11.0 milestone Jun 17, 2024
The macos-12 runner doesn't offer xcode 12.5.1, but only the following:

14.2.0, 14.1.0, 14.0.1, 13.4.1, 13.3.1, 13.2.1, 13.1.0

So choosing the most recent in the xcode-13 series.
@softins
Copy link
Member Author

softins commented Jun 19, 2024

Hmm, it looks like there is more to do to make this work. Having updated the xcode version, the build still does not succeed, with log messages that I don't understand:

Run QT_VERSION=5.15.2 ./.github/autobuild/ios.sh build
  QT_VERSION=5.15.2 ./.github/autobuild/ios.sh build
  shell: /bin/bash -e {0}
  env:
    MD_APPLE_SDK_ROOT: /Applications/Xcode_13.4.1.app
    JAMULUS_BUILD_VERSION: 3.10.0dev-ff6b17e
    MACOS_CERTIFICATE:
    MACOS_CERTIFICATE_PWD:
    MACOS_CERTIFICATE_ID:
    NOTARIZATION_PASSWORD:
    KEYCHAIN_PASSWORD:
    MACOS_CA_PUBLICKEY:
Info: creating stash file /Users/runner/work/jamulus/jamulus/.qmake.stash
Project MESSAGE: building version "3.10.0dev-ff6b17e" (intermediate in git repository)
2024-06-19 17:46:51.555 xcodebuild[6052:24427] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2024-06-19 17:46:51.555 xcodebuild[6052:24427] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
Command line invocation:
    /Applications/Xcode_13.4.1.app/Contents/Developer/usr/bin/xcodebuild -project Jamulus.xcodeproj -scheme Jamulus -configuration Release clean archive -archivePath build/Jamulus.xcarchive CODE_SIGN_IDENTITY= CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO CODE_SIGN_ENTITLEMENTS=

User defaults from command line:
    IDEArchivePathOverride = /Users/runner/work/jamulus/jamulus/build/Jamulus.xcarchive
    IDEPackageSupportUseBuiltinSCM = YES

Build settings from command line:
    CODE_SIGN_ENTITLEMENTS =
    CODE_SIGN_IDENTITY =
    CODE_SIGNING_ALLOWED = NO
    CODE_SIGNING_REQUIRED = NO

--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
Prepare build
** CLEAN FAILED **
error: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.

Build Preparation

The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.
The following build commands failed:

        Prepare build
Prepare build
(1 failure)
error: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.
** ARCHIVE FAILED **
Build Preparation

The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.


The following build commands failed:
        Prepare build
(1 failure)
Error: Process completed with exit code 65.

Anyone have any ideas?

If we can't make this work by 28 June, we will need to temporarily disable the iOS auto-build.

@softins softins marked this pull request as draft June 19, 2024 20:12
@softins
Copy link
Member Author

softins commented Jun 19, 2024

Nope. Tried using the earliest version of xcode (13.1.0) supported under macos-12, but the build still fails with the same errors as above. I've temporarily modified the workflow to run just the iOS build while testing (1002823)

@softins softins force-pushed the build-ios-on-macos-12 branch 2 times, most recently from 6e9c3b1 to d53fa10 Compare June 19, 2024 21:52
@softins
Copy link
Member Author

softins commented Jun 19, 2024

Found there is a way to disable the legacy build system deprecation diagnostic as found in this StackOverflow answer, and have added that to .github/autobuild/ios.sh (ccc1851)

It now successfully builds on both xcode 13.1.0 and 13.4.1, so I've set it to use 13.4.1 again. Haven't been able to test the built iOS app.

We will need to raise an issue for the need to move to the xcode "modern build system". Done: #3293

@softins softins marked this pull request as ready for review June 19, 2024 22:21
@ann0see
Copy link
Member

ann0see commented Jun 20, 2024

Ok. Runs on iOS 17

@ann0see
Copy link
Member

ann0see commented Jun 23, 2024

What would happen if you move the macOS and Xcode version even further to the latest version?

@softins
Copy link
Member Author

softins commented Jun 23, 2024

What would happen if you move the macOS and Xcode version even further to the latest version?

Well xcode 14 does not support the legacy build system, so builds would fail until we used a Qt version that uses the modern build system instead. I haven't investigated which versions do so.

I'm on holiday till 6 July, so have limited time, and no environment to test anything locally.

@softins
Copy link
Member Author

softins commented Jun 23, 2024

We can't move from macos-12 to macos-13 until we support the modern build system, as macos-13 runners only offer xcode 14+

@softins
Copy link
Member Author

softins commented Jun 23, 2024

This PR needs to be approved and merged as-is before 28 June for iOS builds to work after that date. There are two or three brownout periods before that time where they will fail too.

We can then explore later versions without the deadline.

@pljones
Copy link
Collaborator

pljones commented Jun 30, 2024

Is there a related issue for this PR? There seem to be several MacOS tooling changes and I can't tell them apart.

@ann0see
Copy link
Member

ann0see commented Jun 30, 2024

I don't think so. This is iOS related. #3293 may be.

Copy link
Member

@ann0see ann0see left a comment

Choose a reason for hiding this comment

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

Tested a while ago.

@softins
Copy link
Member Author

softins commented Jun 30, 2024

Is there a related issue for this PR? There seem to be several MacOS tooling changes and I can't tell them apart.

There isn't at the moment. I raised the PR without creating an issue. I can do so if it provides better traceability.

#3293 is a consequence of this change, rather than an issue fixed by it.

@softins
Copy link
Member Author

softins commented Jun 30, 2024

OK, I raised #3304 and moved the reason this PR is needed into the issue description.

@pljones
Copy link
Collaborator

pljones commented Jul 1, 2024

So "iOS build runner from macos-11 to macos-12" is referring to the OS platform on which the iOS build is run? I see... I think :)

@pljones
Copy link
Collaborator

pljones commented Jul 1, 2024

Added the issue to the project board and set to In progress.

https://github.com/jamulussoftware/jamulus/pull/3065/files .github/workflows/autobuild.yml appears to have the same change as in this PR?

@softins
Copy link
Member Author

softins commented Jul 1, 2024

So "iOS build runner from macos-11 to macos-12" is referring to the OS platform on which the iOS build is run? I see... I think :)

Yes, specifically in the Github CI.

@softins
Copy link
Member Author

softins commented Jul 1, 2024

https://github.com/jamulussoftware/jamulus/pull/3065/files .github/workflows/autobuild.yml appears to have the same change as in this PR?

No, that PR changes the build runner to macos-13, and the xcode to 14.2.0. Neither of those is compatible with the legacy build system needed by the build with Qt 5.15.2.

This PR is using macos-12 and xcode 13.4.1, which are the latest versions compatible with the legacy build system use by Qt 5.15.2. So this PR should be merged as an interim solution, until iOS with Qt 6 is working properly (which may well take some time).

@ann0see ann0see merged commit 579ccbc into jamulussoftware:main Jul 2, 2024
15 checks passed
@softins softins deleted the build-ios-on-macos-12 branch July 2, 2024 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tooling Changes to the automated build system
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Github are removing macos-11 as a runner - affects iOS build
3 participants