Follow

Follow
Using GitHub actions - Deploy to AWS & SNS Publish

Using GitHub actions - Deploy to AWS & SNS Publish

Jones Zachariah Noel N's photo
Jones Zachariah Noel N
ยทDec 4, 2021ยท

3 min read

Play this article

GitHub actions enables developers/DevOps engineers to smartly incorporate CI/CD pipelines, perform tasks on actions on different branches and many more things. In the blog, we will look into GitHub actions which uses two workflows -

  1. SAM Pipeline to deploy to AWS environments
  2. SNS Publish on commits / delete branch

This helps in deploying SAM applications to AWS with Pipeline to ensure multiple staging environments to be deployed and handle feature branches. Along with it, you can do more things on AWS end of there is a event trigger via SNS to process each commit action.


My Workflow

SAM Pipeline to deploy to AWS environments

SAM Pipeline enables leveraging SAM and GitHub actions to deploy your Serverless application to AWS environment. This leverages sam build and sam deploy commands performed via SAM CLI in the GitHub actions (Ubuntu) environment. The workflow defines jobs for -

  • test : Checking if the GitHub event is push.
  • delete-feature : If the GitHub event is delete on a feature branch with the name starting with feature-*, it deletes that particular feature branch with sam delete.
  • build-and-deploy-feature : If the GitHub event is push on a feature branch with the name starting with feature-*, it deploys the app to AWS with the code from feature branch with sam deploy.
  • build-and-package : If the GitHub event is push on a main branch, it packages the the app for two stages - dev and prod and uploads the artifacts zip files to S3 bucket with sam package command.
  • deploy-testing : The code will use the Stage 1 - dev and deploys the Serverless application to AWS with sam deploy.
  • integration-test : If the branch is main, you can run specific integration tests via bash scripts. And if the tests are passed, it proceeds to the next step.
  • deploy-prod : If the integration tests are passed, the complete code from main branch is deployed to AWS with sam deploy.

SAM Pipeline Action details

SNS Publish on commits / delete branch

The workflow is used to notify with AWS Simple Notification Service (SNS) by pushing to a SNS topic. This workflow uses Danushka96/sns-action@v2 which performs SNS:PUBLISH to send message to the SNS topic.

SNS Publish Action description


Submission Category:

DIY Deployments which eases deployment of SAM app via SAM Pipelines and also using SNS publish, we can get creative with ways of additional workflows on AWS to be triggered.


The blog post implementation of 2 workflows is implemented with pipeline.yaml and sns.yml

{% github zachjonesnoel/sam-github-actions/ %}


Additional Resources / Info

This project uses several GitHub actions -

ย 
Share this