@@ -278,10 +278,12 @@ describe('flyDeployment', () => {
278278 const setupTest = ( configOverride ?: Partial < ActionInputs > ) : ActionInputs => {
279279 return {
280280 ...{
281+ env : [ ] ,
281282 flyApiToken : 'fly-api-token' ,
282283 flyOrg : 'fly-org' ,
283284 flyRegion : '' ,
284285 mainBranch : '' ,
286+ secrets : [ ] ,
285287 token : 'token'
286288 } ,
287289 ...configOverride
@@ -303,10 +305,12 @@ describe('flyDeployment', () => {
303305 const config = setupTest ( ) ;
304306
305307 expect ( config ) . toEqual ( {
308+ env : [ ] ,
306309 flyApiToken : 'fly-api-token' ,
307310 flyOrg : 'fly-org' ,
308311 flyRegion : '' ,
309312 mainBranch : '' ,
313+ secrets : [ ] ,
310314 token : 'token'
311315 } satisfies ActionInputs ) ;
312316
@@ -435,6 +439,64 @@ describe('flyDeployment', () => {
435439 ]
436440 } satisfies ActionOutputs ) ;
437441 } ) ;
442+
443+ it ( 'should deploy apps to preview with environment variables' , async ( ) => {
444+ setContext ( 'pr-opened' ) ;
445+ setupMocks ( ) ;
446+ const config = setupTest ( {
447+ env : [ 'ENV_KEY1=env-value1' , 'ENV_KEY2=env-value2' ]
448+ } ) ;
449+ await flyDeployment ( config , true ) ;
450+
451+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
452+ app : 'app-one-config-pr-1' ,
453+ config : '/apps/app-one/fly.toml' ,
454+ environment : 'preview' ,
455+ env : {
456+ ENV_KEY1 : 'env-value1' ,
457+ ENV_KEY2 : 'env-value2'
458+ }
459+ } satisfies DeployAppOptions ) ;
460+
461+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
462+ app : 'app-two-config-pr-1' ,
463+ config : '/apps/app-two/src/fly.toml' ,
464+ environment : 'preview' ,
465+ env : {
466+ ENV_KEY1 : 'env-value1' ,
467+ ENV_KEY2 : 'env-value2'
468+ }
469+ } satisfies DeployAppOptions ) ;
470+ } ) ;
471+
472+ it ( 'should deploy apps to preview with the same secrets' , async ( ) => {
473+ setContext ( 'pr-opened' ) ;
474+ setupMocks ( ) ;
475+ const config = setupTest ( {
476+ secrets : [ 'SECRET_KEY1=secret-value1' , 'SECRET_KEY2=secret-value2' ]
477+ } ) ;
478+ await flyDeployment ( config , true ) ;
479+
480+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
481+ app : 'app-one-config-pr-1' ,
482+ config : '/apps/app-one/fly.toml' ,
483+ environment : 'preview' ,
484+ secrets : {
485+ SECRET_KEY1 : 'secret-value1' ,
486+ SECRET_KEY2 : 'secret-value2'
487+ }
488+ } satisfies DeployAppOptions ) ;
489+
490+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
491+ app : 'app-two-config-pr-1' ,
492+ config : '/apps/app-two/src/fly.toml' ,
493+ environment : 'preview' ,
494+ secrets : {
495+ SECRET_KEY1 : 'secret-value1' ,
496+ SECRET_KEY2 : 'secret-value2'
497+ }
498+ } satisfies DeployAppOptions ) ;
499+ } ) ;
438500 } ) ;
439501
440502 describe ( 'destroy preview' , ( ) => {
@@ -594,6 +656,76 @@ describe('flyDeployment', () => {
594656 ]
595657 } satisfies ActionOutputs ) ;
596658 } ) ;
659+
660+ it ( 'should deploy apps to production with environment variables' , async ( ) => {
661+ setContext ( 'push-main-branch' ) ;
662+ setupMocks ( ) ;
663+ const config = setupTest ( {
664+ env : [
665+ 'ENV_KEY1=env"fnutt' ,
666+ 'ENV_KEY2=env space' ,
667+ 'ENV_KEY3=env\\backslash'
668+ ]
669+ } ) ;
670+ await flyDeployment ( config , true ) ;
671+
672+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
673+ app : 'app-one-config' ,
674+ config : '/apps/app-one/fly.toml' ,
675+ environment : 'production' ,
676+ env : {
677+ ENV_KEY1 : 'env"fnutt' ,
678+ ENV_KEY2 : 'env space' ,
679+ ENV_KEY3 : 'env\\backslash'
680+ }
681+ } satisfies DeployAppOptions ) ;
682+
683+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
684+ app : 'app-two-config' ,
685+ config : '/apps/app-two/src/fly.toml' ,
686+ environment : 'production' ,
687+ env : {
688+ ENV_KEY1 : 'env"fnutt' ,
689+ ENV_KEY2 : 'env space' ,
690+ ENV_KEY3 : 'env\\backslash'
691+ }
692+ } satisfies DeployAppOptions ) ;
693+ } ) ;
694+
695+ it ( 'should deploy apps to production with the same secrets' , async ( ) => {
696+ setContext ( 'push-main-branch' ) ;
697+ setupMocks ( ) ;
698+ const config = setupTest ( {
699+ secrets : [
700+ 'SECRET_KEY1=secret"fnutt' ,
701+ 'SECRET_KEY2=secret space' ,
702+ 'SECRET_KEY3=secret\\backslash'
703+ ]
704+ } ) ;
705+ await flyDeployment ( config , true ) ;
706+
707+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
708+ app : 'app-one-config' ,
709+ config : '/apps/app-one/fly.toml' ,
710+ environment : 'production' ,
711+ secrets : {
712+ SECRET_KEY1 : 'secret"fnutt' ,
713+ SECRET_KEY2 : 'secret space' ,
714+ SECRET_KEY3 : 'secret\\backslash'
715+ }
716+ } satisfies DeployAppOptions ) ;
717+
718+ expect ( getMockFly ( ) . deploy ) . toHaveBeenCalledWith ( {
719+ app : 'app-two-config' ,
720+ config : '/apps/app-two/src/fly.toml' ,
721+ environment : 'production' ,
722+ secrets : {
723+ SECRET_KEY1 : 'secret"fnutt' ,
724+ SECRET_KEY2 : 'secret space' ,
725+ SECRET_KEY3 : 'secret\\backslash'
726+ }
727+ } satisfies DeployAppOptions ) ;
728+ } ) ;
597729 } ) ;
598730
599731 describe ( 'error handling' , ( ) => {
0 commit comments