Uh oh!
There was an error while loading. Please reload this page.
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
a0181adComparea0181ad to
27898ecCompare27898ec to
d09e99fCompared09e99f to
4b87498Compare4b87498 to
54baaf4Compare54baaf4 to
5ceecdbCompare5ceecdb to
0624c06CompareSigned-off-by: Levko Kravets <levko.ne@gmail.com>
0624c06 to
1862ea6Comparecodecov-commenter
commented
Jan 23, 2024
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.
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.
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.
+ unit tests indirectly depend on secrets (coverage job needs a Codecov token stored as secret)
| 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.
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.
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
benc-db
left a comment
There was a problem hiding this comment.
Consider splitting out E2E from the cheaper actions that do not rely on secrets. Otherwise, LGTM
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)