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

Cirrus CI #2181

Merged
merged 1 commit into from
Mar 13, 2018
Merged

Cirrus CI #2181

merged 1 commit into from
Mar 13, 2018

Conversation

fkorotkov
Copy link
Contributor

As opposite to #2178, this change configures Cirrus CI to run Puppeteer in both Windows and Linux containers.

Here is a link to a corresponding Cirrus CI build:

image

As you can see there are 4 auto-generate Docker Builder tasks to build custom Linux and Windows Docker containers. And 4 tasks to actually run tests in the cached containers. If interested read more about Cirrus CI's container builds in this blog post.

Configure Cirrus CI to run Puppeteer in both Windows and Linux containers
@aslushnikov
Copy link
Contributor

@fkorotkov interesting! Are there any re-tries on Cirrus CI? I wonder how come our builds always flake on travis/appveyor and are green on Cirrus.

@fkorotkov
Copy link
Contributor Author

@aslushnikov there are no re-tries on Cirrus CI. I've seen some tests failing with timeouts during testing. Maybe just once of twice.

The only possible explanation I can come up with is that the environment that tests are executed is more performant. Travis executes builds on AWS VMs that run not the latest Docker. AppVeyour uses not the latest Windows VMs on Azure.

Cirrus on the other hand uses Google Cloud and specifically Kubernetes Engine to run Linux-based container builds. Kubernetes nodes that run containers are using the latest Docker and by the way Chromium OS 😅 For Windows containers, at the moment, Cirrus CI uses Compute Engine to run the latest Windows Server optimized for Docker container. We are planning to move Windows container to GKE once GKE supports Windows.

So since Cirrus CI builds are executed on Google Cloud Platform, maybe you can tell me why tests are more stable? 🤣

@@ -0,0 +1,9 @@
FROM node:7.10.1

RUN apt-get update && \
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice! This means we now have a docker image that's a part of CI that is guaranteed to work with pptr.
This will be very helpful for everybody who runs puppeteer in a docker

cc @ebidel

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If you are interested we can add Container Builder later on to publish such official images to Docker Hub the same way we do it for Flutter.

Copy link
Contributor

Choose a reason for hiding this comment

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

@fkorotkov this would be great. Let's give cirrus some time and see how it goes. If it proves to be reliable, we'll be happy to publish puppeteer-compatible docker images.

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.

None yet

2 participants