Redesign tamarin and vulcain API

This commit is contained in:
2019-02-20 15:30:20 +01:00
parent 3173bf5db3
commit c73ddac0fd
4 changed files with 232 additions and 22 deletions

View File

@ -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
}

View File

@ -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}/'"
}
}
}