OpenCPN / plugins

Container Project for an Integrated Plugin Management Facility
18 stars 20 forks source link

Circleci (TP) Bug: Macos and Macos-wx32 Failures (many) #1009

Closed rgleason closed 1 year ago

rgleason commented 1 year ago

For example see https://app.circleci.com/pipelines/github/rgleason/climatology_pi/238/workflows/f755690c-0c7b-441f-a133-e9161f89e7e7/jobs/3318

Also in October, circleci is changing their macos engines.

AI generated

Recommended Fixes for bash ci/circleci-build-macos.sh

The error message indicates that the installation process is unable to find the source file named 'packages/Packages.pkg' for the Cask 'packages'. Instead, it found a file named 'Install Packages.pkg'.

To fix this issue, the user should ensure that the correct PKG source file is provided and located in the expected directory. They should verify the name and location of the source file, as well as check for any typos or incorrect file extensions.

Example of correct code:

brew cask install packages --pkgfile=/path/to/packages/Packages.pkg

rgleason commented 1 year ago

TP ci/circleci-build-macos.sh has the following

set -xe

set -o pipefail
# Check if the cache is with us. If not, re-install brew.
brew list --versions libexif || brew update-reset

for pkg in cairo cmake gettext libarchive libexif python wget; do
    brew list --versions $pkg || brew install $pkg || brew install $pkg || :
    brew link --overwrite $pkg || brew install $pkg
done
rgleason commented 1 year ago

I believe there are some changes needed. What are they?

Also here are some warnings: ==> Summary

🍺  /usr/local/Cellar/cmake/3.27.6: 3,285 files, 60.2MB
==> Running `brew cleanup cmake`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
+ brew link --overwrite cmake
Warning: Already linked: /usr/local/Cellar/cmake/3.27.6
To relink, run:
  brew unlink cmake && brew link cmake
+ for pkg in cairo cmake gettext libarchive libexif python wget
+ brew list --versions gettext
gettext 0.22.2 0.21
+ brew link --overwrite gettext
Warning: Already linked: /usr/local/Cellar/gettext/0.22.2
To relink, run:
  brew unlink gettext && brew link gettext
+ for pkg in cairo cmake gettext libarchive libexif python wget
+ brew list --versions libarchive
+ brew install libarchive
Warning: You are using macOS 11.
We (and Apple) do not provide support for this old version.
It is expected behaviour that some formulae will fail to build in this old version.
It is expected behaviour that Homebrew will be buggy and slow.
Do not create any issues about this on Homebrew's GitHub repositories.
Do not create any issues even if you think this message is unrelated.
Any opened issues will be immediately closed without response.
Do not ask for help from Homebrew or its maintainers on social media.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it.
bdbcat commented 1 year ago

Looking now. PSB.

rgleason commented 1 year ago

Some links https://circleci.com/docs/using-macos/

We are deprecating support for all Intel-based macOS resources.

The medium and large resource classes are being deprecated on October 2, 2023. Xcode v14.2 is the latest version that will be supported by these macOS resources.

The macos.x86.medium.gen2 resource class is being deprecated on January 31, 2024. Xcode v15.1 is the latest version that will be supported by this macOS resource.

macos.x86.medium.gen2 resource class is being deprecated on January 31, 2024. We are using this resource I believe in circleci/config.yml.

    build-macos-wx32:
        macos:
            xcode: "12.5.1"
        resource_class: macos.x86.medium.gen2
        environment:
        - OCPN_TARGET:  macos
        - CLOUDSMITH_PKG_EXT: pkg
        - DEPLOY_USE_ORB: true
        - WX_VER: 32
        steps:
        - checkout
        - run: chmod a+x ci/*.sh
        - run: bash ci/circleci-build-macos.sh
        - deploy-code
    build-macos:
        macos:
            xcode: "12.5.1"
        resource_class: macos.x86.medium.gen2
        environment:
        - OCPN_TARGET:  macos
        - CLOUDSMITH_PKG_EXT: pkg
        - DEPLOY_USE_ORB: true
        - WX_VER: 315
        steps:
        - checkout
        - run: chmod a+x ci/*.sh
        - run: bash ci/circleci-build-macos.sh
        - deploy-code

https://discuss.circleci.com/t/macos-resource-deprecation-update/46891

https://discuss.circleci.com/t/macos-intel-support-deprecation-in-january-2024/48718 Have we updated the resource key to the proper one? https://discuss.circleci.com/t/macos-intel-support-deprecation-in-january-2024/48718/4

https://discuss.circleci.com/t/how-can-i-use-a-homebrew-package-inside-workflows-the-most-efficient-way/45380/2 https://formulae.brew.sh/formula/circleci

Optimizing Homebrew https://circleci.com/docs/using-macos/#optimizing-homebrew

bdbcat commented 1 year ago

Waiting on a build. I note that the "packages" build of MacOS plugins is deprecated, by us. The only supported method of plugin installation on O562 and O58+ is via PIM. AFICT, no-one is using the resulting .pkg plugin installation process. Why do we not take this opportunity to drop these deprecated builds? btw, we have the same situation on other platforms.

rgleason commented 1 year ago

xcode: "12.5.1" is old shouldn't we be using something like 14.1.0 which is compatible with 12.5.1?

https://circleci.com/docs/using-macos/#supported-xcode-versions-intel

bdbcat commented 1 year ago

My question first, please. I think only Jon is concerned with .pkg installation. If we drop the .pkg method, then this problem goes away forever. I am proposing that now.
Comments?

rgleason commented 1 year ago

Lets drop the pkg installation please.

bdbcat commented 1 year ago

Done. PR posted to testplugin_pi/sublibs

rgleason commented 1 year ago

Thanks, will propagate over time.

rgleason commented 1 year ago

The removal of pkg does allow Macos to build, however it is taking a coons age, over an hour so far. https://github.com/rgleason/raymarine_autopilot_pi/runs/17110091828 Other PI the same.

rgleason commented 1 year ago

Linked Title in Circleci

macOS Gen1 being sunsetted on October 2. Our “medium”, “large” and Dedicated Host macOS resource classes will no longer be available after October 2. Please update your config to avoid build errors. Learn more

31 January 2024

    Gen2 (macos.x86.medium.gen2)
        Xcode 15.1 is the last supported version for Gen2
31 January 2024

    Gen2 will no longer be available to use
    Customers will need to update their config to a new resource class before this date to avoid build errors

M1 resources we launched earlier this year have provided a superior experience, with better efficiency and performance. Whether your support for [apple silicon, x86_64 architecture, or both 66](https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary), building with M1 can cut your build times by up to half! Xcode 12.5.1, is not available on our M1 resources.

The M1 resources appear to use 150-250 credits/minute

rgleason commented 1 year ago

I think the questions I have about using M1 are:

  1. Is it available for Open Source?
  2. Does it support operation on Intel? x86_64?
bdbcat commented 1 year ago

Shifting to M! build core is a separate project from current sublibs project. Of course we will do it, we have no choice if we want to use CCI for MacOS builds But please, lets disconnect it, and focus on sublibs project for all TP plugins. My experience in coding suggest that too many moving parts inevitable produces red herrings, and lots of wasted effort.

Please close this Issue as complete.

rgleason commented 1 year ago

OK, just trying to avoid shifting sands....