TP4 Parties 2-4 : pipeline.py (split -> train --register -> promote) + workflow Forgejo Actions (PR -> main) + requirements
This commit is contained in:
50
.forgejo/workflows/pipeline.yml
Normal file
50
.forgejo/workflows/pipeline.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
name: pipeline
|
||||
|
||||
# Partie 4 : le pipeline ML est rejoue automatiquement a chaque Pull Request
|
||||
# vers la branche principale (Q4.1). Autres declencheurs possibles (Q4.4) :
|
||||
# push sur main, tag de release, planification (schedule/cron), declenchement
|
||||
# manuel (workflow_dispatch).
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
train-and-register:
|
||||
runs-on: docker
|
||||
# Le runner (mode docker, reseau mlops-net) lance le job dans ce conteneur.
|
||||
# On y monte en lecture seule les donnees source du fil rouge et le magasin
|
||||
# de certificats du host (pour faire confiance a la CA interne ENI MLOps).
|
||||
container:
|
||||
image: node:20-bookworm
|
||||
volumes:
|
||||
- /data/modelling:/data/modelling:ro
|
||||
- /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro
|
||||
steps:
|
||||
- name: Recuperation du code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Installation de Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.14"
|
||||
|
||||
- name: Installation des dependances
|
||||
run: pip install -r requirements.txt
|
||||
|
||||
- name: Execution du pipeline (split -> train --register -> promote)
|
||||
run: python pipeline.py
|
||||
env:
|
||||
# Serveur MLflow (basic auth) : URLs HTTPS via Caddy, resolues sur mlops-net.
|
||||
MLFLOW_TRACKING_URI: ${{ secrets.MLFLOW_TRACKING_URI }}
|
||||
MLFLOW_TRACKING_USERNAME: ${{ secrets.MLFLOW_TRACKING_USERNAME }}
|
||||
MLFLOW_TRACKING_PASSWORD: ${{ secrets.MLFLOW_TRACKING_PASSWORD }}
|
||||
MLFLOW_EXPERIMENT_NAME: ${{ secrets.MLFLOW_EXPERIMENT_NAME }}
|
||||
# Artefacts sur S3 Garage (log_model).
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
MLFLOW_S3_ENDPOINT_URL: ${{ secrets.MLFLOW_S3_ENDPOINT_URL }}
|
||||
# CA interne ENI MLOps (requests/boto3 n'utilisent pas le store systeme par defaut).
|
||||
REQUESTS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt
|
||||
AWS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt
|
||||
# Import du package lab depuis la racine du depot.
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
Reference in New Issue
Block a user