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

Feat: ARM64 Support for OSX / Linux + Windows 32 bit support #342

Merged
merged 5 commits into from May 3, 2023

Conversation

YOU54F
Copy link
Member

@YOU54F YOU54F commented Apr 21, 2023

Changes to traveling ruby to support additional platforms

Details of changes made to travelling ruby

PR's to Travelling ruby to update the supported archs

Which means we can now support

OS Ruby Architecture Supported
OSX 3.2.2 x86_64
OSX 3.2.2 aarch64 (arm)
Linux 3.2.2 x86_64
Linux 3.2.2 aarch64 (arm)
Windows 3.2.2 x86_64
Windows 3.2.2 x86
Windows 3.2.2 aarch64 (via x86 emulation)

Details of changes made to pact-ruby-standalone

Details of changes made to pact-python

These have been consumed in the pact-python project, and tested cross platform

In order to test ARM64 on MacOS, and Linux, I have utilised cirrus-ci, which is free for open-source usage (within reasonable limits)

OS Standalone Version Architecture Tested
OSX v2.0.0 x86_64 GitHub Actions
OSX v2.0.0 aarch64 (arm) Cirrus CI
Linux v2.0.0 x86_64 GitHub Actions
Linux v2.0.0 aarch64 (arm) Cirrus-CI
Windows v2.0.0 x86_64 GitHub Actions
Windows v2.0.0 x86 Untested
Windows v2.0.0 aarch64 (via x86 emulation) Untested

gh

cirrus

linux_arm64_task:
env:
matrix:
# - IMAGE: python:3.6-slim # This works locally, with cirrus run, but fails in CI
Copy link
Member Author

Choose a reason for hiding this comment

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

# https://github.com/pyenv/pyenv/wiki#suggested-build-environment
# - xcode-select --install # Unnecessary on Cirrus
- brew update
# - brew install openssl readline sqlite3 xz zlib
Copy link
Member Author

Choose a reason for hiding this comment

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

preinstalled in cirrus's base image

- pyenv global ${PYTHON}
- pyenv rehash
## To install rosetta
# - softwareupdate --install-rosetta --agree-to-license
Copy link
Member Author

@YOU54F YOU54F Apr 21, 2023

Choose a reason for hiding this comment

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

rosetta isn't installed by default, so this is using arm64 binaries, and would fail if using x86_64 binaries without rosetta

@@ -19,7 +19,7 @@ jobs:
- '3.9'
- '3.10'
- '3.11'
os: [ ubuntu-latest ]
os: [ ubuntu-latest, windows-latest, macos-latest ]
Copy link
Member Author

Choose a reason for hiding this comment

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

adds additional os's but skips the examples steps, as they require a broker and spin one up with docker-compose.

docker isn't available in GH runners for macOS or Windows, hence skipped on line 53 unless Linux

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
Copy link
Member Author

Choose a reason for hiding this comment

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

matches .github/workflows/build_and_test.yml

@@ -29,7 +29,7 @@ jobs:

steps:
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@v3
Copy link
Member Author

Choose a reason for hiding this comment

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

fix deprecation warnings in build

@YOU54F YOU54F marked this pull request as ready for review April 29, 2023 00:54
@sergeyklay sergeyklay self-requested a review May 3, 2023 16:52
Copy link
Member

@sergeyklay sergeyklay left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@sergeyklay sergeyklay merged commit 4e3ca38 into pact-foundation:master May 3, 2023
27 checks passed
@sergeyklay
Copy link
Member

Thank you for the patch, and for helping make pact-python better!

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 this pull request may close these issues.

None yet

2 participants