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 custom containers with dependencies preinstalled #225

Merged
merged 20 commits into from
Apr 5, 2019

Conversation

nbraud
Copy link
Contributor

@nbraud nbraud commented Apr 2, 2019

Brings the CI times down to ~2s on Linux (from ~2m for envs with no pygame wheels), and to ~10s on Windows (from ~30s with pygame wheels).

  • Build & use containers for tests under Linux and Windows.
  • Build & use containers for the docs and lint tasks.
  • Add a CI task to check the generated dockerfiles are up-to-date.
    I'd prefer not to commit generated files at all, but that was the simplest way to get going (Cirrus can just pull a Dockerfile from the repo)
  • Give friendly names to the tasks using custom containers.

@nbraud nbraud requested a review from a team as a code owner April 2, 2019 21:35
nbraud added 16 commits April 3, 2019 13:00
We can install all test dependencies (incl. pygame's build dependencies where
necessary) in a container image, and cache those across builds.

See https://medium.com/cirruslabs/introducing-container-builder-for-cirrus-ci-80b9234f007
This is nicer than detecting it at runtime, and can work with Windows
Also, get rid of the separate template.Dockerfile file
For some reason, Docker commands run in Powershell, and Powershell doesn't
implement `&&`...
This is preparation for making docs and linting images.
@nbraud nbraud force-pushed the qa/cirrus-ci-containers branch from 3cae21a to b3d023a Compare April 3, 2019 11:05
@nbraud
Copy link
Contributor Author

nbraud commented Apr 3, 2019

Rebased again to have bors.toml (necessary because 009fe2c adds a new, required check)

Copy link
Collaborator

@pathunstrom pathunstrom left a comment

Choose a reason for hiding this comment

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

So, faster CI, responsive CI company, and way more tests in way less time.

I'm all for this.

@nbraud
Copy link
Contributor Author

nbraud commented Apr 5, 2019

bors r+ r=pathunstrom

bors bot added a commit that referenced this pull request Apr 5, 2019
225: CI: Build custom containers with dependencies preinstalled r=nbraud a=nbraud

Brings the CI times down to ~2s on Linux (from ~2m for envs with no `pygame` wheels), and to ~10s on Windows (from ~30s with `pygame` wheels).

- [x] Build & use containers for tests under Linux and Windows.
- [x] Build & use containers for the `docs` ~and `lint`~ tasks.
- [x] Add a CI task to check the generated dockerfiles are up-to-date.
  I'd prefer not to commit generated files at all, but that was the simplest way to get going (Cirrus can just pull a Dockerfile from the repo)
- [x] Give friendly names to the tasks using custom containers.

Co-authored-by: Nicolas Braud-Santoni <nicolas@braud-santoni.eu>
@nbraud
Copy link
Contributor Author

nbraud commented Apr 5, 2019

bors r-

@bors
Copy link
Contributor

bors bot commented Apr 5, 2019

Canceled

@nbraud
Copy link
Contributor Author

nbraud commented Apr 5, 2019

bors r=pathunstrom

bors bot added a commit that referenced this pull request Apr 5, 2019
225: CI: Build custom containers with dependencies preinstalled r=pathunstrom a=nbraud

Brings the CI times down to ~2s on Linux (from ~2m for envs with no `pygame` wheels), and to ~10s on Windows (from ~30s with `pygame` wheels).

- [x] Build & use containers for tests under Linux and Windows.
- [x] Build & use containers for the `docs` ~and `lint`~ tasks.
- [x] Add a CI task to check the generated dockerfiles are up-to-date.
  I'd prefer not to commit generated files at all, but that was the simplest way to get going (Cirrus can just pull a Dockerfile from the repo)
- [x] Give friendly names to the tasks using custom containers.

Co-authored-by: Nicolas Braud-Santoni <nicolas@braud-santoni.eu>
@bors
Copy link
Contributor

bors bot commented Apr 5, 2019

Build succeeded

  • dockerfiles
  • docs
  • Linux Dockerfile:.ci/dockerfiles/python_3.6-slim
  • Linux Dockerfile:.ci/dockerfiles/python_3.7-slim
  • macOS PYTHON:3.6.8
  • macOS PYTHON:3.7.2
  • Windows Dockerfile:.ci/dockerfiles/python_3.6-windowsservercore-1809
  • Windows Dockerfile:.ci/dockerfiles/python_3.7-windowsservercore-1809

@bors bors bot merged commit 1fb244e into ppb:master Apr 5, 2019
@nbraud nbraud deleted the qa/cirrus-ci-containers branch April 6, 2019 14:38
AstraLuma added a commit to AstraLuma/pursuedpybear that referenced this pull request May 4, 2019
This reverts commit 8598c08, reversing
changes made to edd7499.
bors bot added a commit that referenced this pull request May 5, 2019
247: Revert "Merge #225" r=pathunstrom a=astronouth7303

This rolls back the use of CI dockerfiles, so that cirrus brokenness no longer blocks other PRs.

This is not a rejection of #240.

Co-authored-by: Jamie Bliss <jamie@ivyleav.es>
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