-
Notifications
You must be signed in to change notification settings - Fork 123
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
Ruby 3.2.2 + Multi-Arch CI Builds #133
Conversation
You can run the https://tart.run/ and https://github.com/cirruslabs/cirrus-cli brew install cirruslabs/cli/tart
tart clone ghcr.io/cirruslabs/macos-ventura-base:latest ventura-base
brew install cirruslabs/cli/cirrus Then type You can then test with rosetta installed, and without by using |
Unfortunately this does not work for me. (tested on Mac mini M1, 2020, macOS Ventura 13.3.1 and MBA 2020, also macOS Ventura 13.3.1)
|
Some files seem not to be executable from within the virtual machine (at least for me): local:
virtual machine:
Adding the following at the beginning of the
|
ahh sorry yeah that is a known issue and their is a workaround which is to run with https://github.com/cirruslabs/cirrus-cli#running-cirrus-tasks Related issues It allows to relation to this PR where one can retrieve the artefacts generated from the VM |
Thanks for taking a look! Have you had a chance to try it on your m1 machine without cirrus? It runs pretty quickly, think it was about 10 minutes for me |
I'll also take a look as soon as I can. |
No rush! I think I may have an issue with libyaml and psych.so which affects linux users that don't have See this PR against our consuming project, pact-ruby-standalone |
Thanks for your reply! Using the Below is the output when running
|
I've been running the arm64 macos builds on an m1 pro / 16gb, so might have a bit more legs than the mini and the air I haven't trialled that out yet but its a combination of https://cirrus-ci.org/guide/writing-tasks/#artifacts-instruction and the
from
|
The following did the trick for me, to get the built files, locally:
then run: |
The change in How could I resolve the "skipping uploading of folder"-message? Is the gems-folder
|
Hey @utoppo You need to upload just archived files, so *.tar.gz
|
Hey Just as a heads-up, I've been working on another branch https://github.com/YOU54F/traveling-ruby/releases/tag/rel-20230529-next I found issues with Also making some improvements to allow for building and testing multiple ruby versions, the ruby gems, across multiple platforms, archs and docker image variants Docker emulation means you can build/test cross arch for the linux binaries, and cross plat on a mac. mac m1 runners mean we can test with with rosetta and without, and some changes to the macos build suite will allow for arm64 builds on x86_64 runners looking to build a custom image with the runtime prebuilt for macos, to speed up execution :) it's like pokemon, gotta build em all |
@YOU54F loving to follow your work on this ❤️ Once complete it will be a huge step forward for ruby executable portability. Looking forward to making use of it! |
ARM64 + x86_64 builds for 2.6 / 3.0.x / 3.1.x / 3.2.x & 3.3.x-preview https://github.com/YOU54F/traveling-ruby/releases/tag/rel-20230605 Wrapper scripts are now osx builds, now half-sized, (they had an extra all of the existing gems built, bar https://github.com/YOU54F/traveling-ruby Traveling-Ruby. Done 🚀 |
Closing in favour of #134 Latest release has just gone out https://github.com/YOU54F/traveling-ruby/releases/tag/rel-20230803 |
Continuation from #132
This PR
It is a bit a WIP and needs cleaning up, plus I have a couple of questions / outstanding hacks to resolve, but at least gives a place for others to review :)
Upgrade to Ruby 3.1.2 / Support ARM64 OSX/Linux
Hey Hey @FooBarWidget 👋🏾
We are the maintainers of Pact! You might remember us from https://www.joyfulbikeshedding.com/blog/2021-01-06-the-future-of-traveling-ruby.html
We have since moved onto using Rust to build and package most of core functionality, but still get a-lot of asks to update the build system we use for packaging our Pact Ruby implementation, and its various gems into a standalone package, with travelling ruby.
I took a look a few times, but felt out of my depth, but have been watching a few forks closely on an off over the years, and finally managed to pul some work together from others, and added some work myself.
Issues affecting our community
Write a description of changes made
ucrt
and needmsvs
version of Ruby (Windows on ARM users)BONUS POINTS
Avoid breakage
👍🏾
Release for 3.2.2
https://github.com/YOU54F/traveling-ruby/releases/tag/rel-20230508
Travelling ruby 3.2.2
Changes tested and released against a fork of pact-ruby-standalone project
https://github.com/YOU54F/pact-ruby-standalone/releases
You can see the traveling ruby binaries being pulled in here
https://github.com/YOU54F/pact-ruby-standalone/blob/master/tasks/package.rake#L218
Packages tested cross platform in CI
https://github.com/YOU54F/pact-ruby-standalone/actions/runs/4671665215
and consumed in pact-js (a heavily used project which consumed the ruby standalone project)
https://github.com/YOU54F/pact-js-core/blob/pact-node-arm64/standalone/install.ts#L28-L29
It previously wasn't able to run on arm64 linux machines, and on darwin had to use rosetta, I've now tested that without Rosetta installed, our ruby executables are looking good so far.
Consumed here for testing against pact-python pact-foundation/pact-python#342
I think I would still like to use the squashfs approach used in ruby-packer, I did tickle both their source codes a little bit, but the forks were more progressed against yours, and it has been tried and tested with our applications for years.