Jenkinsfile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. retry(count: 3) {
  26. sh 'make docker_build_base'
  27. }
  28. }
  29. }
  30. }
  31. }
  32. }
  33. stage('Stage 2') {
  34. parallel {
  35. stage('Build production and push') {
  36. steps {
  37. dir('services/git-bridge') {
  38. retry(count: 3) {
  39. sh 'make docker_build'
  40. }
  41. sh 'make push_branch'
  42. }
  43. }
  44. }
  45. stage('Format Java') {
  46. steps {
  47. dir('services/git-bridge') {
  48. sh 'make docker_format'
  49. }
  50. }
  51. }
  52. stage('Test') {
  53. steps {
  54. dir('services/git-bridge') {
  55. retry(count: 3) {
  56. sh 'make docker_test'
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. stage('Push Production') {
  64. steps {
  65. dir('services/git-bridge') {
  66. sh 'make push'
  67. }
  68. }
  69. }
  70. }
  71. post {
  72. // Collect junit test results for both success and failure case.
  73. always {
  74. junit checksName: 'git-bridge test results', testResults: 'services/git-bridge/target/surefire-reports/*.xml'
  75. }
  76. cleanup {
  77. dir('services/git-bridge') {
  78. sh 'make clean_ci'
  79. }
  80. sh 'make clean_jenkins -j10'
  81. }
  82. }
  83. }