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

CI Build for wheels #61

Open
2 of 4 tasks
etatara opened this issue Mar 12, 2024 · 2 comments
Open
2 of 4 tasks

CI Build for wheels #61

etatara opened this issue Mar 12, 2024 · 2 comments
Assignees
Labels

Comments

@etatara
Copy link
Member

etatara commented Mar 12, 2024

Setup a CI build for the repast4py wheels for Windows and macOS, using Github Actions.

The mpi4py project has a great example build workflow: https://github.com/mpi4py/mpi4py/blob/master/.github/workflows/ci-build.yml

The basic process is to define the various OS versions, setup the environment with MPI, an then run the setup.py to build the wheels. Fortunately mpi4py provides a setup-mpi action https://github.com/mpi4py/setup-mpi that will install the specified MPIs into each OS build environment.

cibuildwheel is a python package that will build wheels for all CPython versions specified in the project.toml. See:

https://github.com/pypa/cibuildwheel?tab=readme-ov-file
https://cibuildwheel.pypa.io/en/1.x/

We can combine the environment setup approach from mpi4py and the cibuildwheel builder to build wheels for all needed OS and CPython versions.

Tasks:

  • Build Windows x86 and AMD64 wheels
  • Build macOS ARM64 wheels
  • Build macOS x86 wheels
  • Run the tests with cibuildwheel or tox
@etatara etatara self-assigned this Mar 12, 2024
@etatara
Copy link
Member Author

etatara commented Mar 13, 2024

Created a workflow using cibuildwheel https://github.com/Repast/repast4py/blob/windows_build/.github/workflows/wheels.yml that is currently building win-32 and win-64 and macos arm64 as of dfde0e4

@etatara
Copy link
Member Author

etatara commented Mar 13, 2024

The current wheels.yml lists specific OS versions, but we could probably just use windows-latest and macos-latest. Need to check if wheels uploaded to pypi are OS version specific, or if this build feature is just used to check compatibility across systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant