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

🏗 Use Docker containers in CircleCI builds, and other optimizations #35176

Merged
merged 8 commits into from
Jul 15, 2021

Conversation

danielrozenberg
Copy link
Member

@danielrozenberg danielrozenberg commented Jul 9, 2021

This PR makes several optimizations to CircleCI builds that shave a "large PR" (i.e., one with the RUNTIME build target) from ~20 to ~16 minutes. Together with upcoming optimizations to Bundle Size, Unit Tests, and End-to-End Tests we estimate this can go down to ~12 minutes eventually

This PR:

  • Replaces VM executors with Docker containers, which spin up immediately (resolving the common complaint of "my PR is stuck on spinning up the environment for the past 20 minutes)
  • Reuses CircleCI's built-in npm dependencies management steps, which are more efficient than simply calling npm ci
  • Removes a dangling TODO from .sh files
  • Splits Validator Tests to its own executor using a JRE-enabled Docker container (the Node container does not contain the JRE)
  • Organizes steps in the .circleci/config.yml file
  • Removes the 10 seconds delay for version checks in the amp command when running in a CI environment
  • Disabled 13 e2e tests that became (even more) flaky (See Fix e2e tests that became flaky on CircleCI with the move to Docker containers #35241)

@danielrozenberg danielrozenberg force-pushed the circleci-node-orb branch 30 times, most recently from 8c862ad to d7513ea Compare July 12, 2021 15:43
.circleci/config.yml Outdated Show resolved Hide resolved
@rsimha
Copy link
Contributor

rsimha commented Jul 14, 2021

Looping in @kristoferbaxter who requested that this be discussed during design review before we actually check in the change.

@danielrozenberg Would it be possible to write up an I2I for the move to docker containers and run it by wg-approvers to make sure there are no new considerations to think of? And if this meets the bar for a design review, can we use an upcoming time slot?

@danielrozenberg
Copy link
Member Author

@danielrozenberg Would it be possible to write up an I2I for the move to docker containers and run it by wg-approvers to make sure there are no new considerations to think of? And if this meets the bar for a design review, can we use an upcoming time slot?

An I2I is a bit of an overkill - switching how we run our CI tasks is an implementation detail, there's no feature changes here. The discussion on flakes is here above and I think that's the only thing that seriously needs discussing :)

@danielrozenberg danielrozenberg force-pushed the circleci-node-orb branch 2 times, most recently from 68e6042 to 1f995d3 Compare July 15, 2021 19:28
Copy link
Member

@alanorozco alanorozco left a comment

Choose a reason for hiding this comment

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

Approved skipping tests.

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

Successfully merging this pull request may close these issues.

None yet

5 participants