Jenkinsfile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. pipeline {
  2. agent {
  3. node {
  4. label 'jenkins-agent-web'
  5. customWorkspace '/workspace'
  6. }
  7. }
  8. options {
  9. timestamps()
  10. timeout(time: 15, unit: 'MINUTES')
  11. }
  12. environment {
  13. BRANCH_NAME = "${env.CHANGE_BRANCH ? env.CHANGE_BRANCH : env.BRANCH_NAME}"
  14. JENKINS_BUILD_NUMBER = "${BUILD_NUMBER}"
  15. BUILD_NUMBER = "${SHORT_SHA}_${BUILD_NUMBER}"
  16. COMMIT_SHA = "${GIT_COMMIT}"
  17. SHORT_SHA = "${GIT_COMMIT.take(7)}"
  18. }
  19. stages {
  20. stage('Stage 1') {
  21. parallel {
  22. stage('Build') {
  23. steps {
  24. dir('services/git-bridge') {
  25. sh 'make refresh_cache -j2'
  26. retry(count: 3) {
  27. sh 'make docker_build_base'
  28. }
  29. }
  30. }
  31. }
  32. }
  33. }
  34. stage('Stage 2') {
  35. parallel {
  36. stage('Build production and push') {
  37. steps {
  38. dir('services/git-bridge') {
  39. retry(count: 3) {
  40. sh 'make docker_build'
  41. }
  42. sh 'make push_branch'
  43. }
  44. }
  45. }
  46. stage('Format Java') {
  47. steps {
  48. dir('services/git-bridge') {
  49. sh 'make docker_format'
  50. }
  51. }
  52. }
  53. stage('Test') {
  54. steps {
  55. dir('services/git-bridge') {
  56. retry(count: 3) {
  57. sh 'make docker_test'
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }
  64. stage('Push Production') {
  65. steps {
  66. dir('services/git-bridge') {
  67. sh 'make push'
  68. }
  69. }
  70. }
  71. }
  72. post {
  73. // Collect junit test results for both success and failure case.
  74. always {
  75. junit checksName: 'git-bridge test results', testResults: 'services/git-bridge/target/surefire-reports/*.xml'
  76. }
  77. cleanup {
  78. dir('services/git-bridge') {
  79. sh 'make clean_ci'
  80. }
  81. sh 'make clean_jenkins -j10'
  82. }
  83. }
  84. }