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

Setup Cirrus CI #216

Merged
merged 6 commits into from
Apr 2, 2019
Merged

Setup Cirrus CI #216

merged 6 commits into from
Apr 2, 2019

Conversation

nbraud
Copy link
Contributor

@nbraud nbraud commented Mar 27, 2019

  • pytest on the same platforms as ppb-vector
  • Added a docs/requirements.txt file
  • Build docs in a separate task.
  • Install pygame's build dependencies
  • Only install build dependencies if no binary wheel is available.

@nbraud nbraud force-pushed the qa/cirrus-ci branch 3 times, most recently from 3978005 to 55ca284 Compare March 28, 2019 17:46
@nbraud
Copy link
Contributor Author

nbraud commented Mar 28, 2019

@pathunstrom I forgot to leave a comment yesterday, but this should be good-to-go; the Windows failure is the timing issue that already exists on master (though I'd totally understand waiting for that to be fixed so you can check Cirrus goes green)

@nbraud nbraud mentioned this pull request Mar 28, 2019
@nbraud
Copy link
Contributor Author

nbraud commented Mar 30, 2019

@astronouth7303 I just noticed there already was a requirements-docs.txt, so I just removed docs/requirements.txt.

Do you think it would be reasonable to rename that file though? I didn't expect requirements-*.txt (and instead *-requirements.txt or */requirements.txt), hence why I didn't notice it, and I have the impression the latter is more common than the former (test-requirements, dev-requirements, ...)

@nbraud
Copy link
Contributor Author

nbraud commented Mar 30, 2019

I'm experimenting with caching dependencies in custom container images in nbraud#1

@nbraud
Copy link
Contributor Author

nbraud commented Mar 30, 2019

Update: I got the test time (for Linux tasks) down to ~2s in nbraud#1, from resp. ~10s (if there's a pygame wheel) and 2 minutes (when there is no wheel).

I'm going to try and see if I can easily make the same thing for Windows containers.
Would you prefer that work in this PR directly, or in a follow-up PR? (I'd prefer the latter, but it's no strong preference)

@pathunstrom
Copy link
Collaborator

We can definitely do that as a follow on pr.

And @astronouth7303 there's that windows failure again.

@pathunstrom
Copy link
Collaborator

@nbraud You comfortable with this? It seems to be functioning and I'd like to get it in since it'll make our lives better on the rest of the work getting done.

@nbraud
Copy link
Contributor Author

nbraud commented Apr 1, 2019

PS: I forgot to mention yesterday, but I believe nbraud#1 is ready. I did generalise the Dockerfiles to Windows containers, and got the test time there down to ~5s. I didn't yet address the issues we discussed on Discord about automatically picking up new versions of dependencies from PyPI, and I think that would involve using entirely different tooling, so that's basically it for “v1” of dependency caching.

macOS doesn't support anything like containers, so the same approach won't work there (though @astronouth7303 mentioned that it might be possible to persist the pip cache and perhaps even a whole virtualenv)

@pathunstrom
Copy link
Collaborator

Is nbraud#1 supposed to be against your fork?

@nbraud
Copy link
Contributor Author

nbraud commented Apr 1, 2019

Yeah, I didn't want to add all of it to this PR right away, but I still wanted to have Cirrus run it; I'll open a new PR from that branch once this lands, I guess.

- Run pytest under CPython 3.6 and 3.7 on
  - [x] FreeBSD
  - [x] Linux
  - [x] macOS
  - [x] Windows

- [x] Run pytest under CPython 3.8-rc on Linux and Windows
- [x] Run pytest under PyPy 3.6 on Linux
This is necessary, as not all Linux platforms have binary wheels available
(in particular, CPython 3.8-rc and PyPy 3.6)
Except Linux w/ CPython 3.8-rc and PyPy 3.6

Getting pygame to build anywhere else is too much of a pain
Dirty hack: hardcode that wheels are available except for PyPy and rc versions
of CPython.

I tried looking up that info from PyPI's API, but finding which OS a given wheel
is built for would require parsing the filename...
@nbraud nbraud requested a review from a team as a code owner April 2, 2019 20:58
@pathunstrom pathunstrom merged commit 397abd5 into ppb:master Apr 2, 2019
bors bot added a commit that referenced this pull request Apr 2, 2019
217: Setup Bors r=pathunstrom a=nbraud

Implicitly depends on #216 (Bors is configured to check Cirrus CI's status)

Co-authored-by: Nicolas Braud-Santoni <nicolas@braud-santoni.eu>
nbraud added a commit to nbraud/pursuedpybear that referenced this pull request Apr 3, 2019
Obsoleted by Cirrus CI in ppb#216
@nbraud nbraud deleted the qa/cirrus-ci branch April 3, 2019 15:26
bors bot added a commit that referenced this pull request Apr 22, 2019
227: Remove Appveyor and Travis CI r=astronouth7303 a=nbraud

Obsoleted by Cirrus CI in #216.
To be merged once Cirrus has been in use long enough.

Co-authored-by: Nicolas Braud-Santoni <nicolas@braud-santoni.eu>
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.

2 participants