File tree 3 files changed +54
-3
lines changed
3 files changed +54
-3
lines changed Original file line number Diff line number Diff line change @@ -35,8 +35,15 @@ vendors.forEach(function (vendor) {
35
35
break
36
36
case 'object' :
37
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
38
+ if ( 'any' in vendor . pr ) {
39
+ // "pr": { "env": "CODEBUILD_WEBHOOK_EVENT", "any": ["PULL_REQUEST_CREATED", "PULL_REQUEST_UPDATED"] }
40
+ exports . isPR = vendor . pr . any . some ( function ( key ) {
41
+ return env [ vendor . pr . env ] === key
42
+ } )
43
+ } else {
44
+ // "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" }
45
+ exports . isPR = vendor . pr . env in env && env [ vendor . pr . env ] !== vendor . pr . ne
46
+ }
40
47
} else if ( 'any' in vendor . pr ) {
41
48
// "pr": { "any": ["ghprbPullId", "CHANGE_ID"] }
42
49
exports . isPR = vendor . pr . any . some ( function ( key ) {
@@ -79,11 +86,13 @@ function checkEnv (obj) {
79
86
return env [ obj . env ] && env [ obj . env ] . includes ( obj . includes )
80
87
// }
81
88
}
89
+
82
90
if ( 'any' in obj ) {
83
91
return obj . any . some ( function ( k ) {
84
92
return ! ! env [ k ]
85
93
} )
86
94
}
95
+
87
96
return Object . keys ( obj ) . every ( function ( k ) {
88
97
return env [ k ] === obj [ k ]
89
98
} )
Original file line number Diff line number Diff line change @@ -1004,6 +1004,40 @@ test('Earthly CI', function (t) {
1004
1004
t . end ( )
1005
1005
} )
1006
1006
1007
+ test ( 'AWS Codebuild' , function ( t ) {
1008
+ process . env . CODEBUILD_BUILD_ARN = 'true'
1009
+
1010
+ clearModule ( './' )
1011
+ const ci = require ( './' )
1012
+
1013
+ t . equal ( ci . isCI , true )
1014
+ t . equal ( ci . name , 'AWS CodeBuild' )
1015
+ t . equal ( ci . CODEBUILD , true )
1016
+ assertVendorConstants ( 'CODEBUILD' , ci , t )
1017
+
1018
+ delete process . env . CODEBUILD_BUILD_ARN
1019
+
1020
+ t . end ( )
1021
+ } )
1022
+
1023
+ test ( 'AWS Codebuild - PR' , function ( t ) {
1024
+ process . env . CODEBUILD_BUILD_ARN = 'true'
1025
+ process . env . CODEBUILD_WEBHOOK_EVENT = 'PULL_REQUEST_CREATED'
1026
+
1027
+ clearModule ( './' )
1028
+ const ci = require ( './' )
1029
+
1030
+ t . equal ( ci . isCI , true )
1031
+ t . equal ( ci . isPR , true )
1032
+ t . equal ( ci . name , 'AWS CodeBuild' )
1033
+ t . equal ( ci . CODEBUILD , true )
1034
+ assertVendorConstants ( 'CODEBUILD' , ci , t )
1035
+
1036
+ delete process . env . CODEBUILD_BUILD_ARN
1037
+
1038
+ t . end ( )
1039
+ } )
1040
+
1007
1041
function assertVendorConstants ( expect , ci , t ) {
1008
1042
ci . _vendors . forEach ( function ( constant ) {
1009
1043
const bool = constant === expect
Original file line number Diff line number Diff line change 19
19
{
20
20
"name" : " AWS CodeBuild" ,
21
21
"constant" : " CODEBUILD" ,
22
- "env" : " CODEBUILD_BUILD_ARN"
22
+ "env" : " CODEBUILD_BUILD_ARN" ,
23
+ "pr" : {
24
+ "env" : " CODEBUILD_WEBHOOK_EVENT" ,
25
+ "any" : [
26
+ " PULL_REQUEST_CREATED" ,
27
+ " PULL_REQUEST_UPDATED" ,
28
+ " PULL_REQUEST_REOPENED"
29
+ ]
30
+ }
23
31
},
24
32
{
25
33
"name" : " Azure Pipelines" ,
You can’t perform that action at this time.
0 commit comments