@@ -13,6 +13,7 @@ Object.defineProperty(exports, '_vendors', {
13
13
14
14
exports . name = null
15
15
exports . isPR = null
16
+ exports . id = null
16
17
17
18
vendors . forEach ( function ( vendor ) {
18
19
const envs = Array . isArray ( vendor . env ) ? vendor . env : [ vendor . env ]
@@ -27,45 +28,23 @@ vendors.forEach(function (vendor) {
27
28
}
28
29
29
30
exports . name = vendor . name
30
-
31
- switch ( typeof vendor . pr ) {
32
- case 'string' :
33
- // "pr": "CIRRUS_PR"
34
- exports . isPR = ! ! env [ vendor . pr ]
35
- break
36
- case 'object' :
37
- if ( 'env' in vendor . pr ) {
38
- // "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" }
39
- exports . isPR = vendor . pr . env in env && env [ vendor . pr . env ] !== vendor . pr . ne
40
- } else if ( 'any' in vendor . pr ) {
41
- // "pr": { "any": ["ghprbPullId", "CHANGE_ID"] }
42
- exports . isPR = vendor . pr . any . some ( function ( key ) {
43
- return ! ! env [ key ]
44
- } )
45
- } else {
46
- // "pr": { "DRONE_BUILD_EVENT": "pull_request" }
47
- exports . isPR = checkEnv ( vendor . pr )
48
- }
49
- break
50
- default :
51
- // PR detection not supported for this vendor
52
- exports . isPR = null
53
- }
31
+ exports . isPR = checkPR ( vendor )
32
+ exports . id = vendor . constant
54
33
} )
55
34
56
35
exports . isCI = ! ! (
57
36
env . CI !== 'false' && // Bypass all checks if CI env is explicitly set to 'false'
58
37
( env . BUILD_ID || // Jenkins, Cloudbees
59
- env . BUILD_NUMBER || // Jenkins, TeamCity
60
- env . CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari
61
- env . CI_APP_ID || // Appflow
62
- env . CI_BUILD_ID || // Appflow
63
- env . CI_BUILD_NUMBER || // Appflow
64
- env . CI_NAME || // Codeship and others
65
- env . CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
66
- env . RUN_ID || // TaskCluster, dsari
67
- exports . name ||
68
- false )
38
+ env . BUILD_NUMBER || // Jenkins, TeamCity
39
+ env . CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari
40
+ env . CI_APP_ID || // Appflow
41
+ env . CI_BUILD_ID || // Appflow
42
+ env . CI_BUILD_NUMBER || // Appflow
43
+ env . CI_NAME || // Codeship and others
44
+ env . CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
45
+ env . RUN_ID || // TaskCluster, dsari
46
+ exports . name ||
47
+ false )
69
48
)
70
49
71
50
function checkEnv ( obj ) {
@@ -79,12 +58,45 @@ function checkEnv (obj) {
79
58
return env [ obj . env ] && env [ obj . env ] . includes ( obj . includes )
80
59
// }
81
60
}
61
+
82
62
if ( 'any' in obj ) {
83
63
return obj . any . some ( function ( k ) {
84
64
return ! ! env [ k ]
85
65
} )
86
66
}
67
+
87
68
return Object . keys ( obj ) . every ( function ( k ) {
88
69
return env [ k ] === obj [ k ]
89
70
} )
90
71
}
72
+
73
+ function checkPR ( vendor ) {
74
+ switch ( typeof vendor . pr ) {
75
+ case 'string' :
76
+ // "pr": "CIRRUS_PR"
77
+ return ! ! env [ vendor . pr ]
78
+ case 'object' :
79
+ if ( 'env' in vendor . pr ) {
80
+ if ( 'any' in vendor . pr ) {
81
+ // "pr": { "env": "CODEBUILD_WEBHOOK_EVENT", "any": ["PULL_REQUEST_CREATED", "PULL_REQUEST_UPDATED"] }
82
+ return vendor . pr . any . some ( function ( key ) {
83
+ return env [ vendor . pr . env ] === key
84
+ } )
85
+ } else {
86
+ // "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" }
87
+ return vendor . pr . env in env && env [ vendor . pr . env ] !== vendor . pr . ne
88
+ }
89
+ } else if ( 'any' in vendor . pr ) {
90
+ // "pr": { "any": ["ghprbPullId", "CHANGE_ID"] }
91
+ return vendor . pr . any . some ( function ( key ) {
92
+ return ! ! env [ key ]
93
+ } )
94
+ } else {
95
+ // "pr": { "DRONE_BUILD_EVENT": "pull_request" }
96
+ return checkEnv ( vendor . pr )
97
+ }
98
+ default :
99
+ // PR detection not supported for this vendor
100
+ return null
101
+ }
102
+ }
0 commit comments