adding workflow
Some checks failed
Build and Deploy Beta / build-and-push (push) Successful in 1m13s
Build and Deploy Beta / deploy (push) Failing after 3s

This commit is contained in:
vickytechkey 2026-08-09 08:59:16 +05:30
parent 772dfcec7a
commit eeb9a5ea7a
3 changed files with 94 additions and 124 deletions

View file

@ -0,0 +1,47 @@
name: Build and Deploy Beta
on:
push:
branches:
- beta
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install dependencies
run: |
apk add --no-cache aws-cli docker-cli
- name: Log in to Amazon ECR
run: |
aws ecr get-login-password --region ap-south-2 | docker login --username AWS --password-stdin 764709663363.dkr.ecr.ap-south-2.amazonaws.com
- name: Build and Push Docker Image
run: |
docker build -t 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:beta -t 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:${{ github.sha }} .
docker push 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:beta
docker push 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:${{ github.sha }}
deploy:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Deploy to Beta EC2
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.BETA_EC2_HOST }}
username: ${{ secrets.BETA_EC2_USERNAME }}
key: ${{ secrets.BETA_EC2_SSH_KEY }}
port: 22
script: |
command -v aws &> /dev/null || sudo snap install aws-cli --classic || (sudo apt-get update && sudo apt-get install -y unzip && curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" && unzip -q awscliv2.zip && sudo ./aws/install && rm -rf awscliv2.zip ./aws)
aws ecr get-login-password --region ap-south-2 | sudo docker login --username AWS --password-stdin 764709663363.dkr.ecr.ap-south-2.amazonaws.com
sudo docker pull 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:beta
sudo docker stop seller-central-backend-beta || true
sudo docker rm seller-central-backend-beta || true
sudo docker run -d --name seller-central-backend-beta -p 8080:8000 --restart always 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:beta
sudo docker image prune -a -f

View file

@ -0,0 +1,47 @@
name: Build and Deploy Production
on:
push:
branches:
- main
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install dependencies
run: |
apk add --no-cache aws-cli docker-cli
- name: Log in to Amazon ECR
run: |
aws ecr get-login-password --region ap-south-2 | docker login --username AWS --password-stdin 764709663363.dkr.ecr.ap-south-2.amazonaws.com
- name: Build and Push Docker Image
run: |
docker build -t 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:latest -t 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:${{ github.sha }} .
docker push 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:latest
docker push 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:${{ github.sha }}
deploy:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Deploy to Production EC2
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_SSH_KEY }}
port: 22
script: |
command -v aws &> /dev/null || sudo snap install aws-cli --classic || (sudo apt-get update && sudo apt-get install -y unzip && curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" && unzip -q awscliv2.zip && sudo ./aws/install && rm -rf awscliv2.zip ./aws)
aws ecr get-login-password --region ap-south-2 | sudo docker login --username AWS --password-stdin 764709663363.dkr.ecr.ap-south-2.amazonaws.com
sudo docker pull 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:latest
sudo docker stop seller-central-backend || true
sudo docker rm seller-central-backend || true
sudo docker run -d --name seller-central-backend -p 8090:8000 --restart always 764709663363.dkr.ecr.ap-south-2.amazonaws.com/seller-central-backend:latest
sudo docker image prune -a -f

View file

@ -1,124 +0,0 @@
when:
- event: [push]
branch: [main, beta]
steps:
# Build and Push for Production (main branch) using Kaniko (unprivileged)
- name: build-and-push-ecr-prod
image: woodpeckerci/plugin-kaniko
settings:
registry:
from_secret: aws_ecr_registry
repo:
from_secret: aws_ecr_repository
tags:
- latest
- ${CI_COMMIT_SHA:0:8}
environment:
AWS_ACCESS_KEY_ID:
from_secret: aws_access_key_id
AWS_SECRET_ACCESS_KEY:
from_secret: aws_secret_access_key
AWS_DEFAULT_REGION:
from_secret: aws_region
when:
- branch: main
# Build and Push for Beta (beta branch) using Kaniko (unprivileged)
- name: build-and-push-ecr-beta
image: woodpeckerci/plugin-kaniko
settings:
registry:
from_secret: aws_ecr_registry
repo:
from_secret: aws_ecr_repository
tags:
- beta
- ${CI_COMMIT_SHA:0:8}
environment:
AWS_ACCESS_KEY_ID:
from_secret: aws_access_key_id
AWS_SECRET_ACCESS_KEY:
from_secret: aws_secret_access_key
AWS_DEFAULT_REGION:
from_secret: aws_region
when:
- branch: beta
# Deploy to Production EC2
- name: deploy-prod
image: appleboy/drone-ssh
settings:
host:
from_secret: ec2_host
username:
from_secret: ec2_username
key:
from_secret: ec2_ssh_key
port: 22
envs:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- AWS_ECR_REGISTRY
- AWS_ECR_REPOSITORY
script:
- command -v aws &> /dev/null || sudo snap install aws-cli --classic || (sudo apt-get update && sudo apt-get install -y unzip && curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" && unzip -q awscliv2.zip && sudo ./aws/install && rm -rf awscliv2.zip ./aws)
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY aws ecr get-login-password --region $AWS_REGION | sudo docker login --username AWS --password-stdin $AWS_ECR_REGISTRY
- sudo docker pull $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest
- sudo docker stop seller-central-backend || true
- sudo docker rm seller-central-backend || true
- sudo docker run -d --name seller-central-backend -p 8090:8000 --restart always $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest
- sudo docker image prune -a -f
environment:
AWS_ACCESS_KEY_ID:
from_secret: aws_access_key_id
AWS_SECRET_ACCESS_KEY:
from_secret: aws_secret_access_key
AWS_REGION:
from_secret: aws_region
AWS_ECR_REGISTRY:
from_secret: aws_ecr_registry
AWS_ECR_REPOSITORY:
from_secret: aws_ecr_repository
when:
- branch: main
# Deploy to Beta EC2
- name: deploy-beta
image: appleboy/drone-ssh
settings:
host:
from_secret: beta_ec2_host
username:
from_secret: beta_ec2_username
key:
from_secret: beta_ec2_ssh_key
port: 22
envs:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- AWS_ECR_REGISTRY
- AWS_ECR_REPOSITORY
script:
- command -v aws &> /dev/null || sudo snap install aws-cli --classic || (sudo apt-get update && sudo apt-get install -y unzip && curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" && unzip -q awscliv2.zip && sudo ./aws/install && rm -rf awscliv2.zip ./aws)
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY aws ecr get-login-password --region $AWS_REGION | sudo docker login --username AWS --password-stdin $AWS_ECR_REGISTRY
- sudo docker pull $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:beta
- sudo docker stop seller-central-backend-beta || true
- sudo docker rm seller-central-backend-beta || true
- sudo docker run -d --name seller-central-backend-beta -p 8080:8000 --restart always $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:beta
- sudo docker image prune -a -f
environment:
AWS_ACCESS_KEY_ID:
from_secret: aws_access_key_id
AWS_SECRET_ACCESS_KEY:
from_secret: aws_secret_access_key
AWS_REGION:
from_secret: aws_region
AWS_ECR_REGISTRY:
from_secret: aws_ecr_registry
AWS_ECR_REPOSITORY:
from_secret: aws_ecr_repository
when:
- branch: beta