Skip to content
Snippets Groups Projects
Select Git revision
  • 5673ae79cb1d05e7ad633e31e058cbdcee43aeed
  • without_tipselection default
  • develop protected
  • fix/grafana-local-dashboard
  • wasp
  • fix/dashboard-explorer-freeze
  • master
  • feat/timerqueue
  • test/sync_debug_and_650
  • feat/sync_revamp_inv
  • wip/sync
  • tool/db-recovery
  • portcheck/fix
  • fix/synchronization
  • feat/new-dashboard-analysis
  • feat/refactored-analysis-dashboard
  • feat/new-analysis-dashboard
  • test/demo-prometheus-fpc
  • prometheus_metrics
  • wip/analysis-server
  • merge/fpc-test-value-transfer
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
28 results

Dockerfile

Blame
  • Jenkinsfile 4.00 KiB
    pipeline {
        agent any
        stages {
    // Liaison du pipeline au dépot scmmanager
    //        stage ('link') {
    //            agent any
    //            steps{
    //               checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'scmadmin', url: 'http://scm:8080/scm/repo/scmadmin/test/code/sources/master/']]])
    //               sh 'ls -l'
    //            }
    //
    //        }
            // Analyse statique du Dockerfile de test
            stage ('Test') {
                parallel {
    
                    stage ('Test Dockerfile') {
                            agent {
                                  docker {
                                      image 'docker.io/hadolint/hadolint:v2.12.0-alpine'
                                  }
                            }
            // Exécution des tests et création d'un fichier pour le stockage des tests et publication des résultats
                            steps {
                              sh 'touch hadolint.json'
                              sh 'find ./ -iname "Dockerfile" | xargs hadolint -f json | tee -a hadolint.json'
                              recordIssues qualityGates: [[threshold: 1, type: 'TOTAL', unstable: false]], tools: [hadoLint(pattern: 'hadolint.json')]
            // supression du fichier après publication
                              sh 'rm hadolint.json'
                            }
                        }
            // Exécution des analyses de qualité de code
                    stage ('tests statiques') {
            // Création d'un agent à partir de notre dockerfile d'intégration
                        agent {
                          dockerfile {
                            dir ''
                            filename 'Dockerfile'
                          }
                        }
                        steps {
                            echo "Réalisation des tests statiques"
                            sh 'flake8 --format=pylint > flake8_output.txt || true'
            // Publication des résultats
                            echo "Publication des erreurs"
                            recordIssues(tools: [flake8(pattern: 'flake8_output.txt')])
                            sh 'rm flake8_output.txt'
                        }
    
                    }
            // Exécution tes tests unitaires
                    stage ('tests unitaires') {
                        agent {
                          dockerfile {
                            dir ''
                            filename 'Dockerfile'
                          }
                        }
                        steps {
                            echo "Réalisation des tests unitaires"
            // Copie du résultat des tests dans le fichier output.xml et affichage de la couverture de code
                            sh 'pytest --cov=utilities  -v tests/ --junitxml=./xmlReport/output.xml'
            // Couverture de code dans le fichier coverage.xml
                            sh 'python -m coverage xml'
            // Plublication de la couverture de code avec cobertura
                            echo "publication couverture de code"
                            cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: 'coverage*.xml', conditionalCoverageTargets: '70, 0, 0', failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 0, 0', maxNumberOfBuilds: 0, methodCoverageTargets: '80, 0, 0', onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
            // Publication des tests unitaires
                            echo "Publication des tests unitaires"
                            xunit checksName: '', tools: [JUnit(excludesPattern: '', pattern: 'xmlReport/output.xml', stopProcessingIfError: true)]
                        }
                    }
                }
            }
            // Build et Déploiement de l'image de livraison sur le dépôt scm
    
            stage('Deploy') {
              agent any
                  steps {
                    script {
                      docker.build("test:${env.BUILD_ID}", "./app")
    //                  docker.withRegistry('http://localhost:5000') {
    //                    docker.build("test:${env.BUILD_ID}", "./app").push()
    //                  }
            }
          }
        }
    
        }
    }