I had something almost identical to this and it worked fine and now I get the below errors. I have parallel, steps and stages all there.
Error:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 23: Unknown stage section "sh". Starting with version 0.5, steps in a stage must be in a steps block. @ line 23, column 7.
         stage('build api image') {
         ^
WorkflowScript: 26: Unknown stage section "sh". Starting with version 0.5, steps in a stage must be in a steps block. @ line 26, column 7.
         stage('build view image') {
         ^
WorkflowScript: 20: No "steps" or "parallel" to execute within stage "gradle test" @ line 20, column 7.
         stage('gradle test') {
         ^
WorkflowScript: 23: No "steps" or "parallel" to execute within stage "build api image" @ line 23, column 7.
         stage('build api image') {
         ^
WorkflowScript: 26: No "steps" or "parallel" to execute within stage "build view image" @ line 26, column 7.
         stage('build view image') {
pipeline {
    agent any
    stages {
      stage('run test cases in modules') {
            steps {
              parallel(
              "Gradle clean": {
                  sh "./gradlew clean"
               },
                "api-service-tests": {
                  sh "./gradlew api:test"
                },
                "cache-api-tests": {
                  sh "./gradlew view:test"
                }
              )
            }
      }
      stage('gradle test') {
            // sh "./gradlew --no-daemon test"
      }
      stage('build api image') {
            sh "oc start-build cms-api --from-dir=api/docker --follow"
      }
      stage('build view image') {
            sh "oc start-build  --from-dir=view --follow"
      }
    }
}
Jenkins Pipeline allows you to compose multiple steps in an easy way that can help you model any sort of automation process. Think of a "step" like a single command which performs a single action. When a step succeeds it moves onto the next step. When a step fails to execute correctly the Pipeline will fail.
You are missing the steps directive inside of your other stage directives.
stage('gradle test') {
  // sh "./gradlew --no-daemon test"
}
Should be something more like:
stage('gradle test') {
  steps {
    sh "./gradlew --no-daemon test"
  }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With