Skip to content

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and Push Images using Docker Compose
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
MONGO_DBNAME: ${{ secrets.MONGO_DBNAME }}
MONGO_URI: ${{ secrets.MONGO_URI }}
FLASK_APP: ${{ secrets.FLASK_APP }}
APP_SECRET_KEY: ${{ secrets.APP_SECRET_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
HOST: ${{ secrets.HOST }}
run: |
docker-compose build
docker-compose push
working-directory: ./
deploy:
needs: build-and-push
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Deploy to DigitalOcean
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DROPLET_IP }}
username: ${{ secrets.DROPLET_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd 4-containerized-app-exercise-wacotacotruck/
docker container prune -f
docker image prune -f
docker volume prune -f
docker-compose pull
docker-compose down
docker-compose up -d