streamlit_app / jenkins /Jenkinsfile
p2ov's picture
ajout du token github en parametre dans Jenkins
4e1d0e4
pipeline {
agent any
environment {
TEST_IMAGE = 'air-quality-tests'
APP_IMAGE = 'air-quality-app'
AWS_ACCESS_KEY_ID = credentials('aws-access-key')
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-key')
AWS_DEFAULT_REGION = 'eu-central-1'
}
stages {
stage('Clone Repository') {
steps {
git branch: 'main',
url: 'git@github.com:devpoov/quality-air.git',
credentialsId: 'github_token'
}
}
stage('Build Test Container') {
steps {
sh 'docker build -t ${TEST_IMAGE} -f tests/Dockerfile .'
}
}
stage('Run Unit Tests') {
steps {
sh '''
docker run --rm \
--env AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \
--env AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \
--env AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} \
${TEST_IMAGE}
'''
}
}
stage('Build App Container') {
steps {
sh 'docker build -t ${APP_IMAGE} .'
}
}
stage('Run App in Docker') {
steps {
script {
sh '''
docker run --rm \
-v ${WORKSPACE}/data:/app/data \
${APP_IMAGE}
'''
sh 'ls -l ${WORKSPACE}/data'
}
}
}
}
post {
success {
echo '✅ App Pipeline completed successfully!'
archiveArtifacts artifacts: 'data/output_data.csv', fingerprint: true
}
failure {
echo '❌ App Pipeline failed.'
}
}
}