ci: Add CircleCI config#2346
Conversation
|
f7d6bc4 to
62bb14d
Compare
Codecov Report
@@ Coverage Diff @@
## develop #2346 +/- ##
========================================
Coverage 80.14% 80.14%
========================================
Files 77 77
Lines 2458 2458
Branches 450 450
========================================
Hits 1970 1970
Misses 488 488
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report at Codecov.
|
| key: v1-yarn-install-{{ checksum "yarn.lock" }} | ||
| paths: | ||
| - node_modules | ||
| - packages/common-ts/node_modules |
There was a problem hiding this comment.
It'll be nice if we could glob these. Unfortunately CircleCI doesn't support path globs
There was a problem hiding this comment.
Hmmm this might be a good opportunity to start a "what you need to keep in mind when you add a new package to the monorepo" doc. I've had lots of annoying CI issues whenever I add or delete packages from the monorepo because of stuff like this that needs to be manually updated.
5cae1f0 to
cf220e2
Compare
cf220e2 to
d128039
Compare
| key: v1-yarn-install-{{ checksum "yarn.lock" }} | ||
| paths: | ||
| - node_modules | ||
| - packages/common-ts/node_modules |
There was a problem hiding this comment.
Hmmm this might be a good opportunity to start a "what you need to keep in mind when you add a new package to the monorepo" doc. I've had lots of annoying CI issues whenever I add or delete packages from the monorepo because of stuff like this that needs to be manually updated.
Inphi
left a comment
There was a problem hiding this comment.
LGTM! Good comment summarizing CircleCI.
d128039 to
bc633ee
Compare
b8e003d to
c53ce1d
Compare
| @@ -1,3 +1,7 @@ | |||
| module.exports = { | |||
| extends: '../../.eslintrc.js', | |||
| ignorePatterns: [ | |||
There was a problem hiding this comment.
Good way to fix this, looks like it just needs linting fixes
|
This looks good to me pending small linting fixes |
c53ce1d to
ae55465
Compare
ae55465 to
c570de4
Compare
c570de4 to
b1f45ce
Compare
b1f45ce to
8d5ebf2
Compare
smartcontracts
left a comment
There was a problem hiding this comment.
LGTM, nice work (as always)
Updates our static analysis/test tooling to use CircleCI rather than GitHub actions. Also includes changes to make all of our Go projects pass the linter.
This update is specific to the actions we use to run PR checks. It does not replace the GitHub actions that push releases. Once we've merged this PR and observed its behavior, I'll remove the old actions-based checks and update branch protection rules to require the CircleCI checks.
Why CircleCI?
CircleCI offers the following benefits over actions:
Overall, build time is reduced from 18m to ~12. There's also room for us to reduce build time even further.
How CircleCI Works
This PR introduces a single CircleCI workflow, called
main, that builds all projects in the monorepo, performs linting, runs unit tests, and runs integration tests. Whenever possible, it uses CircleCI's native test management functionality to parallelize test runs. Jobs are run in parallel, unless they depend on something else. The dependency graph looks like this:Jobs are parameterized whenever in order to support multiple sub-projects with one job config. All the Go projects except
l2geth, for example, usego-lint-testto run linting and testing.Circle is running against this pull request, so you can click on any of the jobs to view their details.