mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 15:35:09 +00:00
parent
6f984e17f3
commit
4bb48a909c
1 changed files with 0 additions and 157 deletions
157
Jenkinsfile
vendored
157
Jenkinsfile
vendored
|
|
@ -1,157 +0,0 @@
|
|||
#!groovy
|
||||
// Copyright IBM Corp All Rights Reserved
|
||||
//
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
// Jenkinfile will get triggered on verify and merge jobs and run byfn, eyfn and fabcar
|
||||
// tests.
|
||||
|
||||
// global shared library from ci-management repository
|
||||
// https://github.com/hyperledger/ci-management/tree/master/vars (Global Shared scripts)
|
||||
@Library("fabric-ci-lib") _
|
||||
pipeline {
|
||||
agent {
|
||||
// Execute tests on x86_64 build nodes
|
||||
// Set this value from Jenkins Job Configuration
|
||||
label env.NODE_ARCH
|
||||
}
|
||||
options {
|
||||
// Using the Timestamper plugin we can add timestamps to the console log
|
||||
timestamps()
|
||||
// Set build timeout for 60 mins
|
||||
timeout(time: 60, unit: 'MINUTES')
|
||||
}
|
||||
environment {
|
||||
ROOTDIR = pwd()
|
||||
// Applicable only on x86_64 nodes
|
||||
// LF team has to install the newer version in Jenkins global config
|
||||
// Send an email to helpdesk@hyperledger.org to add newer version
|
||||
nodeHome = tool 'nodejs-8.11.3'
|
||||
MARCH = sh(returnStdout: true, script: "uname -m | sed 's/x86_64/amd64/g'").trim()
|
||||
OS_NAME = sh(returnStdout: true, script: "uname -s|tr '[:upper:]' '[:lower:]'").trim()
|
||||
props = "null"
|
||||
}
|
||||
stages {
|
||||
stage('Clean Environment') {
|
||||
steps {
|
||||
script {
|
||||
// delete working directory
|
||||
deleteDir()
|
||||
// Clean build env before start the build
|
||||
fabBuildLibrary.cleanupEnv()
|
||||
// Display jenkins environment details
|
||||
fabBuildLibrary.envOutput()
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Checkout SCM') {
|
||||
steps {
|
||||
script {
|
||||
// Get changes from gerrit
|
||||
fabBuildLibrary.cloneRefSpec('fabric-samples')
|
||||
// Load properties from ci.properties file
|
||||
props = fabBuildLibrary.loadProperties()
|
||||
}
|
||||
}
|
||||
}
|
||||
// Pull build artifacts
|
||||
stage('Pull Build Artifacts') {
|
||||
steps {
|
||||
script {
|
||||
if(props["IMAGE_SOURCE"] == "build") {
|
||||
println "BUILD ARTIFACTS"
|
||||
// Set PATH
|
||||
env.GOPATH = "$WORKSPACE/gopath"
|
||||
env.GOROOT = "/opt/go/go" + props["GO_VER"] + ".linux." + "$MARCH"
|
||||
env.PATH = "$GOPATH/bin:$GOROOT/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:${nodeHome}/bin:$PATH"
|
||||
// Clone fabric repo
|
||||
fabBuildLibrary.cloneScm('fabric', '$GERRIT_BRANCH')
|
||||
// Build fabric docker images and binaries
|
||||
fabBuildLibrary.fabBuildImages('fabric', 'docker dist')
|
||||
// Clone fabric-ca repo
|
||||
fabBuildLibrary.cloneScm('fabric-ca', '$GERRIT_BRANCH')
|
||||
// Build fabric docker images and binaries
|
||||
fabBuildLibrary.fabBuildImages('fabric-ca', 'docker dist')
|
||||
// Copy binaries to fabric-samples dir
|
||||
sh 'cp -r $ROOTDIR/gopath/src/github.com/hyperledger/fabric/release/$OS_NAME-$MARCH/bin $ROOTDIR/$BASE_DIR/'
|
||||
// Pull Thirdparty Docker Images from hyperledger DockerHub
|
||||
fabBuildLibrary.pullThirdPartyImages(props["FAB_BASEIMAGE_VERSION"], props["FAB_THIRDPARTY_IMAGES_LIST"])
|
||||
} else {
|
||||
dir("$ROOTDIR/$BASE_DIR") {
|
||||
// Set PATH
|
||||
env.GOPATH = "$WORKSPACE/gopath"
|
||||
env.GOROOT = "/opt/go/go" + props["GO_VER"] + ".linux." + "$MARCH"
|
||||
env.PATH = "$GOPATH/bin:$GOROOT/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:${nodeHome}/bin:$PATH"
|
||||
// Pull Binaries with latest version from nexus2
|
||||
fabBuildLibrary.pullBinaries(props["FAB_BINARY_VER"], props["FAB_BINARY_REPO"])
|
||||
// Pull Docker Images from nexus3
|
||||
fabBuildLibrary.pullDockerImages(props["FAB_BASE_VERSION"], props["FAB_IMAGES_LIST"])
|
||||
// Pull Thirdparty Docker Images from hyperledger DockerHub
|
||||
fabBuildLibrary.pullThirdPartyImages(props["FAB_BASEIMAGE_VERSION"], props["FAB_THIRDPARTY_IMAGES_LIST"])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Run byfn, eyfn tests (default, custom channel, couchdb, nodejs, java chaincode)
|
||||
stage('Run byfn_eyfn Tests') {
|
||||
steps {
|
||||
script {
|
||||
// making the output color coded
|
||||
// wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'xterm']) {
|
||||
try {
|
||||
dir("$ROOTDIR/$BASE_DIR/scripts/ci_scripts") {
|
||||
// Run BYFN, EYFN tests
|
||||
sh './ciScript.sh --byfn_eyfn_Tests'
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
failure_stage = "byfn_eyfn_Tests"
|
||||
currentBuild.result = 'FAILURE'
|
||||
throw err
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
// Run fabcar tests
|
||||
stage('Run Fab Car Tests') {
|
||||
steps {
|
||||
script {
|
||||
// making the output color coded
|
||||
// wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'xterm']) {
|
||||
try {
|
||||
dir("$ROOTDIR/$BASE_DIR/scripts/ci_scripts") {
|
||||
// Run fabcar tests
|
||||
sh './ciScript.sh --fabcar_Tests'
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
failure_stage = "fabcar_Tests"
|
||||
currentBuild.result = 'FAILURE'
|
||||
throw err
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
} // stages
|
||||
post {
|
||||
always {
|
||||
// Archiving the .log files and ignore if empty
|
||||
archiveArtifacts artifacts: '**/*.log', allowEmptyArchive: true
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
if (env.JOB_TYPE == 'merge') {
|
||||
// Send rocketChat notification to channel
|
||||
// Send merge build failure email notifications to the submitter
|
||||
sendNotifications(currentBuild.result, props["CHANNEL_NAME"])
|
||||
// Delete workspace when build is done
|
||||
cleanWs notFailBuild: true
|
||||
}
|
||||
}
|
||||
}
|
||||
} // post
|
||||
} // pipeline
|
||||
Loading…
Reference in a new issue