# # ATTENTION: This file is part of the API, breaking changes here directly affect the consumers of the library. # Please avoid breaking changes if possible. # #Project Setup general: collectTelemetryData: true logFormat: 'plain' changeManagement: type: 'NONE' # SOLMAN, CTS, NONE transportRequestLabel: 'TransportRequest\s?:' changeDocumentLabel: 'ChangeDocument\s?:' clientOpts: '' credentialsId: 'CM' git: from: 'origin/master' to: 'HEAD' format: '%b' solman: docker: image: 'ppiper/cm-client' options: [] envVars: {} pullImage: true cts: osDeployUser: 'node' deployToolDependencies: - '@ui5/cli' - '@sap/ux-ui5-tooling' - '@ui5/logger' - '@ui5/fs' deployConfigFile: 'ui5-deploy.yaml' nodeDocker: image: 'node' options: [] envVars: {} pullImage: true docker: image: 'ppiper/cm-client' options: [] envVars: {} pullImage: true rfc: docker: image: 'rfc' options: [] envVars: {} pullImage: true githubApiUrl: 'https://api.github.com' githubServerUrl: 'https://github.com' gitSshKeyCredentialsId: '' #needed to allow sshagent to run with local ssh key globalExtensionsDirectory: '.pipeline/tmp/global_extensions/' jenkinsKubernetes: jnlpAgent: 'ppiper/jenkins-agent-k8s:v8' securityContext: # Setting security context globally is currently not working with jaas # runAsUser: 1000 # fsGroup: 1000 manualConfirmation: true manualConfirmationMessage: 'Shall we proceed to Promote & Release?' manualConfirmationTimeout: 720 # 1 month productiveBranch: 'master' whitesource: serviceUrl: 'https://saas.whitesourcesoftware.com/api' dockerPullImage: true sidecarPullImage: true #Steps Specific Configuration steps: artifactSetVersion: timestampTemplate: '%Y%m%d%H%M%S' tagPrefix: 'build_' commitVersion: true gitPushMode: 'SSH' verbose: false gitHttpsCredentialsId: 'git' gitDisableSslVerification: false dub: filePath: 'dub.json' versioningTemplate: '${version}-${timestamp}${commitId?"+"+commitId:""}' docker: filePath: 'Dockerfile' versioningTemplate: '${version}-${timestamp}${commitId?"_"+commitId:""}' golang: filePath: 'VERSION' versioningTemplate: '${version}-${timestamp}${commitId?"+"+commitId:""}' maven: filePath: 'pom.xml' versioningTemplate: '${version}-${timestamp}${commitId?"_"+commitId:""}' mta: filePath: 'mta.yaml' versioningTemplate: '${version}-${timestamp}${commitId?"+"+commitId:""}' npm: filePath: 'package.json' versioningTemplate: '${version}-${timestamp}${commitId?"+"+commitId:""}' pip: filePath: 'version.txt' versioningTemplate: '${version}.${timestamp}${commitId?"."+commitId:""}' sbt: filePath: 'sbtDescriptor.json' versioningTemplate: '${version}-${timestamp}${commitId?"+"+commitId:""}' batsExecuteTests: dockerImage: 'node:lts-stretch' dockerWorkspace: '/home/node' envVars: {} outputFormat: 'junit' # tap, junit testPath: 'src/test' failOnError: false repository: 'https://github.com/bats-core/bats-core.git' stashContent: - 'tests' testPackage: 'piper-bats' checksPublishResults: failOnError: false tasks: pattern: '**/*.java' low: '' normal: 'TODO,REVISE,XXX' high: 'FIXME' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false pmd: pattern: '**/target/pmd.xml' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false cpd: pattern: '**/target/cpd.xml' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false findbugs: pattern: '**/target/findbugsXml.xml, **/target/findbugs.xml' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false checkstyle: pattern: '**/target/checkstyle-result.xml' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false eslint: pattern: '**/eslint.xml' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false pylint: pattern: '**/pylint.log' archive: true active: false qualityGates: - threshold: 1 type: 'TOTAL_HIGH' unstable: false - threshold: 1 type: 'TOTAL_ERROR' unstable: false archive: false cloudFoundryDeploy: cloudFoundry: apiEndpoint: 'https://api.cf.eu10.hana.ondemand.com' apiParameters: '' loginParameters: '' deployType: 'standard' keepOldInstance: false cfNativeDeployParameters: '' mtaDeployParameters: '-f' mtaExtensionDescriptor: '' mtaPath: '' smokeTestScript: 'blueGreenCheckScript.sh' smokeTestStatusCode: 200 stashContent: - 'deployDescriptor' - 'pipelineConfigAndTests' cf_native: dockerImage: 'ppiper/cf-cli:6' dockerWorkspace: '/home/piper' mtaDeployPlugin: dockerImage: 'ppiper/cf-cli:6' dockerWorkspace: '/home/piper' mta: deployTool: 'mtaDeployPlugin' maven: deployTool: 'cf_native' npm: deployTool: 'cf_native' docker: deployTool: 'cf_native' kaniko: deployTool: 'cf_native' containerExecuteStructureTests: containerCommand: '/busybox/tail -f /dev/null' containerShell: '/busybox/sh' dockerImage: 'ppiper/container-structure-test' dockerOptions: "-u 0 --entrypoint=''" failOnError: true stashContent: - 'tests' testReportFilePath: 'cst-report.json' debugReportArchive: shareConfidentialInformation: false dockerExecute: stashContent: [] dockerExecuteOnKubernetes: stashContent: [] stashIncludes: workspace: '**/*' stashExcludes: workspace: 'nohup.out' dubExecute: dockerImage: 'dlang2/dmd-ubuntu:latest' githubPublishRelease: addClosedIssues: false addDeltaToLastRelease: false customFilterExtension: '' excludeLabels: - 'duplicate' - 'invalid' - 'question' - 'wontfix' gatlingExecuteTests: stashContent: - 'source' gaugeExecuteTests: buildTool: 'maven' dockerEnvVars: HUB: 'TRUE' HUB_URL: 'http://localhost:4444/wd/hub' failOnError: false installCommand: 'curl -SsL https://downloads.gauge.org/stable | sh -s -- --location=$HOME/bin/gauge' stashContent: - 'buildDescriptor' - 'tests' maven: dockerImage: 'maven:3.5-jdk-8' dockerName: 'maven' dockerWorkspace: '' languageRunner: 'java' runCommand: 'mvn test-compile gauge:execute' testOptions: '-DspecsDir=specs' npm: dockerImage: 'node:lts-stretch' dockerName: 'npm' dockerWorkspace: '/home/node' languageRunner: 'js' runCommand: 'gauge run' testOptions: 'specs' bundler: dockerImage: 'ruby:2.5.3-stretch' dockerName: 'bundler' dockerWorkspace: '' languageRunner: 'ruby' runCommand: 'bundle install && bundle exec gauge run' testOptions: 'specs' hadolintExecute: qualityGates: - threshold: 1 type: 'TOTAL_ERROR' unstable: false reportFile: 'hadolint.xml' reportName: 'HaDoLint' stashContent: - 'buildDescriptor' handlePipelineStepErrors: echoDetails: true failOnError: true libraryDocumentationUrl: 'https://sap.github.io/jenkins-library/' libraryRepositoryUrl: 'https://github.com/SAP/jenkins-library/' mandatorySteps: [] stepTimeouts: {} healthExecuteCheck: healthEndpoint: '' influxWriteData: influxServer: '' karmaExecuteTests: containerPortMappings: 'node:lts-stretch': - containerPort: 9876 hostPort: 9876 dockerEnvVars: NO_PROXY: 'localhost,selenium,$NO_PROXY' no_proxy: 'localhost,selenium,$no_proxy' dockerImage: 'node:lts-stretch' dockerName: 'karma' dockerWorkspace: '/home/node' installCommand: 'npm install --quiet' modules: - '.' runCommand: 'npm run karma' sidecarEnvVars: NO_PROXY: 'localhost,karma,$NO_PROXY' no_proxy: 'localhost,karma,$no_proxy' stashContent: - buildDescriptor - tests mailSendNotification: notificationAttachment: true notifyCulprits: true numLogLinesInBody: 100 wrapInNode: false mavenExecute: dockerImage: 'maven:3.5-jdk-7' logSuccessfulMavenTransfers: false buildExecute: npmInstall: true npmRunScripts: [] neoDeploy: dockerImage: 'ppiper/neo-cli' deployMode: 'mta' warAction: 'deploy' extensions: [] mavenDeploymentModule: '.' neo: size: 'lite' credentialsId: 'CI_CREDENTIALS_ID' credentialType: 'UsernamePassword' portalLandscape: "cloudnwcportal" multicloudDeploy: cfTargets: [] neoTargets: [] enableZeroDowntimeDeployment: false parallelExecution: false npmExecute: dockerImage: 'node:lts-stretch' npmExecuteScripts: install: true whitesourceExecuteScan: vulnerabilityReportFileName: 'piper_whitesource_vulnerability_report' stashExcludes: stashBack: '.pipeline/** whitesourceExecuteScan_*.* whitesource-reports/**' pipelineExecute: branch: 'master' path: 'Jenkinsfile' credentialsId: '' pipelineRestartSteps: sendMail: true timeoutInSeconds: 900 stepMessage: 'Do you want to restart?' pipelineStashFilesAfterBuild: stashIncludes: buildResult: '**/target/*.war, **/target/*.jar, **/*.mtar, **/*.jar.original' checkmarx: '**/*.js, **/*.scala, **/*.py, **/*.go, **/*.d, **/*.di, **/*.xml, **/*.html' classFiles: '**/target/classes/**/*.class, **/target/test-classes/**/*.class' sonar: '**/jacoco*.exec, **/sonar-project.properties' stashExcludes: buildResult: '' checkmarx: '**/*.mockserver.js, node_modules/**/*.js' classFiles: '' sonar: '' noDefaultExludes: [] pipelineStashFilesBeforeBuild: stashIncludes: buildDescriptor: '**/pom.xml, **/.mvn/**, **/assembly.xml, **/.swagger-codegen-ignore, **/package.json, **/requirements.txt, **/setup.py, **/mta*.y*ml, **/.npmrc, **/Dockerfile, .hadolint.yaml, **/VERSION, **/version.txt, **/Gopkg.*, **/dub.json, **/dub.sdl, **/build.sbt, **/sbtDescriptor.json, **/project/*, **/ui5.yaml, **/ui5.yml' deployDescriptor: '**/manifest*.y*ml, **/*.mtaext.y*ml, **/*.mtaext, **/xs-app.json, helm/**, *.y*ml' git: '.git/**' opensourceConfiguration: '**/srcclr.yml, **/vulas-custom.properties, **/.nsprc, **/.retireignore, **/.retireignore.json, **/.snyk, **/wss-unified-agent.config, **/vendor/**/*' pipelineConfigAndTests: '.pipeline/**' securityDescriptor: '**/xs-security.json' tests: '**/pom.xml, **/*.json, **/*.xml, **/src/**, **/node_modules/**, **/specs/**, **/env/**, **/*.js, **/tests/**, **/*.html, **/*.css, **/*.properties' stashExcludes: buildDescriptor: '**/node_modules/**/package.json' deployDescriptor: '' git: '' opensourceConfiguration: '' pipelineConfigAndTests: '' securityDescriptor: '' tests: '' noDefaultExludes: - 'git' piperPublishWarnings: parserId: piper parserName: Piper parserPattern: '\[(INFO|WARNING|ERROR)\] (.*) \(([^) ]*)\/([^) ]*)\)' parserScript: 'return builder.guessSeverity(matcher.group(1)).setMessage(matcher.group(2)).setModuleName(matcher.group(3)).setType(matcher.group(4)).buildOptional()' recordIssuesSettings: blameDisabled: true enabledForFailure: true seleniumExecuteTests: buildTool: 'npm' containerPortMappings: 'selenium/standalone-chrome': - containerPort: 4444 hostPort: 4444 failOnError: true sidecarImage: 'selenium/standalone-chrome' sidecarName: 'selenium' sidecarVolumeBind: '/dev/shm': '/dev/shm' stashContent: - 'tests' maven: dockerImage: 'maven:3.5-jdk-8' dockerName: 'maven' dockerWorkspace: '' npm: dockerImage: 'node:lts-stretch' dockerName: 'npm' dockerWorkspace: '/home/node' bundler: dockerImage: 'ruby:2.5.3-stretch' dockerName: 'bundler' dockerWorkspace: '' slackSendNotification: color: "${['SUCCESS': '#8cc04f', 'FAILURE': '#d54c53', 'ABORTED': '#949393', 'UNSTABLE': '#f6b44b', 'PAUSED': '#24b0d5', 'UNKNOWN': '#d54cc4'].get(buildStatus, '#d54cc4')}" defaultMessage: "${buildStatus}: Job ${env.JOB_NAME} <${env.BUILD_URL}|#${env.BUILD_NUMBER}>" snykExecute: buildDescriptorFile: './package.json' dockerImage: 'node:lts-stretch' exclude: [] monitor: true scanType: 'npm' stashContent: - 'buildDescriptor' - 'opensourceConfiguration' toJson: false toHtml: false spinnakerTriggerPipeline: certFileCredentialsId: 'spinnaker-client-certificate' keyFileCredentialsId: 'spinnaker-client-key' timeout: 60 testsPublishResults: failOnError: false junit: pattern: '**/TEST-*.xml' updateResults: false allowEmptyResults: true archive: false active: false jacoco: pattern: '**/target/*.exec' allowEmptyResults: true archive: false active: false cobertura: pattern: '**/target/coverage/**/cobertura-coverage.xml' onlyStableBuilds: true allowEmptyResults: true archive: false active: false jmeter: pattern: '**/*.jtl' errorFailedThreshold: 20 errorUnstableThreshold: 10 errorUnstableResponseTimeThreshold: '' relativeFailedThresholdPositive: 0 relativeFailedThresholdNegative: 0 relativeUnstableThresholdPositive: 0 relativeUnstableThresholdNegative: 0 modeOfThreshold: false modeThroughput: false nthBuildNumber: 0 configType: 'PRT' failBuildIfNoResultFile: false compareBuildPrevious: true allowEmptyResults: true archive: false active: false cucumber: pattern: '**/e2e/*.json' allowEmptyResults: true archive: false active: false htmlPublisher: allowMissing: true alwaysLinkToLastBuild: false keepAll: true reportDir: "" pattern: "**/reports/coverage-reports/**/index.html" reportName: "Results" active: false checkChangeInDevelopment: failIfStatusIsNotInDevelopment: true tmsUpload: namedUser: 'Piper-Pipeline' mtaVersion: '*' stashContent: - 'buildResult' transportRequestCreate: developmentSystemId: null verbose: false transportRequestUploadFile: acceptUnixStyleLineEndings: true codePage: 'UTF-8' failOnWarning: true verbose: false transportRequestRelease: verbose: false writeTemporaryCredentials: credentialsDirectories: - './' - 'integration-tests/src/test/resources' #defaults for stage wrapper piperStageWrapper: projectExtensionsDirectory: '.pipeline/extensions/' stageLocking: true nodeLabel: '' stashContent: - 'pipelineConfigAndTests' xsDeploy: credentialsId: 'XS' deployIdLogPattern: '^.*"xs bg-deploy -i (.*) -a .*".*$' loginOpts: '' deployOpts: '' dockerPullImage: false docker: dockerImage: '' dockerPullImage: false mode: 'DEPLOY' action: 'NONE' xsSessionFile: '.xsconfig' piperPipelineStageInit: stepMappings: checkmarx: 'checkmarxExecuteScan' fortify: 'fortifyExecuteScan' karma: 'karmaExecuteTests' whitesource: 'whitesourceExecuteScan' labelPrefix: pr_