Skip to content

ssh check for CD

ssh check for CD #9

Workflow file for this run

name: CI/CD
on:
push:
branches:
- fixes/cleanup-1
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.12'
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Lint Code
run: pylint app.py || true
- name: Login to Amazon ECR
uses: aws-actions/amazon-ecr-login@v2
env:
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Build and Push Backend Docker Image
env:
IMAGE_TAG: ${{ github.sha }}
run: |
BACKEND_IMAGE_URI="${{ secrets.BACKEND_ECR }}:${{ env.IMAGE_TAG }}"
docker build -t $BACKEND_IMAGE_URI -f ./Dockerfile ./
docker push $BACKEND_IMAGE_URI
- name: Build and Push Frontend Docker Image
env:
IMAGE_TAG: ${{ github.sha }}
run: |
FRONTEND_IMAGE_URI="${{ secrets.FRONTEND_ECR }}:${{ env.IMAGE_TAG }}"
docker build -t $FRONTEND_IMAGE_URI -f ./frontend/Dockerfile ./frontend
docker push $FRONTEND_IMAGE_URI
deploy:
runs-on: ubuntu-latest
steps:
- name: Set up environment variables
run: |
echo "BACKEND_ECR=${{ secrets.BACKEND_ECR }}" >> $GITHUB_ENV
echo "FRONTEND_ECR=${{ secrets.FRONTEND_ECR }}" >> $GITHUB_ENV
echo "IMAGE_TAG=${{ github.sha }}" >> $GITHUB_ENV
- name: Deploy via SSH
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_INSTANCE_IP }}"
export BACKEND_ECR=${{ secrets.BACKEND_ECR }};
export FRONTEND_ECR=${{ secrets.FRONTEND_ECR }};
export IMAGE_TAG=${{ github.sha }};
docker-compose pull;
docker-compose up -d"
env:
BACKEND_ECR: ${{ secrets.BACKEND_ECR }}
FRONTEND_ECR: ${{ secrets.FRONTEND_ECR }}
IMAGE_TAG: ${{ github.sha }}