-
Notifications
You must be signed in to change notification settings - Fork 282
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: add release on macos-14 #2950
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2950 +/- ##
=======================================
Coverage 64.62% 64.62%
=======================================
Files 104 104
Lines 22239 22239
Branches 10911 10911
=======================================
Hits 14371 14371
Misses 5626 5626
Partials 2242 2242 ☔ View full report in Codecov by Sentry. |
Thanks for the initiative! For the arch and archive names, you can check what we did for darktable recently: https://github.com/darktable-org/darktable/blob/master/.github/workflows/nightly.yml |
Thanks for the darktable example. exiv2-linux64.zip
exiv2-win.zip
exiv2-macos-12-x64.zip # it is compatible with macos ≥12 , amd64
exiv2-macos-14-arm64.zip # it is compatible with macos ≥14 , arm64 However, if you unzip |
.github/workflows/release.yml
Outdated
fail-fast: false | ||
matrix: | ||
runner: | ||
- { os: macos-12, arch: X64 } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These were now updated.
Use `64bit` or `32bit` on Windows hosts (including MinGW/Cygwin/MSYS), the value of `${CMAKE_HOST_SYSTEM_ARCHITECTURE}` on all others. Always insert into package filename directly after version, separated from preceding version and following flags with hyphens. So, e.g. * `exiv2-1.0.9-Linux64.tar.gz` * `exiv2-1.0.9-Darwin.tar.gz` * `exiv2-1.0.9-2019msvc64.zip` become: * `exiv2-1.0.9-x86_64-Linux.tar.gz` * `exiv2-1.0.9-arm64-Darwin.tar.gz` * `exiv2-1.0.9-64bit-2019msvc.zip` respectively.
@LeoHsiao1 I've used one of my favorite tricks, and opened a PR against your PR. PR LeoHsiao1#1 will, if you merge it, incorporate my change to the packaging configs into this PR. Here's my commit message explaining how the package-naming changes:
(Committers here can then still review that change as part of this PR.) |
CMake: Add architecture to package filename
Thanks @ferdnyc , I merged your PR. exiv2-linux64.zip -> unzip -> exiv2-1.00.0.9-x86_64-Linux.tar.gz
exiv2-macos-12-x64.zip -> unzip -> exiv2-1.00.0.9-x86_64-Darwin.tar.gz
exiv2-macos-14-arm64.zip -> unzip -> exiv2-1.00.0.9-arm64-Darwin.tar.gz
exiv2-win.zip -> unzip -> exiv2-1.00.0.9-64bit-2019msvc.zip |
Nice @ferdnyc However, I suggest using real arch for Windows builds as well, as WoA adoption seems to be around the corner. |
That's a good point, I'm just not sure how to do it for Windows. The CMake script uses the size of a void pointer in the current compiler, to determine 32- vs. 64-bit builds, and I'm pretty sure that even when I suppose I could just hard-code it to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Three suggested changes that, applied together, would implement the "force i686 for 32-bit builds but use the real processor for all others" idea I mentioned in the comments.
(I had to split it up like this because of GitHub's annoying "no suggestions on ranges which include deleted lines" nonsense.)
Fine, now exiv2-arm64-macos-14.zip -> unzip -> exiv2-1.00.0.9-arm64-Darwin.tar.gz
exiv2-x64-macos-12.zip -> unzip -> exiv2-1.00.0.9-x86_64-Darwin.tar.gz
exiv2-x64-ubuntu-22.04.zip -> unzip -> exiv2-1.00.0.9-x86_64-Linux.tar.gz
exiv2-x64-windows-2022.zip -> unzip -> exiv2-1.00.0.9-AMD64-2019msvc.zip The filename on the left side, indicates which machine exiv2 was built from. |
Needs rebasing I think. |
This PR only changes two files, which can be merged or rebased. |
Good morning!
In 2020, apple sells a new generation of mac computers, changing the CPU chips from Intel to M1, and the CPU architecture from amd64 to arm64.
In #2173, some users want to use exiv2 on MacOS M1 computers. I would like to help them, although I don't have a MacOS computer.
In 2024, actions/runner-images#9255, GitHub Actions added the macos-14 runner. It only uses M1 chips, not Intel chips.
So I modified the exiv2 workflow script to compile on macos-14. It looks like it compiled successfully, but not yet tested.
There is another problem, we need to change the filename format of the release packages, to differentiate between amd64 and arm64.
https://github.com/Exiv2/exiv2/blob/77915ad17b103793017e2b3b5ffd6c8a3ab1e916/.github/workflows/release.yml#L224-227