blob: 8a04f236a0bae04a64612bab74eeeb42721a785b [file] [log] [blame]
// input parameters:
// boolean: BUILD_FROM_SOURCE
// boolean: REPO_DISTRO
// boolean: COMMIT_ID
// boolean: UPSTREAM_SUFFIX
// string: NODE
// string: RSYNC_DESTINATION
// string: REPO_BASE_URL
// string: REPO_KEY_NAME
// string: RELEASE
node("${params.NODE}") {
stage("Setup") {
tag_or_branch = params.COMMIT_ID.replaceAll(/\./,"")
container_name_prefix = "osm-${tag_or_branch}"
container_name = "${container_name_prefix}-${BUILD_NUMBER}"
}
stage("Checkout") {
checkout scm
}
// Copy the artifacts from the upstream jobs
stage("Copy Artifacts") {
// cleanup any previous repo
sh 'rm -rf repo'
dir('repo') {
// grab all stable upstream builds based on the
// given target UPSTREAM_SUFFIX
def list = ["SO", "UI", "RO", "openvim", "osmclient"]
for (component in list) {
step ([$class: 'CopyArtifact',
projectName: "${component}_${params.UPSTREAM_SUFFIX}"])
sh "dpkg-sig --sign builder -k dpkg1 pool/${component}/*"
// cleanup any prevously defined dists
sh "rm -rf dists"
}
// now create the distro
for (component in list) {
sh "mkdir -p dists/${params.REPO_DISTRO}/${component}/binary-amd64/"
sh "apt-ftparchive packages pool/${component} > dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages"
sh "gzip -9fk dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages"
}
// create and sign the release file
sh "apt-ftparchive release dists/${params.REPO_DISTRO} > dists/${params.REPO_DISTRO}/Release"
sh "gpg --yes -abs -u dpkg1 -o dists/${params.REPO_DISTRO}/Release.gpg dists/${params.REPO_DISTRO}/Release"
sh "rsync -avz . ${params.RSYNC_DESTINATION}/${params.RELEASE}"
}
}
stage("Cleanup") {
// check for previous containers and clean them up
sh "jenkins/system/delete_old_containers.sh ${container_name_prefix}"
}
stage("Build") {
from_source = ''
if ( params.BUILD_FROM_SOURCE )
{
from_source = '--source'
}
sh """
export OSM_USE_LOCAL_DEVOPS=true
jenkins/host/start_build system --build-container ${container_name} \
-b ${params.COMMIT_ID} \
-r ${params.REPO_DISTRO} \
-u ${params.REPO_BASE_URL} \
-k ${params.REPO_KEY_NAME} \
-R ${params.RELEASE} \
${from_source}
"""
}
stage("Archive Artifacts") {
sh "echo ${container_name} > build_version.txt"
sh "tar -zcvf repo.tar.gz repo"
archiveArtifacts artifacts: "build_version.txt, repo.tar.gz", fingerprint: true
}
}