widdix / aws-cloudformation-github-deploy

Deploys AWS CloudFormation Stacks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deploy CloudFormation Stack(s) for GitHub Actions

Deploys AWS CloudFormation stacks.

Usage

To deploy a single stack:

- uses: widdix/aws-cloudformation-github-deploy@v3
  with:
    name: StackA
    template: a.yaml
    parameter-overrides: Param1=a1,Param2=a2

To dedploy multiple stacks in parallel:

- uses: widdix/aws-cloudformation-github-deploy@v3
  with:
    name: |
      StackA
      StackB
    template: |
      a.yaml
      b.yaml
    parameter-overrides: |
      MyParam1=a1,MyParam2=a2
      MyParam1=b1

To dedploy multiple stacks in parallel using the same settings for all stacks:

- uses: widdix/aws-cloudformation-github-deploy@v3
  with:
    name: |
      StackA
      StackB
      StackC
    template: |
      a.yaml
      b.yaml
      c.yaml
    disable-rollback: "1" # applies to all three stacks

To dedploy multiple stacks in parallel passing in no values for a specific stack using a empty line:

- uses: widdix/aws-cloudformation-github-deploy@v3
  with:
    name: |
      StackA
      StackB
      StackC
    template: |
      a.yaml
      b.yaml
      c.yaml
    parameter-overrides: |
      Param1=a1,MyParam2=a2
      
      Param1=c1

The action can be passed a CloudFormation Stack name and a template file. The template file can be a local file existing in the working directory, or a URL to template that exists in an Amazon S3 bucket. It will create the Stack if it does not exist, or create a Change Set to update the Stack.

See action.yml for the full documentation for this action's inputs and outputs.

Example

name: Deploy

on: [push]

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: aws-actions/configure-aws-credentials@v4
      with:
        # ...
        aws-region: us-east-1
    - id: core
      uses: widdix/aws-cloudformation-github-deploy@v3
      with:
        name: StackA
        template: a.yaml
        parameter-overrides: Param1=a1,MyParam2=a2
    - uses: widdix/aws-cloudformation-github-deploy@v3
      with:
        name: |
          StackB
          StackC
        template: |
          b.yaml
          c.yaml
        parameter-overrides: |
          
          Param1=${{ steps.core.outputs.StackA_output_AlertTopicArn }}

About

Deploys AWS CloudFormation Stacks

License:MIT License


Languages

Language:TypeScript 98.0%Language:JavaScript 2.0%