Add initial build scripts

Signed-off-by: stevenhorsman <steven@uk.ibm.com>
This commit is contained in:
stevenhorsman
2020-07-24 17:09:19 +01:00
committed by Nakul Manchanda
parent 9a777c2abc
commit 99c6ae44a1
7 changed files with 215 additions and 4 deletions

113
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,113 @@
#!groovy
/**
* This program and the accompanying materials are made available under the terms of the
* Eclipse Public License v2.0 which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-v20.html
*
* SPDX-License-Identifier: EPL-2.0
*
* Copyright IBM Corporation 2020
*/
node('ibm-jenkins-slave-dind') {
def lib = library("jenkins-library").org.zowe.jenkins_shared_library
def pipeline = lib.pipelines.nodejs.NodeJSPipeline.new(this)
pipeline.admins.add("stevenh")
pipeline.setup(
packageName: 'org.zowe.sample-node-api',
nodeJsVersion: 'v10.18.1',
github: [
email : lib.Constants.DEFAULT_GITHUB_ROBOT_EMAIL,
usernamePasswordCredential : lib.Constants.DEFAULT_GITHUB_ROBOT_CREDENTIAL,
],
artifactory: [
url : lib.Constants.DEFAULT_LFJ_ARTIFACTORY_URL,
usernamePasswordCredential : lib.Constants.DEFAULT_LFJ_ARTIFACTORY_ROBOT_CREDENTIAL,
],
pax: [
sshHost : lib.Constants.DEFAULT_PAX_PACKAGING_SSH_HOST,
sshPort : lib.Constants.DEFAULT_PAX_PACKAGING_SSH_PORT,
sshCredential : lib.Constants.DEFAULT_PAX_PACKAGING_SSH_CREDENTIAL,
remoteWorkspace : lib.Constants.DEFAULT_PAX_PACKAGING_REMOTE_WORKSPACE,
],
installRegistries: [
[
email : lib.Constants.DEFAULT_LFJ_NPM_PRIVATE_REGISTRY_EMAIL,
usernamePasswordCredential : lib.Constants.DEFAULT_LFJ_NPM_PRIVATE_REGISTRY_CREDENTIAL,
registry : lib.Constants.DEFAULT_LFJ_NPM_PRIVATE_REGISTRY_INSTALL,
]
],
publishRegistry: [
email : lib.Constants.DEFAULT_LFJ_NPM_PRIVATE_REGISTRY_EMAIL,
usernamePasswordCredential : lib.Constants.DEFAULT_LFJ_NPM_PRIVATE_REGISTRY_CREDENTIAL,
],
// FIXME: ideally this should set to false (using default by remove this line)
ignoreAuditFailure : true,
// FIXME: npm version in ibm-jenkins-slave-dind is too old, doesn't support "npm ci"
alwaysUseNpmInstall : true
)
pipeline.build()
// // we have a custom build command
// pipeline.build(
// operation: {
// ansiColor('xterm') {
// pipeline.nvmShell "npm run prod"
// }
// }
// )
// pipeline.test(
// name : 'Unit',
// junit : "target/report.xml",
// cobertura : [
// coberturaReportFile : "coverage/cobertura-coverage.xml",
// // if coverage check failed, the pipeline will be marked as UNSTABLE, which
// // will block publish/release. So we overwrite default and set to false here.
// // FIXME: ideally this should set to true (using default by remove this line)
// autoUpdateStability : false,
// fileCoverageTargets : '100, 0, 0',
// classCoverageTargets : '85, 0, 0',
// methodCoverageTargets : '80, 0, 0',
// lineCoverageTargets : '80, 0, 0',
// conditionalCoverageTargets: '70, 0, 0',
// ],
// htmlReports : [
// [dir: "coverage/lcov-report", files: "index.html", name: "Report: Code Coverage"],
// ],
// )
// we need sonar scan
// failBuild set to false whilst investigating https://github.com/zowe/zlux/issues/285
pipeline.sonarScan(
scannerTool : lib.Constants.DEFAULT_LFJ_SONARCLOUD_SCANNER_TOOL,
scannerServer : lib.Constants.DEFAULT_LFJ_SONARCLOUD_SERVER,
allowBranchScan : lib.Constants.DEFAULT_LFJ_SONARCLOUD_ALLOW_BRANCH,
failBuild : false
)
// we have pax packaging step
pipeline.packaging(name: 'sample-node-api')
// define we need publish stage
pipeline.publish(
operation: {
echo "Default npm publish will be skipped."
},
artifacts: [
'.pax/sample-node-api.pax'
]
)
// define we need release stage
pipeline.release()
pipeline.end()
}