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

Refactor CI for PyPI #527

Closed
wants to merge 12 commits into from
Closed

Refactor CI for PyPI #527

wants to merge 12 commits into from

Conversation

ravnoor
Copy link
Contributor

@ravnoor ravnoor commented Jan 24, 2024

Wheels are built and pushed to PyPI successfully for all OSs and architectures: 1, 2. As before, we're utilizing 2 build systems: Cirrus CI (macos_arm64 and linux_aarch64) and GHA (macos_x86_64, linux_x86_64, and win_amd64). While GHA supports building natively on Apple Silicon via macos-latest-xlarge runner, this feature is limited to Teams/Enterprise accounts AFAIK. Besides, Cirrus CI provides substantially lower free credits relative to GHA, so there will be instances where the CI/CD for arm64 will fail to execute due to insufficient credits. Therefore, as a stopgap, I've also provisioned a self-hosted macOS VM based on Cirrus's Tart virtualization that can run on Apple Silicon via wheels-macosx_arm64.yml. For this last bit to work, a self-hosted runner needs to be initialized via GitHub while I donate CPU time on my M1 MacBook Air as and if the need arises.

Pushing to PyPI is confirmed working using multiple build systems, so if the secrets.PYPI_API_TOKEN repository secret is configured it should be seamless. For Cirrus CI, once access to ANTsX/ANTsPy has been granted at https://cirrus-ci.com/, the runner should automatically read the config from .cirrus.yml.

In terms of PyPI storage, I believe we're at the max 10GB for the project, so upgrade requests should be in order to support another version or two.

On a related note, if there's interest, I can test pushing the multi-arch image (amd64/ arm64) directly to Docker Hub - build works already through Cirrus CI. The current workflow (ci-docker.yml) only supports amd64. An access token or access delegation would be needed to accomplish that.

Cheers!

@ravnoor ravnoor marked this pull request as ready for review January 27, 2024 04:12
@ravnoor ravnoor changed the title Refactor CI for PyPi Refactor CI for PyPI Jan 28, 2024
@ravnoor ravnoor closed this Aug 21, 2024
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.

1 participant