Redesign tamarin and vulcain API
This commit is contained in:
@ -4,10 +4,11 @@ def buildPackageWithCPKG(
|
||||
String packageBranch = "",
|
||||
String baseImage = "",
|
||||
String destDir = "./packages",
|
||||
Boolean forceRebuild = false,
|
||||
Boolean publishPackages = true
|
||||
Boolean forceRebuild = false
|
||||
) {
|
||||
|
||||
def builds = []
|
||||
|
||||
// Retrieve commit tags
|
||||
def commitTags = sh(script: 'git describe --exact-match --abbrev=0', returnStdout: true).split(' ')
|
||||
if (commitTags.length == 0) {
|
||||
@ -30,20 +31,23 @@ def buildPackageWithCPKG(
|
||||
""".stripIndent()
|
||||
writeFile file: '.tamarinrc', text: tamarinrc
|
||||
|
||||
sh "rm -rf ${destDir}/*"
|
||||
|
||||
stage("Build ${packageEnv} package (version ${packageVersion}) for ${packageDistrib}") {
|
||||
|
||||
sh "rm -rf ${destDir}/*"
|
||||
buildPackage(packageProfile, packageArch, baseImage, destDir, forceRebuild)
|
||||
|
||||
if (publishPackages) {
|
||||
stage("Publish ${packageEnv} packages (version ${packageVersion}) on Vulcain") {
|
||||
vulcain.publish(destDir, packageEnv, packageBranch)
|
||||
}
|
||||
}
|
||||
def result = [:]
|
||||
result.put('tag', tag)
|
||||
result.put('env', packageEnv)
|
||||
result.put('version', packageVersion)
|
||||
result.put('distrib', packageDistrib)
|
||||
def packages = buildPackage(packageProfile, packageArch, baseImage, destDir, forceRebuild)
|
||||
result.put('packages', packages)
|
||||
builds << result
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return builds
|
||||
|
||||
}
|
||||
|
||||
def buildPackage(
|
||||
@ -54,7 +58,8 @@ def buildPackage(
|
||||
Boolean forceRebuild = false
|
||||
) {
|
||||
|
||||
def tamarinImage
|
||||
def tamarinImage
|
||||
def packages = []
|
||||
|
||||
stage("Create Tamarin environment") {
|
||||
tamarinImage = buildDockerImage()
|
||||
@ -73,7 +78,14 @@ def buildPackage(
|
||||
tamarinImage.inside(dockerArgs) {
|
||||
sh 'run-tamarin'
|
||||
}
|
||||
|
||||
packages = sh(script: "find '${destDir}' -name '*.deb' -type f", returnStdout: true)
|
||||
.split(' ')
|
||||
.collect { return it.trim() }
|
||||
.findAll { it != '' }
|
||||
}
|
||||
|
||||
return packages
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
def publish(
|
||||
String packagesDir = './packages',
|
||||
List packages = [],
|
||||
String packagesEnv = 'dev',
|
||||
String packagesBranch = '',
|
||||
String sshCredentialsId = 'vulcain-packages-ssh-keypair',
|
||||
@ -8,14 +8,13 @@ def publish(
|
||||
if (!packagesBranch) {
|
||||
packagesBranch = env.BRANCH_NAME
|
||||
}
|
||||
|
||||
withCredentials([
|
||||
sshUserPrivateKey(credentialsId: sshCredentialsId, keyFileVariable: 'VULCAIN_SSH_KEY', usernameVariable: 'VULCAIN_SSH_USER')
|
||||
]) {
|
||||
echo "Publishing packages to '${packagesEnv}/${packagesBranch}'"
|
||||
sh """
|
||||
ssh -i '${VULCAIN_SSH_KEY}' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null '${VULCAIN_SSH_USER}@${vulcainHost}' mkdir -p '/home/${VULCAIN_SSH_USER}/packages/${packagesEnv}/${packagesBranch}'
|
||||
scp -i '${VULCAIN_SSH_KEY}' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r ${packagesDir}/*.deb '${VULCAIN_SSH_USER}@${vulcainHost}:/home/${VULCAIN_SSH_USER}/packages/${packagesEnv}/${packagesBranch}/'
|
||||
"""
|
||||
sh "ssh -i '${VULCAIN_SSH_KEY}' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null '${VULCAIN_SSH_USER}@${vulcainHost}' mkdir -p '/home/${VULCAIN_SSH_USER}/packages/${packagesEnv}/${packagesBranch}'"
|
||||
packages.each {
|
||||
sh "scp -i '${VULCAIN_SSH_KEY}' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null '${it}' '${VULCAIN_SSH_USER}@${vulcainHost}:/home/${VULCAIN_SSH_USER}/packages/${packagesEnv}/${packagesBranch}/'"
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user