Skip to content

api_backend streamlit #9

api_backend streamlit

api_backend streamlit #9

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python application
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
docker-compose-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: True
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Docker Compose Build and Push
run: |
docker compose build --no-cache
docker compose push
docker-pull-ec2:
needs: docker-compose-build
runs-on: ubuntu-latest
steps:
- name: Creating SSH Configuration File
env:
SSH_USER: ${{ secrets.SSH_USER }}
SSH_KEY: ${{ secrets.SSH_KEY }}
SSH_HOST: ${{ secrets.SSH_HOST }}
DOCKER_USER: ${{ secrets.DOCKER_HUB_USER }}
run: |
mkdir -p ~/.ssh/
echo "$SSH_KEY" > ~/.ssh/deployment.pem
chmod 600 ~/.ssh/deployment.pem
cat >> ~/.ssh/config <<END
Host deploy_ec2
HostName $SSH_HOST
User $SSH_USER
IdentityFile ~/.ssh/deployment.pem
StrictHostKeyChecking no
END
- name: Deploy to EC2
run: |
ssh deploy_ec2 "mkdir temp/"
ssh deploy_ec2 "git clone git@github.com:axeltanjung/telecom_pred.git temp/"
ssh deploy_ec2 "rsync -a ./temp/ ./ml_process_demo/"
ssh deploy_ec2 "rm -rf temp/"
ssh deploy_ec2 "cd ml_process_demo/ && git lfs pull"
ssh deploy_ec2 "cd ml_process_demo/ && sudo docker compose rm -sf api && sudo docker compose rm -sf streamlit"
ssh deploy_ec2 "cd ml_process_demo/ || sudo docker rmi axeltanjung/telecom_pred_api || sudo docker rmi axeltanjung/telecom_pred_streamlit"
ssh deploy_ec2 "cd ml_process_demo/ && sudo docker compose pull && sudo docker compose up -d"