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

Move to CircleCI for Builds and Tests #631

Merged
merged 21 commits into from
May 14, 2020
Merged

Move to CircleCI for Builds and Tests #631

merged 21 commits into from
May 14, 2020

Conversation

woody-apple
Copy link
Contributor

@woody-apple woody-apple commented May 9, 2020

Problem

Builds have been pretty slow, and get stuck frequently. I have been spending time auditing the various platforms out there, that will allow us to have both per PR and expedient reporting.

CircleCI looks to be a good version of this for us given these things:
• Performance
• Actively developed
• Support has been helpful, and working with me
• Simple configuration, but pretty flexible

Summary of Changes

Move to CircleCI, remove TravisCI config. Builds are speedy! Down rom 25+ minutes to 6-7 mins for a full matrix so far. I suspect I can get these down to 2-3 minutes once we reduce the cost of bootstrap, and redundant tests in makedist, and test-everything.

fixes #401

@woody-apple
Copy link
Contributor Author

woody-apple commented May 9, 2020

@woody-apple
Copy link
Contributor Author

Sigh, ironically (?) restyled broke the build. Let me dig in.

@woody-apple
Copy link
Contributor Author

Note: Need to improve bash-fu, as restyled is breaking the build script.

@woody-apple woody-apple requested a review from pan-apple May 9, 2020 02:24
@woody-apple
Copy link
Contributor Author

@woody-apple woody-apple mentioned this pull request May 9, 2020
@woody-apple
Copy link
Contributor Author

Deployment check repeats work that's already done in CI, tests, as well as bootstrap + build.

https://app.circleci.com/pipelines/github/woody-apple/connectedhomeip/159/workflows/4e720f20-aa33-48ca-baa9-84005e6664f5/jobs/854

@woody-apple
Copy link
Contributor Author

"all tests" take 1 minute +, when localized ones don't. This appears to be repeating NL tests, which we shouldn't in each of our PRs (amongst other things).

https://app.circleci.com/pipelines/github/woody-apple/connectedhomeip/159/workflows/4e720f20-aa33-48ca-baa9-84005e6664f5/jobs/851

Copy link
Contributor

@gerickson gerickson left a comment

Choose a reason for hiding this comment

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

Minor nit: otherwise, nice work!

.circleci/Makefile Outdated Show resolved Hide resolved
@@ -0,0 +1,7 @@
#!/bin/bash

if [[ $1 == *"$2"* ]]; then
Copy link
Contributor

Choose a reason for hiding this comment

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

what are the asterisks here doing?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

They're looking for substrings, it's a way of checking if a build is in a list of things. Maybe not the nicest :)

@@ -31,6 +31,9 @@ third_party/mbedtls/
# Example specific rules
examples/**/sdkconfig

# Temporary Directories
.tmp/
Copy link
Contributor

Choose a reason for hiding this comment

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

could we use build/ for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is an artifact of the circle-ci merge thing. I'd rather keep that contained personally (so I can easily keep it up to date!)

./config
make

rm -rf ../OpenSSL_1_1_1f.zip
Copy link
Contributor

Choose a reason for hiding this comment

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

you could do this after the unzip above?

mkdir -p build/downloads
cd build/downloads
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1f.zip
mkdir openssl
Copy link
Contributor

Choose a reason for hiding this comment

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

what's the rationale for the extra level of directories?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Trying to figure out a way to have different version of scripts based on platform, not firm on it yet, open to suggestions

Copy link
Contributor

Choose a reason for hiding this comment

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

I meant the extra "openssl" directory...

@woody-apple
Copy link
Contributor Author

Note Awaiting cost confirmation + enabling CircleCI on the repo before merging.

@woody-apple
Copy link
Contributor Author

@Restyled That's weird, I just merged in master...

@woody-apple
Copy link
Contributor Author

I see, master isn't compliant for spaces... (which I fixed)

@woody-apple
Copy link
Contributor Author

Approved, merging and testing now.

@woody-apple woody-apple merged commit a923ce7 into project-chip:master May 14, 2020
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.

Split build docker images apart to speed up builds
8 participants