node-pg-migrate icon indicating copy to clipboard operation
node-pg-migrate copied to clipboard

infra: add codecov

Open Shinigami92 opened this issue 11 months ago • 5 comments

Shinigami92 avatar Mar 06 '24 20:03 Shinigami92

@goce-cz there should be a request to add codecov in github for this project. I seem not to have the rights to add it myself

Shinigami92 avatar Mar 06 '24 21:03 Shinigami92

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 95.52% (🎯 90%)
🟰 ±0%
6663 / 6975
🟢 Statements 95.52% (🎯 90%)
🟰 ±0%
6663 / 6975
🟢 Functions 95.4% (🎯 90%)
🟰 ±0%
249 / 261
🟢 Branches 89.32% (🎯 85%)
🟰 ±0%
828 / 927
File Coverage
File Stmts % Branch % Funcs % Lines Uncovered Lines
Unchanged Files
src/db.ts 87.87% 88.46% 87.5% 87.87% 66-68, 97, 100-112, 152-154
src/index.ts 100% 100% 100% 100%
src/migration.ts 75.57% 78.04% 58.33% 75.57% 63, 66-68, 70-82, 111-116, 121-157, 214-215, 240-243, 251-252, 269-272, 301-302
src/migrationBuilder.ts 97.55% 92.3% 87.5% 97.55% 354-358, 495-500, 524-525
src/runner.ts 74.43% 58.18% 80% 74.43% 42, 69-70, 79-80, 84-91, 129-130, 169-172, 181-185, 198, 203-215, 234, 236-242, 245, 258, 270-283, 286-289, 299-300, 309-311, 320, 322-331, 343-350
src/sqlMigration.ts 91.83% 100% 80% 91.83% 46-49
src/types.ts 100% 100% 100% 100%
src/operations/sql.ts 100% 100% 100% 100%
src/operations/casts/createCast.ts 100% 100% 100% 100%
src/operations/casts/dropCast.ts 100% 100% 100% 100%
src/operations/casts/index.ts 100% 100% 100% 100%
src/operations/domains/alterDomain.ts 100% 100% 100% 100%
src/operations/domains/createDomain.ts 100% 100% 100% 100%
src/operations/domains/dropDomain.ts 100% 100% 100% 100%
src/operations/domains/index.ts 100% 100% 100% 100%
src/operations/domains/renameDomain.ts 100% 100% 100% 100%
src/operations/domains/shared.ts 100% 100% 100% 100%
src/operations/extensions/createExtension.ts 100% 100% 100% 100%
src/operations/extensions/dropExtension.ts 100% 100% 100% 100%
src/operations/extensions/index.ts 100% 100% 100% 100%
src/operations/extensions/shared.ts 100% 100% 100% 100%
src/operations/functions/createFunction.ts 100% 100% 100% 100%
src/operations/functions/dropFunction.ts 100% 100% 100% 100%
src/operations/functions/index.ts 100% 100% 100% 100%
src/operations/functions/renameFunction.ts 100% 100% 100% 100%
src/operations/functions/shared.ts 100% 100% 100% 100%
src/operations/grants/grantOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/grantOnTables.ts 100% 100% 100% 100%
src/operations/grants/grantRoles.ts 100% 100% 100% 100%
src/operations/grants/index.ts 100% 100% 100% 100%
src/operations/grants/revokeOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/revokeOnTables.ts 100% 100% 100% 100%
src/operations/grants/revokeRoles.ts 100% 100% 100% 100%
src/operations/grants/shared.ts 98.68% 90% 100% 98.68% 74
src/operations/indexes/createIndex.ts 98.01% 96% 100% 98.01% 68-69
src/operations/indexes/dropIndex.ts 97.61% 88.88% 100% 97.61% 26
src/operations/indexes/index.ts 100% 100% 100% 100%
src/operations/indexes/shared.ts 91.17% 86.95% 100% 91.17% 22, 32-35, 47
src/operations/materializedViews/alterMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/createMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/dropMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/index.ts 100% 100% 100% 100%
src/operations/materializedViews/refreshMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedViewColumn.ts 100% 100% 100% 100%
src/operations/materializedViews/shared.ts 100% 87.5% 100% 100%
src/operations/operators/addToOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/createOperator.ts 100% 88.88% 100% 100%
src/operations/operators/createOperatorClass.ts 100% 83.33% 100% 100%
src/operations/operators/createOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/dropOperator.ts 100% 87.5% 100% 100%
src/operations/operators/dropOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/dropOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/index.ts 100% 100% 100% 100%
src/operations/operators/removeFromOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/shared.ts 90% 75% 100% 90% 24-25, 37-38
src/operations/policies/alterPolicy.ts 100% 100% 100% 100%
src/operations/policies/createPolicy.ts 100% 100% 100% 100%
src/operations/policies/dropPolicy.ts 100% 100% 100% 100%
src/operations/policies/index.ts 100% 100% 100% 100%
src/operations/policies/renamePolicy.ts 100% 100% 100% 100%
src/operations/policies/shared.ts 100% 80% 100% 100%
src/operations/roles/alterRole.ts 100% 100% 100% 100%
src/operations/roles/createRole.ts 100% 75% 100% 100%
src/operations/roles/dropRole.ts 100% 100% 100% 100%
src/operations/roles/index.ts 100% 100% 100% 100%
src/operations/roles/renameRole.ts 100% 100% 100% 100%
src/operations/roles/shared.ts 96.15% 68.96% 100% 96.15% 78, 84, 91, 98
src/operations/schemas/createSchema.ts 100% 100% 100% 100%
src/operations/schemas/dropSchema.ts 100% 100% 100% 100%
src/operations/schemas/index.ts 100% 100% 100% 100%
src/operations/schemas/renameSchema.ts 100% 100% 100% 100%
src/operations/sequences/alterSequence.ts 96.87% 75% 100% 96.87% 23
src/operations/sequences/createSequence.ts 100% 100% 100% 100%
src/operations/sequences/dropSequence.ts 100% 100% 100% 100%
src/operations/sequences/index.ts 100% 100% 100% 100%
src/operations/sequences/renameSequence.ts 100% 100% 100% 100%
src/operations/sequences/shared.ts 87.67% 68.75% 100% 87.67% 41, 43-44, 49-50, 63-64, 69-70
src/operations/tables/addColumns.ts 100% 80% 100% 100%
src/operations/tables/addConstraint.ts 100% 100% 100% 100%
src/operations/tables/alterColumn.ts 91.66% 76.47% 100% 91.66% 75, 84-92
src/operations/tables/alterTable.ts 100% 100% 100% 100%
src/operations/tables/createTable.ts 90.12% 66.66% 100% 90.12% 43-47, 62, 72-73
src/operations/tables/dropColumns.ts 100% 100% 100% 100%
src/operations/tables/dropConstraint.ts 100% 100% 100% 100%
src/operations/tables/dropTable.ts 100% 100% 100% 100%
src/operations/tables/index.ts 100% 100% 100% 100%
src/operations/tables/renameColumn.ts 100% 100% 100% 100%
src/operations/tables/renameConstraint.ts 100% 100% 100% 100%
src/operations/tables/renameTable.ts 100% 100% 100% 100%
src/operations/tables/shared.ts 88.57% 80% 80% 88.57% 137-138, 141-142, 194-198, 223, 227-228, 247-248, 273-274, 277-284, 287-288, 430-455
src/operations/triggers/createTrigger.ts 90.98% 70.83% 100% 90.98% 55-56, 68-69, 72-73, 76-79, 115
src/operations/triggers/dropTrigger.ts 100% 100% 100% 100%
src/operations/triggers/index.ts 100% 100% 100% 100%
src/operations/triggers/renameTrigger.ts 100% 100% 100% 100%
src/operations/triggers/shared.ts 100% 100% 100% 100%
src/operations/types/addTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/addTypeValue.ts 100% 100% 100% 100%
src/operations/types/createType.ts 100% 100% 100% 100%
src/operations/types/dropType.ts 100% 100% 100% 100%
src/operations/types/dropTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/index.ts 100% 100% 100% 100%
src/operations/types/renameType.ts 100% 100% 100% 100%
src/operations/types/renameTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/renameTypeValue.ts 100% 100% 100% 100%
src/operations/types/setTypeAttribute.ts 100% 100% 100% 100%
src/operations/views/alterView.ts 100% 100% 100% 100%
src/operations/views/alterViewColumn.ts 100% 100% 100% 100%
src/operations/views/createView.ts 100% 93.33% 100% 100%
src/operations/views/dropView.ts 100% 100% 100% 100%
src/operations/views/index.ts 100% 100% 100% 100%
src/operations/views/renameView.ts 100% 100% 100% 100%
src/operations/views/shared.ts 100% 66.66% 100% 100%
src/utils/PgLiteral.ts 96.49% 100% 66.66% 96.49% 37-38
src/utils/StringIdGenerator.ts 100% 100% 100% 100%
src/utils/createSchemalize.ts 100% 100% 100% 100%
src/utils/createTransformer.ts 100% 100% 100% 100%
src/utils/decamelize.ts 100% 100% 100% 100%
src/utils/escapeValue.ts 100% 100% 100% 100%
src/utils/formatLines.ts 100% 100% 100% 100%
src/utils/formatParams.ts 100% 100% 100% 100%
src/utils/getMigrationTableSchema.ts 100% 100% 100% 100%
src/utils/getSchemas.ts 100% 100% 100% 100%
src/utils/identity.ts 100% 100% 100% 100%
src/utils/index.ts 100% 100% 100% 100%
src/utils/intersection.ts 100% 100% 100% 100%
src/utils/makeComment.ts 100% 100% 100% 100%
src/utils/quote.ts 100% 100% 100% 100%
src/utils/types.ts 100% 100% 100% 100%
Generated in workflow #641

github-actions[bot] avatar Apr 05 '24 22:04 github-actions[bot]

@coffeeowl @dprentis @matthewgertner @oilart somehow @goce-cz is not responding anymore :(

can someone of you help me with that? either grant me a bit more permission, or lets try to get codecov working by one of you accepting the token

Shinigami92 avatar Apr 08 '24 20:04 Shinigami92

@goce-cz is really busy these days, sorry.

TBH I don't feel like installing further 3rd party tools into our workspace because of the library. Is this one really critical?

goce-cz avatar Apr 08 '24 21:04 goce-cz

@goce-cz is really busy these days, sorry.

TBH I don't feel like installing further 3rd party tools into our workspace because of the library. Is this one really critical?

Nothing of that is really "critical", but the current workaround approach using GitHub Actions (see https://github.com/salsita/node-pg-migrate/pull/1015) lacks the feature of successfully running PR coverage reports from community contribution PR from forks. And not only that, it also needs to download and upload artifacts between main branch and the related PR. Codecov not only handles all that by outsourcing the uploaded artifacts to their platform, but also tracks a coverage historgramm. Additionally, Codecov can show inline hint inside PRs in the diff-view.

At FakerJS we are really happy with Codecov, see https://app.codecov.io/gh/faker-js/faker for example.

The process to setup Codecov should be really straight forward and as far as I know, only the token needs to be one time written by members with higher permission (https://docs.codecov.com/docs/quick-start#step-2-get-the-repository-upload-token). Everything after that can be then managed by me from the repository side.

I understand that external services are mostly not needed anymore, as I also replaced all stuff related CircleCI with GitHub Actions. But Codecov is right now the best choice I know.


Edit: right now it is in this state: image

Shinigami92 avatar Apr 09 '24 06:04 Shinigami92

  • #1126 might have fixed the fork-PR coverage reports so this is a solution for now, even if CodeCov could provide some benefits like history

Shinigami92 avatar May 02 '24 07:05 Shinigami92