Spaces:
Sleeping
Sleeping
| 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.' | |
| } | |
| } | |
| } | |