Skip to content

Deploy a Python project in EC2 (AWS) with GitHub Actions (CI/CD) and Terraform.

Notifications You must be signed in to change notification settings

carloscatalanl/python-pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Pipeline

Flask App Workflow using GitHub Actions and Terraform.

Test the code, build a Docker image, push to Docker Repo and deploy on a EC2 (AWS) instance.

Prerequisites

  • terraform (version used v0.13.4)
  • AWS account
  • EC2 Instance running
  • Docker Hub Repo

On ~/.aws/credentials

[default]
aws_access_key_id=YOUR_ACCESS_KEY_ID
aws_secret_access_key=YOUR_SECRET_ACCESS_KEY

On settings/secrets

HOST = ssh host
USERNAME = ssh user name
KEY = content of ssh private key (cat ./terraform/private/key_access.pem)
DOCKER_USERNAME
DOCKER_PASSWORD

On .github/workflow/push.yml

image: docker-user/docker-repo

Deploy infrastructure

./deploy.sh

Connecting to your Linux instance using SSH

ssh -i ./terraform/private/key_access.pem -A ubuntu@[instance IP]

Destroy infrastructure

./down.sh

Deploy CI/CD

On main branch...

git push

Authors

About

Deploy a Python project in EC2 (AWS) with GitHub Actions (CI/CD) and Terraform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published