Skip to content

Run many CI jobs in parallel #901

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

Merged
merged 3 commits into from
Aug 11, 2017

Conversation

fitzgen
Copy link
Member

@fitzgen fitzgen commented Aug 10, 2017

Our CI is performing multiple different jobs:

  • For every libclang version we support:
    • With both debug and release profiles:
      • Generating bindings from our test headers, with and without extra assertions, and asserting there is no diff from the expectations.
      • Compiling and testing the generated bindings.
      • Compiling and testing the bindgen-integration crate.
  • Testing the md book.
  • Asserting that there aren't any system includes in any of the test headers.
  • Asserting that all the pub functions have doc comments.

We were previously doing these things sequentially for each libclang version. This commit breaks these jobs up explicitly and runs each of them one at a time so that they can each be run in parallel, on different Travis CI machines.

r? @emilio

No one intends to make this work. We should focus on new versions of libclang
going forward.
Our test runner is smart enough to figure out which test expectations to use
now.
Our CI is performing multiple different jobs:

* For every libclang version we support:
  * With both debug and release profiles:
    * Generating bindings from our test headers, with and without extra
      assertions, and asserting there is no diff from the expectations.
    * Compiling and testing the generated bindings.
    * Compiling and testing the bindgen-integration crate.
* Testing the md book.
* Asserting that there aren't any system includes in any of the test headers.
* Asserting that all the pub functions have doc comments.

We were previously doing these things sequentially for each libclang
version. This commit breaks these jobs up explicitly and runs each of them one
at a time so that they can each be run in parallel, on different Travis CI
machines.
@fitzgen
Copy link
Member Author

fitzgen commented Aug 10, 2017

This brought our wall clock CI time down from about 1h45m to about 45m 🎉 🎉

Copy link
Contributor

@emilio emilio left a comment

Choose a reason for hiding this comment

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

super, thanks! r=me

@emilio
Copy link
Contributor

emilio commented Aug 11, 2017

@bors-servo r+

@bors-servo
Copy link

📌 Commit 59b8535 has been approved by emilio

@bors-servo
Copy link

⌛ Testing commit 59b8535 with merge fdee9f1...

bors-servo pushed a commit that referenced this pull request Aug 11, 2017
Run many CI jobs in parallel

Our CI is performing multiple different jobs:

* For every libclang version we support:
  * With both debug and release profiles:
    * Generating bindings from our test headers, with and without extra assertions, and asserting there is no diff from the expectations.
    * Compiling and testing the generated bindings.
    * Compiling and testing the bindgen-integration crate.
* Testing the md book.
* Asserting that there aren't any system includes in any of the test headers.
* Asserting that all the pub functions have doc comments.

We were previously doing these things sequentially for each libclang version. This commit breaks these jobs up explicitly and runs each of them one at a time so that they can each be run in parallel, on different Travis CI machines.

r? @emilio
@bors-servo
Copy link

☀️ Test successful - status-travis
Approved by: emilio
Pushing fdee9f1 to master...

@bors-servo bors-servo merged commit 59b8535 into rust-lang:master Aug 11, 2017
@fitzgen fitzgen deleted the split-up-ci-into-many-jobs branch August 11, 2017 20:04
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.

3 participants