jobs/common: fixed sstate-cache sync and refactored for less output

Fixed the sstate-cache mirror synchroniziation including more
output about what is snychronized. Additionally suppressed the
shell commands to have less output on the job console.

Signed-off-by: Marc Mattmüller <marc.mattmueller@netmodule.com>
This commit is contained in:
Marc Mattmüller 2023-08-01 10:55:34 +02:00
parent 40a9087135
commit 9d7597ea4b
1 changed files with 25 additions and 24 deletions

View File

@ -12,9 +12,10 @@ env.BITBUCKET_URL = "https://${env.BITBUCKET_LOCAL}"
env.YOCTO_REPO_URL = "ssh://git@${env.BITBUCKET_LOCAL}:7999/nm-nsp/netmodule-wireless-linux.git"
env.STORAGE_URL = "http://10.115.101.100"
env.SSTATE_STORAGE_SRV_PATH = "/var/www/html"
env.SSTATE_STORAGE_SRV_WEB_ROOT_PATH = "/var/www/html"
env.STORAGE_NWL_DIR = "nwl"
env.SSTATE_STORAGE_DIR = "nwl-sstate"
env.SSTATE_STORAGE_URL = "${env.STORAGE_URL}/${env.SSTATE_STORAGE_DIR}"
env.SSTATE_STORAGE_URL = "${env.STORAGE_URL}/${env.STORAGE_NWL_DIR}/${env.SSTATE_STORAGE_DIR}"
env.BINARY_STORAGE_URL = "${env.STORAGE_URL}/downloads"
//env.HASHSERVER = "172.16.70.254:8686"
@ -55,7 +56,7 @@ def isJobTriggeredByTimer() {
}
//---------------------------------------------------------------------------------------------------------------------
def getDefaultTarget() {
def defaultTarget = sh(returnStdout: true, script: "head -n2 ./jobs/nwlTargets | tail -n1").trim()
def defaultTarget = sh(returnStdout: true, script: "set +x && head -n2 ./jobs/nwlTargets | tail -n1").trim()
return "${defaultTarget}"
}
@ -71,17 +72,17 @@ def cleaningClonedRepoDir() {
//-----------------------------------------------------------------------------
def getGitCredentialID() {
def serverHostname = sh(returnStdout: true, script: "hostname | cut -d '_' -f1").trim()
def serverHostname = sh(returnStdout: true, script: "set +x && hostname | cut -d '_' -f1").trim()
return ("${serverHostname}" == "nwl") ? 'admin_credentials' : 'gitCredentials'
}
//-----------------------------------------------------------------------------
def getNexusCredentialID() {
def serverHostname = sh(returnStdout: true, script: "hostname | cut -d '_' -f1").trim()
def serverHostname = sh(returnStdout: true, script: "set +x && hostname | cut -d '_' -f1").trim()
return ("${serverHostname}" == "nwl") ? 'nexus_uploader_credentials' : 'nexusCredentials'
}
//-----------------------------------------------------------------------------
def getNginxCredentialID() {
def serverHostname = sh(returnStdout: true, script: "hostname | cut -d '_' -f1").trim()
def serverHostname = sh(returnStdout: true, script: "set +x && hostname | cut -d '_' -f1").trim()
return ("${serverHostname}" == "nwl") ? 'nginx_credentials' : 'nginxCredentials'
}
@ -228,18 +229,19 @@ def printEnvironmentParameters() {
println "----------------------------------\n\
Environment Parameters:\n\
\n\
--> machine = ${env.MACHINE}\n\
--> git URL = ${env.YOCTO_REPO_URL}\n\
--> yocto dir = ${env.YOCTO_REPO_DIR}\n\
--> shared build dir = ${env.SHARED_BUILD}\n\
--> autoconf file = ${env.RELATIVE_AUTOCONF_FILE}\n\
--> yocto deploys = ${env.YOCTO_DEPLOYS}\n\
--> yocto environment = ${env.YOCTO_ENV}\n\
--> bitbake pagkage = ${env.BITBAKE_PKG}\n\
--> pagkage name = ${env.PKG_NAME}\n\
--> download dir = ${env.DOWNLOAD_DIR }\n\
--> sstate dir = ${env.SSTATE_CACHE }\n\
--> artifacts file = ${env.YOCTO_ARTIFACTS}\n\
--> machine = ${env.MACHINE}\n\
--> git URL = ${env.YOCTO_REPO_URL}\n\
--> yocto dir = ${env.YOCTO_REPO_DIR}\n\
--> shared build dir = ${env.SHARED_BUILD}\n\
--> autoconf file = ${env.RELATIVE_AUTOCONF_FILE}\n\
--> yocto deploys = ${env.YOCTO_DEPLOYS}\n\
--> yocto environment = ${env.YOCTO_ENV}\n\
--> bitbake pagkage = ${env.BITBAKE_PKG}\n\
--> pagkage name = ${env.PKG_NAME}\n\
--> download dir = ${env.DOWNLOAD_DIR }\n\
--> sstate dir = ${env.SSTATE_CACHE }\n\
--> ssate-cache mirror = ${env.SSTATE_STORAGE_URL}\n\
--> artifacts file = ${env.YOCTO_ARTIFACTS}\n\
----------------------------------\n"
}
@ -374,13 +376,10 @@ def syncSources(src, dst) {
def from = src
def to = dst
// sstate mirror server path:
def mirrorSrvPath = "${env.SSTATE_STORAGE_SRV_PATH}/${env.SSTATE_STORAGE_DIR}"
// convert the URL into ssh syntax:
def url = (hasSrcUrl) ? src : dst
String[] repoParts = url.split("//")[1].split("/")
repoParts[0] = "user@" + repoParts[0] + ":${mirrorSrvPath}"
repoParts[0] = "user@" + repoParts[0] + ":${env.SSTATE_STORAGE_SRV_WEB_ROOT_PATH}"
sshSrc = repoParts.join("/")
if(hasSrcUrl) {
@ -392,17 +391,19 @@ def syncSources(src, dst) {
println "putting data to server..."
to = sshSrc
nbrOfSrcDirFiles=sh(returnStdout: true, script: "ls -A ${from} | wc -l").trim()
nbrOfSrcDirFiles=sh(returnStdout: true, script: "set +x && ls -A ${from} | wc -l").trim()
if("${nbrOfSrcDirFiles}" == "0") {
println "source directory is empty, nothing to sync"
return
}
}
// ssh private key credentials for build_user needed:
// ssh private key credentials for sstate mirror server needed:
def mirrorSrvCredentials = getNginxCredentialID()
sshagent (credentials: [mirrorSrvCredentials]) {
println "synchronizing ${from}/* --> ${to}..."
sh "set +x && rsync -auzq -e \"ssh\" ${from}/* ${to}"
println "synchronization done"
}
}