Jenkinsfile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. node{
  2. stage('checkout'){
  3. deleteDir()
  4. checkout scm
  5. }
  6. stage('Stop Container'){
  7. //sh 'docker ps | grep "workflow_" -v | awk -F " " \'{if(NR>1)print $1}\' | xargs docker killdo | xargs docker rm || true'
  8. //sh 'docker system prune -f'
  9. sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
  10. sh 'docker system prune -f'
  11. }
  12. stage('Build Container')
  13. {
  14. imageApache=docker.build('server-apache-dev', '--no-cache -f build/docker/apache/Dockerfile .')
  15. imageSql=docker.build('server-mysql-dev', '--no-cache -f build/docker/mysql/Dockerfile .')
  16. containerMysql=imageSql.run('--name server-mysql-dev')
  17. containerApache=imageApache.run('-p 8080:80 --link server-mysql-dev:mysql')
  18. }
  19. stage('Waiting Container'){
  20. waitUntil{
  21. try{
  22. sh "docker exec ${containerApache.id} php -v"
  23. return true
  24. } catch(Exception $e){
  25. return false
  26. }
  27. }
  28. }
  29. stage('stage 1bis'){
  30. sh 'docker -v'
  31. sh 'docker ps'
  32. }
  33. stage('stage 2bis'){
  34. sh 'ls -ls'
  35. }
  36. stage('SonarQube analysis') {
  37. def scannerHome = tool 'sonar_scanner';
  38. withSonarQubeEnv('FatboarSonar')
  39. {
  40. // If you have configured more than one global server connection, you can specify its name
  41. //sh "${scannerHome}/bin/sonar-scanner -Dsonar.login=admin -Dsonar.password=admin" }
  42. sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=Fatboar_project -Dsonar.sources=. -Dsonar.host.url=https://sonarqube.foodgame.fr -Dsonar.login=admin -Dsonar.password=admin"
  43. }
  44. }
  45. }