Skip to content

Ajout du 08/10/2024 #12

Ajout du 08/10/2024

Ajout du 08/10/2024 #12

Workflow file for this run

name: CICD Pipline
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
qa:
name: Build and test
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout on master
uses: actions/checkout@v3
# build and start docker services in background
- name: Build and start Docker Compose services
run: |
docker compose up -d --build
docker compose ps
# install dependencies for test
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# Trigger taining
- name: Trigger model retraining
run: |
curl -X POST http://localhost:8003/retrain
timeout-minutes: 120
# start test
- name: Run tests
run: |
pytest src/testing/
- name: Display logs if tests fail
if: failure()
run: docker compose logs
# stop and remove service
- name: Stop and remove Docker Compose services
run: docker compose down
deploy:
name: Deploy to Production
runs-on: ubuntu-latest
needs: qa
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build Docker images with Docker Compose
run: |
docker compose -f docker-compose.yml build
- name: Tag images for Docker Hub
run: |
docker tag mai24_mlops_accidents-api_gateway:latest saferoads/api_gateway:latest
docker tag mai24_mlops_accidents-prediction_service:latest saferoads/prediction_service:latest
docker tag mai24_mlops_accidents-retrain_service:latest saferoads/retrain_service:latest
docker tag mai24_mlops_accidents-monitoring_service:latest saferoads/monitoring_service:latest
- name: Push Docker images to Docker Hub
run: |
docker push saferoads/api_gateway:latest
docker push saferoads/prediction_service:latest
docker push saferoads/retrain_service:latest
docker push saferoads/monitoring_service:latest