Mise à jour du 08/10/2024 #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |