Advertisement
Guest User

Untitled

a guest
Jul 12th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. #!groovy
  2.  
  3. def lastCommitInfo = ""
  4. def skippingText = ""
  5. def commitContainsSkip = 0
  6. def slackMessage = ""
  7. def shouldBuild = false
  8.  
  9. def pollSpec = ""
  10.  
  11. if(env.BRANCH_NAME == "master") {
  12. pollSpec = "*/5 * * * *"
  13. } else if(env.BRANCH_NAME == "test") {
  14. pollSpec = "* * * * 1-5"
  15. }
  16.  
  17. pipeline {
  18. agent any
  19.  
  20. options {
  21. ansiColor("xterm")
  22. }
  23.  
  24. triggers {
  25. pollSCM ignorePostCommitHooks: true, scmpoll_spec: pollSpec
  26. }
  27.  
  28. stages {
  29. stage('Init') {
  30. steps {
  31. script {
  32. lastCommitInfo = sh(script: "git log -1", returnStdout: true).trim()
  33. commitContainsSkip = sh(script: "git log -1 | grep '.*\\[skip ci\\].*'", returnStatus: true)
  34.  
  35. if(commitContainsSkip == 0) {
  36. skippingText = "Skipping commit."
  37. env.shouldBuild = false
  38. currentBuild.result = "NOT_BUILT"
  39. }
  40.  
  41. slackMessage = "*${env.JOB_NAME}* *${env.BRANCH_NAME}* received a new commit. ${skippingText}\nHere is commmit info: ${lastCommitInfo}"
  42. }
  43. }
  44. }
  45.  
  46. stage('Send info to Slack') {
  47. steps {
  48. slackSend color: "#2222FF", message: slackMessage
  49. }
  50. }
  51.  
  52. stage('Run Unit and UI Tests') {
  53. when {
  54. expression {
  55. return env.shouldBuild != "false"
  56. }
  57. }
  58. steps {
  59. script {
  60. try {
  61. // Run all the tests
  62. } catch(exc) {
  63. currentBuild.result = "UNSTABLE"
  64. error('There are failed tests.')
  65. }
  66. }
  67. }
  68. }
  69.  
  70. stage('Build application for beta') {
  71. when {
  72. expression {
  73. return env.shouldBuild != "false"
  74. }
  75. }
  76. steps {
  77. // Steps for beta build
  78. }
  79. }
  80.  
  81. stage('Deploy to beta') {
  82. when {
  83. expression {
  84. return env.shouldBuild != "false"
  85. }
  86. }
  87. steps {
  88. // Build steps to deploy application to beta
  89. }
  90. }
  91.  
  92. stage('Build application for prod') {
  93. when {
  94. expression {
  95. return env.shouldBuild != "false" && env.BRANCH_NAME == "master"
  96. }
  97. }
  98. steps {
  99. // Build steps to build application for prod
  100. }
  101. }
  102.  
  103. stage('Send to Prod') {
  104. when {
  105. expression {
  106. return env.shouldBuild != "false" && env.BRANCH_NAME == "master"
  107. }
  108. }
  109. steps {
  110. // Steps to deploy application to prod
  111. }
  112. }
  113.  
  114. stage('Inform Slack for success') {
  115. when {
  116. expression {
  117. return env.shouldBuild != "false"
  118. }
  119. }
  120. steps {
  121. slackSend color: "good", message: "*${env.JOB_NAME}* *${env.BRANCH_NAME}* job is completed successfully"
  122. }
  123. }
  124. }
  125.  
  126. post {
  127. failure {
  128. slackSend color: "danger", message: "*${env.JOB_NAME}* *${env.BRANCH_NAME}* job is failed"
  129. }
  130. unstable {
  131. slackSend color: "danger", message: "*${env.JOB_NAME}* *${env.BRANCH_NAME}* job is unstable. Unstable means test failure, code violation etc."
  132. }
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement