c8 icon indicating copy to clipboard operation
c8 copied to clipboard

Strange behavior in github workflow

Open ultram4rine opened this issue 3 years ago • 6 comments

  • Version: 7.11.3
  • Platform: ubuntu-20.04 (github actions)

Hi everyone! I encountered strange behavior in github workflow when I change package.json things, not related to c8. Here are coverage report of all files: https://github.com/ultram4rine/vscode-choosealicense/runs/7054000876?check_suite_focus=true#step:5:79

---------------|---------|----------|---------|---------|-------------------------------------------
File           | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                         
---------------|---------|----------|---------|---------|-------------------------------------------
All files      |   39.56 |      100 |   35.71 |   39.56 |                                           
 src           |     100 |      100 |     100 |     100 |                                           
  extension.ts |     100 |      100 |     100 |     100 |                                           
 src/api       |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
 src/commands  |   31.44 |      100 |       0 |   31.44 |                                           
  index.ts     |   31.44 |      100 |       0 |   31.44 | 22-61,67-80,86-106,135-179,182-194        
 src/config    |    9.55 |      100 |       0 |    9.55 |                                           
  index.ts     |    9.55 |      100 |       0 |    9.55 | ...0,23-73,76-100,103-115,118-127,130-157 
 src/utils     |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
---------------|---------|----------|---------|---------|-------------------------------------------

And here are the report of only files that actually tested: https://github.com/ultram4rine/vscode-choosealicense/runs/7054022246?check_suite_focus=true#step:5:75

-----------|---------|----------|---------|---------|-------------------
File       | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------|---------|----------|---------|---------|-------------------
All files  |     100 |      100 |     100 |     100 |                   
 api       |     100 |      100 |     100 |     100 |                   
  index.ts |     100 |      100 |     100 |     100 |                   
 utils     |     100 |      100 |     100 |     100 |                   
  index.ts |     100 |      100 |     100 |     100 |                   
-----------|---------|----------|---------|---------|-------------------

And thats the commit. I changed activation events for vscode extension from onStartupFinished to onCommand. Here you can see how coverage changes.

On my local machine coverage report works fine, I run it just like in workflow: /usr/bin/xvfb-run --auto-servernum yarn coverage

Can someone explain to me how that things related?

ultram4rine avatar Jun 25 '22 13:06 ultram4rine

@ultram4rine what is the coverage output locally, vs., in the GitHub action?

bcoe avatar Jul 05 '22 17:07 bcoe

@bcoe do you mean like lcov.info?

Local
TN:
SF:src/extension.ts
FN:14,activate
FNF:1
FNH:1
FNDA:1,activate
DA:1,1
DA:2,1
DA:3,1
DA:4,1
DA:5,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:15,1
DA:16,1
DA:17,1
DA:18,1
DA:19,1
DA:20,1
DA:21,1
DA:22,1
DA:23,1
DA:24,1
DA:25,1
LF:25
LH:25
BRDA:14,0,0,1
BRF:1
BRH:1
end_of_record
TN:
SF:src/api/index.ts
FN:10,getLicenses
FN:15,getLicense
FNF:2
FNH:2
FNDA:1,getLicenses
FNDA:14,getLicense
DA:1,1
DA:2,1
DA:3,1
DA:4,1
DA:5,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:15,1
DA:16,14
DA:17,14
DA:18,14
LF:18
LH:18
BRDA:10,0,0,1
BRDA:15,1,0,14
BRF:2
BRH:2
end_of_record
TN:
SF:src/commands/index.ts
FN:134,addLicense
FN:181,chooseFolder
FNF:2
FNH:2
FNDA:1,addLicense
FNDA:1,chooseFolder
DA:1,1
DA:2,1
DA:3,1
DA:4,1
DA:5,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:15,1
DA:16,1
DA:17,1
DA:18,1
DA:19,1
DA:20,1
DA:21,1
DA:22,0
DA:23,0
DA:24,0
DA:25,0
DA:26,0
DA:27,0
DA:28,0
DA:29,0
DA:30,0
DA:31,0
DA:32,0
DA:33,0
DA:34,0
DA:35,0
DA:36,0
DA:37,0
DA:38,0
DA:39,0
DA:40,0
DA:41,0
DA:42,0
DA:43,0
DA:44,0
DA:45,0
DA:46,0
DA:47,0
DA:48,0
DA:49,0
DA:50,0
DA:51,0
DA:52,0
DA:53,0
DA:54,0
DA:55,0
DA:56,0
DA:57,0
DA:58,0
DA:59,0
DA:60,0
DA:61,0
DA:62,1
DA:63,1
DA:64,1
DA:65,1
DA:66,1
DA:67,1
DA:68,1
DA:69,1
DA:70,1
DA:71,1
DA:72,1
DA:73,1
DA:74,1
DA:75,0
DA:76,0
DA:77,1
DA:78,0
DA:79,0
DA:80,1
DA:81,1
DA:82,1
DA:83,1
DA:84,1
DA:85,1
DA:86,0
DA:87,0
DA:88,0
DA:89,0
DA:90,0
DA:91,0
DA:92,0
DA:93,0
DA:94,0
DA:95,0
DA:96,0
DA:97,0
DA:98,0
DA:99,0
DA:100,0
DA:101,0
DA:102,0
DA:103,0
DA:104,0
DA:105,0
DA:106,0
DA:107,1
DA:108,1
DA:109,1
DA:110,1
DA:111,1
DA:112,1
DA:113,1
DA:114,1
DA:115,1
DA:116,1
DA:117,1
DA:118,1
DA:119,1
DA:120,1
DA:121,1
DA:122,1
DA:123,1
DA:124,1
DA:125,1
DA:126,1
DA:127,1
DA:128,1
DA:129,1
DA:130,1
DA:131,1
DA:132,1
DA:133,1
DA:134,1
DA:135,1
DA:136,1
DA:137,0
DA:138,0
DA:139,0
DA:140,0
DA:141,0
DA:142,0
DA:143,0
DA:144,0
DA:145,0
DA:146,0
DA:147,0
DA:148,0
DA:149,0
DA:150,0
DA:151,0
DA:152,0
DA:153,0
DA:154,0
DA:155,0
DA:156,0
DA:157,0
DA:158,0
DA:159,0
DA:160,0
DA:161,0
DA:162,0
DA:163,0
DA:164,0
DA:165,0
DA:166,0
DA:167,0
DA:168,0
DA:169,0
DA:170,0
DA:171,0
DA:172,0
DA:173,0
DA:174,0
DA:175,0
DA:176,1
DA:177,1
DA:178,1
DA:179,1
DA:180,1
DA:181,1
DA:182,1
DA:183,1
DA:184,0
DA:185,0
DA:186,0
DA:187,0
DA:188,0
DA:189,0
DA:190,0
DA:191,1
DA:192,1
DA:193,1
DA:194,1
LF:194
LH:83
BRDA:66,0,0,1
BRDA:69,1,0,0
BRDA:74,2,0,0
BRDA:77,3,0,0
BRDA:134,4,0,1
BRDA:136,5,0,0
BRDA:181,6,0,1
BRDA:183,7,0,0
BRF:8
BRH:3
end_of_record
TN:
SF:src/config/index.ts
FN:3,setDefaultLicenseProperty
FN:7,setAuthorProperty
FN:22,setYearProperty
FN:75,setExtensionProperty
FN:102,setFilenameProperty
FN:117,setTokenProperty
FN:129,setProp
FNF:7
FNH:2
FNDA:1,setDefaultLicenseProperty
FNDA:0,setAuthorProperty
FNDA:0,setYearProperty
FNDA:0,setExtensionProperty
FNDA:0,setFilenameProperty
FNDA:0,setTokenProperty
FNDA:1,setProp
DA:1,1
DA:2,1
DA:3,1
DA:4,1
DA:5,1
DA:6,1
DA:7,1
DA:8,0
DA:9,0
DA:10,0
DA:11,0
DA:12,0
DA:13,0
DA:14,0
DA:15,0
DA:16,0
DA:17,0
DA:18,0
DA:19,0
DA:20,0
DA:21,1
DA:22,1
DA:23,0
DA:24,0
DA:25,0
DA:26,0
DA:27,0
DA:28,0
DA:29,0
DA:30,0
DA:31,0
DA:32,0
DA:33,0
DA:34,0
DA:35,0
DA:36,0
DA:37,0
DA:38,0
DA:39,0
DA:40,0
DA:41,0
DA:42,0
DA:43,0
DA:44,0
DA:45,0
DA:46,0
DA:47,0
DA:48,0
DA:49,0
DA:50,0
DA:51,0
DA:52,0
DA:53,0
DA:54,0
DA:55,0
DA:56,0
DA:57,0
DA:58,0
DA:59,0
DA:60,0
DA:61,0
DA:62,0
DA:63,0
DA:64,0
DA:65,0
DA:66,0
DA:67,0
DA:68,0
DA:69,0
DA:70,0
DA:71,0
DA:72,0
DA:73,0
DA:74,1
DA:75,1
DA:76,0
DA:77,0
DA:78,0
DA:79,0
DA:80,0
DA:81,0
DA:82,0
DA:83,0
DA:84,0
DA:85,0
DA:86,0
DA:87,0
DA:88,0
DA:89,0
DA:90,0
DA:91,0
DA:92,0
DA:93,0
DA:94,0
DA:95,0
DA:96,0
DA:97,0
DA:98,0
DA:99,0
DA:100,0
DA:101,1
DA:102,1
DA:103,0
DA:104,0
DA:105,0
DA:106,0
DA:107,0
DA:108,0
DA:109,0
DA:110,0
DA:111,0
DA:112,0
DA:113,0
DA:114,0
DA:115,0
DA:116,1
DA:117,1
DA:118,0
DA:119,0
DA:120,0
DA:121,0
DA:122,0
DA:123,0
DA:124,0
DA:125,0
DA:126,0
DA:127,0
DA:128,1
DA:129,1
DA:130,1
DA:131,0
DA:132,0
DA:133,0
DA:134,0
DA:135,0
DA:136,0
DA:137,0
DA:138,0
DA:139,0
DA:140,0
DA:141,0
DA:142,0
DA:143,0
DA:144,0
DA:145,0
DA:146,0
DA:147,0
DA:148,0
DA:149,0
DA:150,0
DA:151,0
DA:152,1
DA:153,1
DA:154,1
DA:155,1
DA:156,1
DA:157,1
LF:157
LH:24
BRDA:3,0,0,1
BRDA:129,1,0,1
BRDA:130,2,0,0
BRF:3
BRH:2
end_of_record
TN:
SF:src/utils/index.ts
FN:1,replaceAuthor
FN:32,replaceYear
FNF:2
FNH:2
FNDA:13,replaceAuthor
FNDA:13,replaceYear
DA:1,1
DA:2,13
DA:3,13
DA:4,13
DA:5,13
DA:6,13
DA:7,4
DA:8,4
DA:9,13
DA:10,13
DA:11,1
DA:12,1
DA:13,13
DA:14,13
DA:15,13
DA:16,13
DA:17,3
DA:18,3
DA:19,13
DA:20,13
DA:21,13
DA:22,13
DA:23,13
DA:24,13
DA:25,13
DA:26,5
DA:27,13
DA:28,13
DA:29,13
DA:30,13
DA:31,1
DA:32,1
DA:33,13
DA:34,13
DA:35,13
DA:36,13
DA:37,13
DA:38,4
DA:39,4
DA:40,13
DA:41,13
DA:42,1
DA:43,1
DA:44,13
DA:45,13
DA:46,13
DA:47,13
DA:48,3
DA:49,3
DA:50,13
DA:51,13
DA:52,13
DA:53,13
DA:54,13
DA:55,13
DA:56,13
DA:57,5
DA:58,13
DA:59,13
DA:60,13
DA:61,13
LF:61
LH:61
BRDA:1,0,0,13
BRDA:3,1,0,1
BRDA:4,2,0,2
BRDA:5,3,0,3
BRDA:6,4,0,4
BRDA:10,5,0,1
BRDA:14,6,0,1
BRDA:15,7,0,2
BRDA:16,8,0,3
BRDA:20,9,0,1
BRDA:21,10,0,2
BRDA:22,11,0,3
BRDA:23,12,0,4
BRDA:24,13,0,5
BRDA:25,14,0,5
BRDA:32,15,0,13
BRDA:34,16,0,1
BRDA:35,17,0,2
BRDA:36,18,0,3
BRDA:37,19,0,4
BRDA:41,20,0,1
BRDA:45,21,0,1
BRDA:46,22,0,2
BRDA:47,23,0,3
BRDA:51,24,0,1
BRDA:52,25,0,2
BRDA:53,26,0,3
BRDA:54,27,0,4
BRDA:55,28,0,5
BRDA:56,29,0,5
BRF:30
BRH:30
end_of_record
GitHub actions
TN:
SF:src/api/index.ts
FN:10,getLicenses
FN:15,getLicense
FNF:2
FNH:2
FNDA:1,getLicenses
FNDA:13,getLicense
DA:1,1
DA:2,1
DA:3,1
DA:4,1
DA:5,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:15,1
DA:16,13
DA:17,13
DA:18,13
LF:18
LH:18
BRDA:10,0,0,1
BRDA:15,1,0,13
BRF:2
BRH:2
end_of_record
TN:
SF:src/utils/index.ts
FN:1,replaceAuthor
FN:32,replaceYear
FNF:2
FNH:2
FNDA:13,replaceAuthor
FNDA:13,replaceYear
DA:1,1
DA:2,13
DA:3,13
DA:4,13
DA:5,13
DA:6,13
DA:7,4
DA:8,4
DA:9,13
DA:10,13
DA:11,1
DA:12,1
DA:13,13
DA:14,13
DA:15,13
DA:16,13
DA:17,3
DA:18,3
DA:19,13
DA:20,13
DA:21,13
DA:22,13
DA:23,13
DA:24,13
DA:25,13
DA:26,5
DA:27,13
DA:28,13
DA:29,13
DA:30,13
DA:31,1
DA:32,1
DA:33,13
DA:34,13
DA:35,13
DA:36,13
DA:37,13
DA:38,4
DA:39,4
DA:40,13
DA:41,13
DA:42,1
DA:43,1
DA:44,13
DA:45,13
DA:46,13
DA:47,13
DA:48,3
DA:49,3
DA:50,13
DA:51,13
DA:52,13
DA:53,13
DA:54,13
DA:55,13
DA:56,13
DA:57,5
DA:58,13
DA:59,13
DA:60,13
DA:61,13
LF:61
LH:61
BRDA:1,0,0,13
BRDA:3,1,0,1
BRDA:4,2,0,2
BRDA:5,3,0,3
BRDA:6,4,0,4
BRDA:10,5,0,1
BRDA:14,6,0,1
BRDA:15,7,0,2
BRDA:16,8,0,3
BRDA:20,9,0,1
BRDA:21,10,0,2
BRDA:22,11,0,3
BRDA:23,12,0,4
BRDA:24,13,0,5
BRDA:25,14,0,5
BRDA:32,15,0,13
BRDA:34,16,0,1
BRDA:35,17,0,2
BRDA:36,18,0,3
BRDA:37,19,0,4
BRDA:41,20,0,1
BRDA:45,21,0,1
BRDA:46,22,0,2
BRDA:47,23,0,3
BRDA:51,24,0,1
BRDA:52,25,0,2
BRDA:53,26,0,3
BRDA:54,27,0,4
BRDA:55,28,0,5
BRDA:56,29,0,5
BRF:30
BRH:30
end_of_record

Here are full output with tmp folder: coverage_local.zip coverage_gh_action.zip

ultram4rine avatar Jul 05 '22 20:07 ultram4rine

@ultram4rine would you be able to provide the visual output for GitHub actions, vs., local, of the form:

---------------|---------|----------|---------|---------|-------------------------------------------
File           | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                         
---------------|---------|----------|---------|---------|-------------------------------------------
All files      |   39.56 |      100 |   35.71 |   39.56 |                                           
 src           |     100 |      100 |     100 |     100 |                                           
  extension.ts |     100 |      100 |     100 |     100 |                                           
 src/api       |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
 src/commands  |   31.44 |      100 |       0 |   31.44 |                                           
  index.ts     |   31.44 |      100 |       0 |   31.44 | 22-61,67-80,86-106,135-179,182-194        
 src/config    |    9.55 |      100 |       0 |    9.55 |                                           
  index.ts     |    9.55 |      100 |       0 |    9.55 | ...0,23-73,76-100,103-115,118-127,130-157 
 src/utils     |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
---------------|---------|----------|---------|---------|-------------------------------------------

One major difference between a GitHub action, vs.., local tests, is the type of terminal it uses for output. For instance isTTY will be false, so certain types of output will behave differently.

bcoe avatar Jul 18 '22 15:07 bcoe

@bcoe sorry, my mistake, local coverage results in the same result as gh workflow, so the problem is not related to github. Nonetheless, there are still problem with activationEvents. I'll repeat it again. With

"activationEvents": [
    "onStartupFinished"
  ],

in package.json coverage output is:

---------------|---------|----------|---------|---------|-------------------------------------------
File           | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                         
---------------|---------|----------|---------|---------|-------------------------------------------
All files      |   39.56 |      100 |   35.71 |   39.56 |                                           
 src           |     100 |      100 |     100 |     100 |                                           
  extension.ts |     100 |      100 |     100 |     100 |                                           
 src/api       |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
 src/commands  |   31.44 |      100 |       0 |   31.44 |                                           
  index.ts     |   31.44 |      100 |       0 |   31.44 | 22-61,67-80,86-106,135-179,182-194        
 src/config    |    9.55 |      100 |       0 |    9.55 |                                           
  index.ts     |    9.55 |      100 |       0 |    9.55 | ...0,23-73,76-100,103-115,118-127,130-157 
 src/utils     |     100 |      100 |     100 |     100 |                                           
  index.ts     |     100 |      100 |     100 |     100 |                                           
---------------|---------|----------|---------|---------|-------------------------------------------

And with

"activationEvents": [
    "onCommand:license.chooseLicense",
    "onCommand:license.addDefaultLicense",
    "onCommand:license.setDefaultLicense",
    "onCommand:license.setAuthor",
    "onCommand:license.setYear",
    "onCommand:license.setExtension",
    "onCommand:license.setFilename",
    "onCommand:license.setToken"
  ],

coverage is:

-----------|---------|----------|---------|---------|-------------------
File       | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------|---------|----------|---------|---------|-------------------
All files  |     100 |      100 |     100 |     100 |                   
 api       |     100 |      100 |     100 |     100 |                   
  index.ts |     100 |      100 |     100 |     100 |                   
 utils     |     100 |      100 |     100 |     100 |                   
  index.ts |     100 |      100 |     100 |     100 |                   
-----------|---------|----------|---------|---------|-------------------

Note that api/index.ts and utils/index.ts are the only tested files.

ultram4rine avatar Jul 19 '22 18:07 ultram4rine

@ultram4rine so that I understand better, it looks like the coverage is the same for both, but "onStartupFinished" includes additional files?

bcoe avatar Jul 19 '22 19:07 bcoe

@bcoe yes, "onStartupFinished" includes untested files, but they covered at lines like imports or function declaration.

ultram4rine avatar Jul 19 '22 20:07 ultram4rine