blob: 815e719accb3ba2a450f016ac360b7132ba1e195 [file] [log] [blame]
// TODO the 3 stages are very similar, most of the code can be shared
def call(Map config) {
def defaultConfig = [
branch: "master",
gerritProject: "",
gerritRefspec: "",
volthaSystemTestsChange: "",
volthaHelmChartsChange: "",
]
if (!config) {
config = [:]
}
def cfg = defaultConfig + config
println "Downloading VOLTHA code with the following parameters: ${cfg}."
stage('Download Patch') {
// We are always downloading those repos, if the patch under test is in one of those
// just checkout the patch, no need to clone it again
if (cfg.gerritProject != 'voltha-system-tests' &&
cfg.gerritProject != 'voltha-helm-charts' &&
cfg.gerritProject != '') {
checkout([
$class: 'GitSCM',
userRemoteConfigs: [[
url: "https://gerrit.opencord.org/${cfg.gerritProject}",
]],
branches: [[ name: "${cfg.branch}", ]],
extensions: [
[$class: 'WipeWorkspace'],
[$class: 'RelativeTargetDirectory', relativeTargetDir: "${cfg.gerritProject}"],
[$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: false],
],
])
sh """
pushd $WORKSPACE/${cfg.gerritProject}
git fetch https://gerrit.opencord.org/${cfg.gerritProject} ${cfg.gerritRefspec} && git checkout FETCH_HEAD
echo "Currently on commit: \n"
git log -1 --oneline
popd
"""
}
}
stage('Clone voltha-system-tests') {
checkout([
$class: 'GitSCM',
userRemoteConfigs: [[
url: "https://gerrit.opencord.org/voltha-system-tests",
]],
branches: [[ name: "${cfg.branch}", ]],
extensions: [
[$class: 'WipeWorkspace'],
[$class: 'RelativeTargetDirectory', relativeTargetDir: "voltha-system-tests"],
[$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: false],
],
])
if (cfg.volthaSystemTestsChange != '' && cfg.gerritProject != 'voltha-system-tests') {
sh """
cd $WORKSPACE/voltha-system-tests
git fetch https://gerrit.opencord.org/voltha-system-tests ${cfg.volthaSystemTestsChange} && git checkout FETCH_HEAD
"""
}
else if (cfg.gerritProject == 'voltha-system-tests') {
sh """
pushd $WORKSPACE/${cfg.gerritProject}
git fetch https://gerrit.opencord.org/${cfg.gerritProject} ${cfg.gerritRefspec} && git checkout FETCH_HEAD
echo "Currently on commit: \n"
git log -1 --oneline
popd
"""
}
}
stage('Clone voltha-helm-charts') {
checkout([
$class: 'GitSCM',
userRemoteConfigs: [[
url: "https://gerrit.opencord.org/voltha-helm-charts",
]],
branches: [[ name: "master", ]],
extensions: [
[$class: 'WipeWorkspace'],
[$class: 'RelativeTargetDirectory', relativeTargetDir: "voltha-helm-charts"],
[$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: false],
],
])
if (cfg.volthaHelmChartsChange != '' && cfg.gerritProject != 'voltha-helm-charts') {
sh """
cd $WORKSPACE/voltha-helm-charts
git fetch https://gerrit.opencord.org/voltha-helm-charts ${cfg.volthaHelmChartsChange} && git checkout FETCH_HEAD
"""
}
else if (cfg.gerritProject == 'voltha-helm-charts') {
sh """
pushd $WORKSPACE/${cfg.gerritProject}
git fetch https://gerrit.opencord.org/${cfg.gerritProject} ${cfg.gerritRefspec} && git checkout FETCH_HEAD
echo "Currently on commit: \n"
git log -1 --oneline
popd
"""
}
}
}