-
Notifications
You must be signed in to change notification settings - Fork 34
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
CI: run unit tests on multiple Nodejs versions #220
Conversation
Signed-off-by: Levko Kravets <levko.ne@gmail.com>
Signed-off-by: Levko Kravets <levko.ne@gmail.com>
d4bcd7e
to
a0181ad
Compare
a0181ad
to
27898ec
Compare
27898ec
to
d09e99f
Compare
d09e99f
to
4b87498
Compare
4b87498
to
54baaf4
Compare
54baaf4
to
5ceecdb
Compare
5ceecdb
to
0624c06
Compare
Signed-off-by: Levko Kravets <levko.ne@gmail.com>
0624c06
to
1862ea6
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #220 +/- ##
=======================================
Coverage 90.41% 90.41%
=======================================
Files 61 61
Lines 1408 1408
Branches 232 232
=======================================
Hits 1273 1273
Misses 84 84
Partials 51 51 ☔ View full report in Codecov by Sentry. |
@@ -32,30 +32,39 @@ jobs: | |||
|
|||
unit-test: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend separating the unit-tests/linting from the E2E tests. Since the unit tests do not depend on secrets, you can have a one-click approval to run them on public PRs if you separate them into their own Github Action file. That way you can see if a public PR at least passes unit tests before going through the process of making a branch in the local fork in order to run the E2E tests. Another reason to separate them out is that, because they are much cheaper to run, you can have different trigger conditions/exclusions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently unit and e2e tests are running as a separate jobs, but in single workflow. It should stay this way in order to properly collect coverage data (each job emits own coverage report; separate job waits for test jobs, then retrieves all coverage files and sends them to codecov)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+ unit tests indirectly depend on secrets (coverage job needs a Codecov token stored as secret)
@@ -67,6 +76,7 @@ jobs: | |||
E2E_ACCESS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} | |||
E2E_TABLE_SUFFIX: ${{github.sha}} | |||
cache-name: cache-node-modules | |||
NYC_REPORT_DIR: coverage_e2e |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my knowledge, where / how do these get used? It might be a pattern I want to pull into dbt-databricks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I use this env here to have unique filenames for coverage reports from different jobs (e.g. coverage_e2e
, coverage_unit_node16
, etc.), and because that names are used in many places across the workflow file. Those files are later collected by another job which then sends them to Codecov. We cannot send them one by one, because in this case Codecov won't merge those coverage reports and just use the last submitted one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider splitting out E2E from the cheaper actions that do not rely on secrets. Otherwise, LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stamp
Configure CI to run unit tests on different Nodejs versions.
E2e are a somewhat time and resource consuming, so for now they will be executed only once.
It should help with preventing compatibility issues in future (see #219)