@@ -47,6 +47,8 @@ describe('Render task definition', () => {
47
47
. mockReturnValueOnce ( '' ) // log Configuration Options
48
48
. mockReturnValueOnce ( '' ) // docker labels
49
49
. mockReturnValueOnce ( '' ) // command
50
+ . mockReturnValueOnce ( '' ) // task role arn
51
+ . mockReturnValueOnce ( '' ) // execution role arn
50
52
. mockReturnValueOnce ( '' ) // task-definition arn
51
53
. mockReturnValueOnce ( '' ) // task-definition family
52
54
. mockReturnValueOnce ( '' ) // task-definition revision
@@ -263,6 +265,8 @@ describe('Render task definition', () => {
263
265
. mockReturnValueOnce ( '' ) // log Configuration Options
264
266
. mockReturnValueOnce ( '' ) // docker labels
265
267
. mockReturnValueOnce ( '' ) // command
268
+ . mockReturnValueOnce ( '' ) // task role arn
269
+ . mockReturnValueOnce ( '' ) // execution role arn
266
270
. mockReturnValueOnce ( '' ) // task-definition arn
267
271
. mockReturnValueOnce ( '' ) // task-definition family
268
272
. mockReturnValueOnce ( '' ) // task-definition revision
@@ -477,6 +481,8 @@ describe('Render task definition', () => {
477
481
. mockReturnValueOnce ( '' )
478
482
. mockReturnValueOnce ( '' )
479
483
. mockReturnValueOnce ( '' )
484
+ . mockReturnValueOnce ( '' )
485
+ . mockReturnValueOnce ( '' )
480
486
. mockReturnValueOnce ( 'SECRET' ) ;
481
487
await run ( ) ;
482
488
@@ -523,6 +529,8 @@ describe('Render task definition', () => {
523
529
. mockReturnValueOnce ( '' ) // log Configuration Options
524
530
. mockReturnValueOnce ( '' ) // Docker Labels
525
531
. mockReturnValueOnce ( '' ) // Command Options
532
+ . mockReturnValueOnce ( '' ) // task role arn
533
+ . mockReturnValueOnce ( '' ) // execution role arn
526
534
. mockReturnValueOnce ( 'task-definition-arn' ) // task definition arn
527
535
. mockReturnValueOnce ( 'task-definition-family' ) // task definition family
528
536
. mockReturnValueOnce ( 0 ) ; // task definition revision
@@ -544,6 +552,8 @@ describe('Render task definition', () => {
544
552
. mockReturnValueOnce ( '' ) // log Configuration Options
545
553
. mockReturnValueOnce ( '' ) // Docker Labels
546
554
. mockReturnValueOnce ( '' ) // Command Options
555
+ . mockReturnValueOnce ( '' ) // task role arn
556
+ . mockReturnValueOnce ( '' ) // execution role arn
547
557
. mockReturnValueOnce ( '' ) // task definition arn
548
558
. mockReturnValueOnce ( "task-definition-family" ) // task definition family
549
559
. mockReturnValueOnce ( 10 ) ; // task definition revision
@@ -569,6 +579,8 @@ describe('Render task definition', () => {
569
579
. mockReturnValueOnce ( '' ) // log Configuration Options
570
580
. mockReturnValueOnce ( '' ) // Docker Labels
571
581
. mockReturnValueOnce ( '' ) // Command Options
582
+ . mockReturnValueOnce ( '' ) // task role arn
583
+ . mockReturnValueOnce ( '' ) // execution role arn
572
584
. mockReturnValueOnce ( '' ) // task definition arn
573
585
. mockReturnValueOnce ( "task-definition-family" ) // task definition family
574
586
. mockReturnValueOnce ( 0 ) ; // task definition revision
@@ -595,6 +607,8 @@ describe('Render task definition', () => {
595
607
. mockReturnValueOnce ( '' ) // log Configuration Options
596
608
. mockReturnValueOnce ( '' ) // Docker Labels
597
609
. mockReturnValueOnce ( '' ) // Command Options
610
+ . mockReturnValueOnce ( '' ) // task role arn
611
+ . mockReturnValueOnce ( '' ) // execution role arn
598
612
. mockReturnValueOnce ( 'task-definition-arn' ) // task definition arn
599
613
. mockReturnValueOnce ( '' ) // task definition family
600
614
. mockReturnValueOnce ( 0 ) ; // task definition revision
@@ -621,6 +635,8 @@ describe('Render task definition', () => {
621
635
. mockReturnValueOnce ( '' ) // log Configuration Options
622
636
. mockReturnValueOnce ( '' ) // Docker Labels
623
637
. mockReturnValueOnce ( '' ) // Command Options
638
+ . mockReturnValueOnce ( '' ) // task role arn
639
+ . mockReturnValueOnce ( '' ) // execution role arn
624
640
. mockReturnValueOnce ( 'task-definition-arn' ) // task definition arn
625
641
. mockReturnValueOnce ( '' ) // task definition family
626
642
. mockReturnValueOnce ( 0 ) ; //task definition revision
@@ -644,6 +660,8 @@ describe('Render task definition', () => {
644
660
. mockReturnValueOnce ( '' ) // log Configuration Options
645
661
. mockReturnValueOnce ( '' ) // Docker Labels
646
662
. mockReturnValueOnce ( '' ) // Command Options
663
+ . mockReturnValueOnce ( '' ) // task role arn
664
+ . mockReturnValueOnce ( '' ) // execution role arn
647
665
. mockReturnValueOnce ( 'task-definition-arn' ) //task definition arn
648
666
. mockReturnValueOnce ( 'task-definition-family' ) //task definition family
649
667
. mockReturnValueOnce ( 10 ) ; //task definition revision
@@ -667,6 +685,8 @@ describe('Render task definition', () => {
667
685
. mockReturnValueOnce ( '' ) // log Configuration Options
668
686
. mockReturnValueOnce ( '' ) // Docker Labels
669
687
. mockReturnValueOnce ( '' ) // Command Options
688
+ . mockReturnValueOnce ( '' ) // task role arn
689
+ . mockReturnValueOnce ( '' ) // execution role arn
670
690
. mockReturnValueOnce ( 'task-definition-arn' ) // task definition arn
671
691
. mockReturnValueOnce ( 'task-definition-family' ) // task definition family
672
692
. mockReturnValueOnce ( 0 ) ; // task definition revision
@@ -692,6 +712,8 @@ describe('Render task definition', () => {
692
712
. mockReturnValueOnce ( '' ) // log Configuration Options
693
713
. mockReturnValueOnce ( '' ) // Docker Labels
694
714
. mockReturnValueOnce ( '' ) // Command Options
715
+ . mockReturnValueOnce ( '' ) // task role arn
716
+ . mockReturnValueOnce ( '' ) // execution role arn
695
717
. mockReturnValueOnce ( '' ) // task definition arn
696
718
. mockReturnValueOnce ( '' ) // task definition family
697
719
. mockReturnValueOnce ( 10 ) ; // task definition revision
@@ -978,4 +1000,206 @@ describe('Render task definition', () => {
978
1000
} , null , 2 )
979
1001
) ;
980
1002
} ) ;
1003
+
1004
+ test ( 'renders a task definition task role arn' , async ( ) => {
1005
+ core . getInput = jest
1006
+ . fn ( )
1007
+ . mockReturnValueOnce ( 'task-definition.json' )
1008
+ . mockReturnValueOnce ( 'web' )
1009
+ . mockReturnValueOnce ( 'nginx:latest' )
1010
+ . mockReturnValueOnce ( '' )
1011
+ . mockReturnValueOnce ( '' )
1012
+ . mockReturnValueOnce ( '' )
1013
+ . mockReturnValueOnce ( '' )
1014
+ . mockReturnValueOnce ( '' )
1015
+ . mockReturnValueOnce ( '' )
1016
+ . mockReturnValueOnce ( 'arn:aws:iam::0123456789:role/task-role' ) ;
1017
+
1018
+ await run ( ) ;
1019
+
1020
+ expect ( tmp . fileSync ) . toHaveBeenNthCalledWith ( 1 , {
1021
+ tmpdir : '/home/runner/work/_temp' ,
1022
+ prefix : 'task-definition-' ,
1023
+ postfix : '.json' ,
1024
+ keep : true ,
1025
+ discardDescriptor : true
1026
+ } ) ;
1027
+
1028
+ expect ( fs . writeFileSync ) . toHaveBeenNthCalledWith ( 1 , 'new-task-def-file-name' ,
1029
+ JSON . stringify ( {
1030
+ family : 'task-def-family' ,
1031
+ containerDefinitions : [
1032
+ {
1033
+ name : "web" ,
1034
+ image : "nginx:latest" ,
1035
+ environment : [
1036
+ {
1037
+ name : "FOO" ,
1038
+ value : "bar"
1039
+ } ,
1040
+ {
1041
+ name : "DONT-TOUCH" ,
1042
+ value : "me"
1043
+ } ,
1044
+ {
1045
+ name : "HELLO" ,
1046
+ value : "world"
1047
+ } ,
1048
+ {
1049
+ name : "EXAMPLE" ,
1050
+ value : "here"
1051
+ }
1052
+ ] ,
1053
+ environmentFiles : [
1054
+ {
1055
+ value : "arn:aws:s3:::s3_bucket_name/envfile_object_name.env" ,
1056
+ type : "s3"
1057
+ }
1058
+ ] ,
1059
+ secrets : [
1060
+ {
1061
+ name : "EXISTING_SECRET" ,
1062
+ valueFrom : "arn:aws:ssm:region:0123456789:parameter/existingSecret"
1063
+ } ,
1064
+ {
1065
+ name : "SSM_SECRET" ,
1066
+ valueFrom : "arn:aws:ssm:region:0123456789:parameter/secret"
1067
+ } ,
1068
+ {
1069
+ name : "SM_SECRET" ,
1070
+ valueFrom : "arn:aws:secretsmanager:us-east-1:0123456789:secret:secretName"
1071
+ }
1072
+ ] ,
1073
+ logConfiguration : {
1074
+ logDriver : "awslogs" ,
1075
+ options : {
1076
+ "awslogs-create-group" : "true" ,
1077
+ "awslogs-group" : "/ecs/web" ,
1078
+ "awslogs-region" : "us-east-1" ,
1079
+ "awslogs-stream-prefix" : "ecs"
1080
+ }
1081
+ } ,
1082
+ dockerLabels : {
1083
+ "key1" :"value1" ,
1084
+ "key2" :"value2"
1085
+ } ,
1086
+ command : [ "npm" , "start" , "--nice" , "--please" ] ,
1087
+ taskRoleArn : "arn:aws:iam::0123456789:role/task-role" ,
1088
+ } ,
1089
+ {
1090
+ name : "sidecar" ,
1091
+ image : "hello"
1092
+ }
1093
+ ] ,
1094
+ tags : [
1095
+ {
1096
+ key : "project" ,
1097
+ value : "mytaskdef"
1098
+ }
1099
+ ]
1100
+ } , null , 2 )
1101
+ ) ;
1102
+ } ) ;
1103
+
1104
+ test ( 'renders a task definition execution role arn' , async ( ) => {
1105
+ core . getInput = jest
1106
+ . fn ( )
1107
+ . mockReturnValueOnce ( 'task-definition.json' )
1108
+ . mockReturnValueOnce ( 'web' )
1109
+ . mockReturnValueOnce ( 'nginx:latest' )
1110
+ . mockReturnValueOnce ( '' )
1111
+ . mockReturnValueOnce ( '' )
1112
+ . mockReturnValueOnce ( '' )
1113
+ . mockReturnValueOnce ( '' )
1114
+ . mockReturnValueOnce ( '' )
1115
+ . mockReturnValueOnce ( '' )
1116
+ . mockReturnValueOnce ( '' )
1117
+ . mockReturnValueOnce ( 'arn:aws:iam::0123456789:role/execution-role' ) ;
1118
+
1119
+ await run ( ) ;
1120
+
1121
+ expect ( tmp . fileSync ) . toHaveBeenNthCalledWith ( 1 , {
1122
+ tmpdir : '/home/runner/work/_temp' ,
1123
+ prefix : 'task-definition-' ,
1124
+ postfix : '.json' ,
1125
+ keep : true ,
1126
+ discardDescriptor : true
1127
+ } ) ;
1128
+
1129
+ expect ( fs . writeFileSync ) . toHaveBeenNthCalledWith ( 1 , 'new-task-def-file-name' ,
1130
+ JSON . stringify ( {
1131
+ family : 'task-def-family' ,
1132
+ containerDefinitions : [
1133
+ {
1134
+ name : "web" ,
1135
+ image : "nginx:latest" ,
1136
+ environment : [
1137
+ {
1138
+ name : "FOO" ,
1139
+ value : "bar"
1140
+ } ,
1141
+ {
1142
+ name : "DONT-TOUCH" ,
1143
+ value : "me"
1144
+ } ,
1145
+ {
1146
+ name : "HELLO" ,
1147
+ value : "world"
1148
+ } ,
1149
+ {
1150
+ name : "EXAMPLE" ,
1151
+ value : "here"
1152
+ }
1153
+ ] ,
1154
+ environmentFiles : [
1155
+ {
1156
+ value : "arn:aws:s3:::s3_bucket_name/envfile_object_name.env" ,
1157
+ type : "s3"
1158
+ }
1159
+ ] ,
1160
+ secrets : [
1161
+ {
1162
+ name : "EXISTING_SECRET" ,
1163
+ valueFrom : "arn:aws:ssm:region:0123456789:parameter/existingSecret"
1164
+ } ,
1165
+ {
1166
+ name : "SSM_SECRET" ,
1167
+ valueFrom : "arn:aws:ssm:region:0123456789:parameter/secret"
1168
+ } ,
1169
+ {
1170
+ name : "SM_SECRET" ,
1171
+ valueFrom : "arn:aws:secretsmanager:us-east-1:0123456789:secret:secretName"
1172
+ }
1173
+ ] ,
1174
+ logConfiguration : {
1175
+ logDriver : "awslogs" ,
1176
+ options : {
1177
+ "awslogs-create-group" : "true" ,
1178
+ "awslogs-group" : "/ecs/web" ,
1179
+ "awslogs-region" : "us-east-1" ,
1180
+ "awslogs-stream-prefix" : "ecs"
1181
+ }
1182
+ } ,
1183
+ dockerLabels : {
1184
+ "key1" :"value1" ,
1185
+ "key2" :"value2"
1186
+ } ,
1187
+ command : [ "npm" , "start" , "--nice" , "--please" ] ,
1188
+ taskRoleArn : "arn:aws:iam::0123456789:role/task-role" ,
1189
+ executionRoleArn : "arn:aws:iam::0123456789:role/execution-role" ,
1190
+ } ,
1191
+ {
1192
+ name : "sidecar" ,
1193
+ image : "hello"
1194
+ }
1195
+ ] ,
1196
+ tags : [
1197
+ {
1198
+ key : "project" ,
1199
+ value : "mytaskdef"
1200
+ }
1201
+ ]
1202
+ } , null , 2 )
1203
+ ) ;
1204
+ } ) ;
981
1205
} ) ;
0 commit comments