Retour au blog
DevOps

Configuration de pipelines Jenkins

15 Jun 2024 9 min
Jenkins Pipeline CI/CD

Jenkins Pipeline : automatisation avancée

Jenkins reste une solution CI/CD populaire pour les organisations qui nécessitent un contrôle total sur leur infrastructure de build.

Pipeline déclaratif

pipeline {
    agent {
        docker {
            image 'php:8.3-cli'
        }
    }

    environment {
        APP_ENV = 'test'
        DATABASE_URL = credentials('database-url')
    }

    stages {
        stage('Install') {
            steps {
                sh 'composer install --prefer-dist'
            }
        }

        stage('Quality') {
            parallel {
                stage('PHPStan') {
                    steps {
                        sh 'vendor/bin/phpstan analyse src'
                    }
                }
                stage('CS Fixer') {
                    steps {
                        sh 'vendor/bin/php-cs-fixer fix --dry-run --diff'
                    }
                }
            }
        }

        stage('Test') {
            steps {
                sh 'php bin/phpunit --log-junit results.xml'
            }
            post {
                always {
                    junit 'results.xml'
                }
            }
        }

        stage('Deploy') {
            when {
                branch 'main'
            }
            steps {
                sh './deploy.sh production'
            }
        }
    }

    post {
        failure {
            slackSend channel: '#ci', message: "Build FAILED: ${env.JOB_NAME}"
        }
    }
}

Bonnes pratiques Jenkins

  • Utiliser des agents Docker pour l'isolation
  • Paralléliser les stages indépendants
  • Stocker les credentials dans Jenkins Credentials
  • Configurer les notifications pour les échecs
  • Archiver les artefacts de build