pipeline { agent any stages { stage('Checkout') { steps { echo 'Checking out...' } } stage('Build') { steps { parallel( gradle: { echo 'Running `gradle build`' sh '[ -e "build.gradle" ] && ./gradlew build || exit 0' }, npm: { echo 'Running `npm run build`' sh '[ -e "package.json" ] && sh npm run build || exit 0' } ) } } stage('Test') { steps { parallel( gradle: { echo 'Running `gradle test`' sh '[ -e "build.gradle" ] && ./gradlew test || exit 0' }, npm: { echo 'Running `npm run test`' sh '[ -e "package.json" ] && sh npm run build || exit 0' } ) } // TODO: only if reports exist //post { // success { // junit '**/target/surefire-reports/TEST-*.xml' // archiveArtifacts 'target/*.jar' // } //} } stage('Publish') { steps { parallel( docker: { echo 'Running `docker build .`' sh '[ -e Dockerfile ] && sh docker build . || exit 0' } ) } } } }