@@ -10,6 +10,19 @@ import {PsuApiStatefulStack} from "../stacks/PsuApiStatefulStack"
1010
1111type StackMode = "stateless" | "stateful"
1212
13+ function mergeStackModeIntoStackName ( baseStackName : string , stackMode : StackMode ) : string {
14+ const pullRequestSuffixMatch = baseStackName . match ( / - p r - \d + $ / i)
15+
16+ if ( ! pullRequestSuffixMatch ) {
17+ return `${ baseStackName } -${ stackMode } `
18+ }
19+
20+ const pullRequestSuffix = pullRequestSuffixMatch [ 0 ]
21+ const stackNameWithoutPullRequestSuffix = baseStackName . slice ( 0 , - pullRequestSuffix . length )
22+
23+ return `${ stackNameWithoutPullRequestSuffix } -${ stackMode } ${ pullRequestSuffix } `
24+ }
25+
1326function getStackMode ( ) : StackMode {
1427 const stackMode = getConfigFromEnvVar ( "stackMode" , undefined , "stateless" )
1528
@@ -29,11 +42,13 @@ async function main() {
2942 } )
3043
3144 const stackMode = getStackMode ( )
45+ const baseStackName = getConfigFromEnvVar ( "stackName" )
46+ const modeAwareStackName = mergeStackModeIntoStackName ( baseStackName , stackMode )
3247
3348 if ( stackMode === "stateless" ) {
3449 new PsuApiStatelessStack ( app , "PsuApiStatelessStack" , {
3550 ...props ,
36- stackName : calculateVersionedStackName ( getConfigFromEnvVar ( "stackName" ) , props ) ,
51+ stackName : calculateVersionedStackName ( modeAwareStackName , props ) ,
3752 samStackName : getConfigFromEnvVar ( "samStackName" ) , // TODO: REMOVE THE NEED FOR THIS
3853 logRetentionInDays : getNumberConfigFromEnvVar ( "logRetentionInDays" ) ,
3954 logLevel : getConfigFromEnvVar ( "logLevel" ) ,
@@ -55,7 +70,7 @@ async function main() {
5570 // creating a new stack per version.
5671 new PsuApiStatefulStack ( app , "PsuApiStatefulStack" , {
5772 ...props ,
58- stackName : getConfigFromEnvVar ( "stackName" ) ,
73+ stackName : modeAwareStackName ,
5974 logRetentionInDays : getNumberConfigFromEnvVar ( "logRetentionInDays" ) ,
6075 environment : getConfigFromEnvVar ( "environment" ) ,
6176 enableDynamoDBAutoScaling : getBooleanConfigFromEnvVar ( "enableDynamoDBAutoScaling" , undefined , "false" ) ,
0 commit comments