This action deploys AWS SAM Stacks through yaml files.
Usage
name: "Deploy SAM Stack to Production" on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: node-version: '10.x' - run: for d in */ ; do cd $d && npm install --no-package-lock --loglevel=error && cd .. ; done - uses: r0zar/sam-deploy-action@v1.4 env: TEMPLATE: 'template.yaml' AWS_STACK_NAME: prod-${{ github.actor }}-resourceful AWS_REGION: 'us-east-1' AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEPLOY_BUCKET: ${{ secrets.AWS_DEPLOY_BUCKET }}
Environment Variables
TEMPLATE- [Optional]. YML file containing CloudFormation Stack.- Type:
string - Default:
template.yml
- Type:
CAPABILITIES- [Optional]. AWS Stack Capabilites.- Type:
string - Default:
CAPABILITY_IAM
- Type:
AWS_STACK_NAME- [Required]. The Stack name that is going to be published.- Type:
string
- Type:
AWS_REGION- [Required]. AWS Region where to deploy the CloudFormation Stack.- Type:
string
- Type:
AWS_ACCESS_KEY_ID- [Required]. AWS Access Key Id.- Type:
string
- Type:
AWS_SECRET_ACCESS_KEY- [Required]. AWS Secret Access Key.- Type:
string
- Type:
AWS_DEPLOY_BUCKET- [Required]. AWS S3 Bucket where the Stack package is going to be stored.- Type:
string
- Type:
AWS_BUCKET_PREFIX- [Optional]. S3 Bucket's folder where to upload the package.- Type:
string
- Type:
FORCE_UPLOAD- [Optional]. Whether to override existing packages in case they are an exact match.- Type:
boolean
- Type:
USE_JSON- [Optional]. Whether to use JSON instead of YML as the output template format.- Type:
boolean
- Type:
PARAMETER_OVERRIDES- [Optional]. Parameters to input in the template.- Type:
string | list[string] - Syntax:
AliasName=prodAliasName=prod ApiUrl=https://api.com/api/v1
- Type:
TAGS- [Optional]. Tags to assign.- Type:
string | list[string] - Syntax:
Environment=prodName=infrastructure
- Type:
Examples
- An implementation example can be found here.
License
The Dockerfile and associated scripts and documentation in this project are released under the MIT License.