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

Add support for GitHub Actions #194

Merged
merged 1 commit into from
Mar 12, 2020
Merged

Conversation

mayeut
Copy link
Member

@mayeut mayeut commented Nov 5, 2019

Draft:

  • basic support (linux, macOS, windows 3.6, 3.7, 3.8)
  • python 2.7 on windows
  • python 3.5 on windows
  • documentation update

Closes #159

Here's a summary of python versions / CI providers used to test cibuildwheel after this PR:

2.7 3.5 3.6 3.7 3.8
windows AppVeyor TravisCI GitHub Azure
linux TravisCI + CircleCI TravisCI CircleCI TravisCI + GitHub Azure
macOS CircleCI TravisCI CircleCI + GitHub Azure

@mayeut mayeut force-pushed the github-workflows branch 2 times, most recently from ed22fc7 to a42d97e Compare November 6, 2019 06:48
@YannickJadoul
Copy link
Member

Woohoo, great, @mayeut!

@mayeut
Copy link
Member Author

mayeut commented Nov 9, 2019

Python 3.5 on Windows works after patching distutils. I'm trying to identify if there was a regression in setuptools to signal that at setuptools rather than patching distutils.

@mayeut
Copy link
Member Author

mayeut commented Nov 9, 2019

macOS 10.14 support dropped in GitHub actions, only 10.15 is supported. This will require to build x86_64 only wheels. Waiting for #156 / #202 to land to see how to manage that.

.github/workflows/test.yml Outdated Show resolved Hide resolved
azure-pipelines.yml Outdated Show resolved Hide resolved
Copy link
Contributor

@joerick joerick left a comment

Choose a reason for hiding this comment

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

Keen to get this in! Just docs to go? I'm happy to help out if you like, it should just be a sample config and a few updates here and there?

cibuildwheel/windows.py Outdated Show resolved Hide resolved
@mayeut
Copy link
Member Author

mayeut commented Nov 20, 2019

Just docs to go?

Still blocking are also #156, #202 and #220 since GH is using macOS 10.15

@mayeut mayeut force-pushed the github-workflows branch 2 times, most recently from e44ce72 to 5fb2a5b Compare November 21, 2019 21:51
@Czaki Czaki mentioned this pull request Nov 23, 2019
@remorses
Copy link

Really appreciate your work guys, waiting for this pull request to finally be able to create wheels for my projects on github

@filips123
Copy link
Contributor

@mayeut Is there any update? What needs to be done to properly support GitHub Actions?

@joerick
Copy link
Contributor

joerick commented Mar 8, 2020

I meant to say @mayeut, I can see this is a popular feature, I'm happy to take over this PR and write some docs if you don't have time at the moment?

@mayeut
Copy link
Member Author

mayeut commented Mar 8, 2020

It was missing a patch in setuptools which has been released yesterday.
I updated the docs but the minimal example is still lacking an archive artifacts section.
@joerick, feel free to push on this branch to update the docs if needed.

@mayeut mayeut marked this pull request as ready for review March 8, 2020 13:50
@YannickJadoul
Copy link
Member

A quick reminder to check the table in CI.md and add the new CI configuration there. The file was since the start of this PR, and quite a few updates to our own CI have been done.

@joerick
Copy link
Contributor

joerick commented Mar 8, 2020

Fantastic, thanks @mayeut! I'll take a good look soon.

Copy link
Contributor

@joerick joerick left a comment

Choose a reason for hiding this comment

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

Couple notes; comments inline.

Only other thing I wonder is- should this be the first CI service listed in setup.md, rather than the last? What's your impression of Github Actions, generally? I ask because Azure currently has that spot (because it was the first multi-platform service and has great build times) but I wonder if this might be simpler and have a better DX. Any thoughts @mayeut ?

.github/workflows/test.yml Show resolved Hide resolved
examples/github-minimal.yml Show resolved Hide resolved
matrix:
os: [ubuntu-18.04, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v1
Copy link
Contributor

Choose a reason for hiding this comment

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

actions/checkout@v2 seems to be the current version, maybe go with that?

Copy link
Contributor

Choose a reason for hiding this comment

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

Note that version 2 doesn’t support submodules. Just an aside.

Copy link
Contributor

Choose a reason for hiding this comment

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

OK, forget my comment then, v1 works :)

matrix:
os: [ubuntu-18.04, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v1
Copy link
Contributor

Choose a reason for hiding this comment

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

same as above, maybe use v2?

@jlaine
Copy link
Contributor

jlaine commented Mar 10, 2020

One thing which might be worth testing with the provided example is the behaviour if cibuildwheel fails. I have had very confusing experiences with Github Actions on Windows: the default shell is powershell, and it seems exit with a success code despite one or more commands in a multi-line failing. I ended switching over to bash for all platforms to get proper failures on error.

@mayeut
Copy link
Member Author

mayeut commented Mar 10, 2020

Only other thing I wonder is- should this be the first CI service listed in setup.md, rather than the last? What's your impression of Github Actions, generally? I ask because Azure currently has that spot (because it was the first multi-platform service and has great build times) but I wonder if this might be simpler and have a better DX. Any thoughts @mayeut ?

Not sure it helps you decide the order but just my 2 cents on this:
I was wondering the same thing, let's see how it compares to Azure (mostly build times).
TravisCI now has more platform support but if you're not interested in s390x, aarch64, ppc64le, then I guess Azure/GitHub are faster (probably true especially on macOS where the waiting queue can grow quite fast, also Windows is still BETA at Travis).
I would not recommend AppVeyor today, even though it's now multipatform, because of build times with one "parallel" job.

@henryiii
Copy link
Contributor

A couple more cents: One nice feature of GHA is no special setup/permissions. Azure seems to always be a bit of a headache to get more than one collaborator on because it has a separate repo and permissions model. The performance is generally very similar (since they are pretty much the same platform in the backend). Azure is more powerful (manual build triggers, release pipelines).

@joerick
Copy link
Contributor

joerick commented Mar 10, 2020

Thanks both. I'm leaning towards putting it at the top for the reasons you describe.

This PR looks ready to me! Any more comments before we merge?

@YannickJadoul
Copy link
Member

Minor detail, but we could eliminate CircleCI running on Python 3.7 on macOS, since it's already running on Python 3.6 anyway.

@joerick joerick merged commit 840da16 into pypa:master Mar 12, 2020
@joerick
Copy link
Contributor

joerick commented Mar 12, 2020

Thanks all! I'll try to get a release out with this very soon!

@joerick
Copy link
Contributor

joerick commented Mar 12, 2020

Released as 1.3.0!

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.

Support for GitHub actions