Spaces:
Sleeping
A newer version of the Streamlit SDK is available:
1.54.0
title: Quality Air Streamlit App
emoji: 💨
colorFrom: green
colorTo: blue
sdk: streamlit
python_version: '3.9'
app_file: streamlit/Home.py
pinned: false
Guide de Configuration Jenkins et Pipeline CI/CD
📌 Introduction
Ce projet implémente un pipeline CI/CD dans Jenkins pour exécuter un processus ETL en conteneur Docker. Le pipeline inclut des tests unitaires et envoie les résultats sur AWS S3.
📂 Structure du projet
├── data/
│ ├── input_data.csv # Fichier d'entrée pour l'ETL
│ ├── sample_output_data.csv # Résultat attendu du processus ETL (échantillon)
│
├── jenkins/
│ └── Jenkinsfile # Pipeline Jenkins pour CI/CD
│
├── streamlit/
│ └── (streamlit files) # Each file corresponds to a panel in the streamlit app
│
├── tests/
│ ├── Dockerfile # Dockerfile pour lancer les tests
│ ├── requirements.txt # Dépendances spécifiques aux tests
│ ├── test_etl.py # Tests unitaires du pipeline ETL
│ └── upload_s3.py # Script d'upload de test vers S3
│
├── Dockerfile # Conteneurisation du projet principal
├── etl_process.py # Script principal du processus ETL
├── requirements.txt # Dépendances du projet
└── README.md # Documentation du projet
🚀 Étapes de configuration
1️⃣ Configuration de Jenkins
Assurez-vous que Jenkins est bien installé et fonctionne.
2️⃣ Ajout des Variables d'Environnement
Les variables AWS pour l'upload sur S3 doivent être ajoutées à Jenkins.
- Aller dans Jenkins → Manage Jenkins → Manage Credentials
- Sélectionnez (global) → Add Credentials
- Ajoutez les clés AWS en tant que Secret Text:
- AWS_ACCESS_KEY_ID et la nommer
aws-access-key - AWS_SECRET_ACCESS_KEY et la nommer
aws-secret-key
- AWS_ACCESS_KEY_ID et la nommer
- Ajoutez les clés Github en tant que SSH Username with private key:
- GITHUB_TOKEN et la nommer
github_token
- GITHUB_TOKEN et la nommer
Ou ajoutez-les directement dans Jenkins :
- Aller dans Jenkins → Manage Jenkins → Configure System
- Ajoutez sous Global Properties → Environment Variables :
AWS_ACCESS_KEY_ID = VOTRE_CLEAWS_SECRET_ACCESS_KEY = VOTRE_CLE_SECRETGITHUB_TOKEN = VOTRE_TOKEN
3️⃣ Configuration du Job Jenkins
- Créer un nouveau job Jenkins → Pipeline
- Sélectionner Pipeline Script from SCM
- Ajouter le repository GitHub contenant le
Jenkinsfile - Sauvegarder et exécuter
🏗️ Fonctionnement du Pipeline
🛠️ Étapes du Pipeline :
- Clone du repository : Récupère le code depuis GitHub.
- Exécution des tests :
- Lance les tests dans un conteneur Docker.
- Enregistre les résultats en XML.
- Envoie les résultats sur S3.
- Build de l'ETL :
- Construit l'image Docker pour l'ETL.
- Exécution de l'ETL :
- Monte les fichiers CSV et exécute le traitement.
- Sauvegarde le résultat dans
data/output_data.csv.
Ce pipeline CI/CD garantit l'intégration et le déploiement automatisé du processus ETL en utilisant Jenkins et Docker.
🔥 N'hésitez pas à adapter les configurations en fonction de votre environnement !
🏗️ A word on streamlit
To get the streamlit app to function on HuggingFace, we need to add the HF repo as an remote repository:
git remote set-url --add origin https://huggingface.co/spaces/martper56/streamlit_app
Then we need to push the code in the development branch as the main branch on streamlit:
git push -f https://huggingface.co/spaces/martper56/streamlit_app development:main