mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
Merge remote-tracking branch 'jfiedler/ci-clone-repo-3' into integration_2026_w22 (!4142)
CI: Cleanup of Jenkinsfiles and parameters - pass pre-computed branch from orchestrator to downstream jobs - pass repository from orchestrator to downstream jobs, repository is now configurable via ciRepositoryURL parameter of RAN-Container-Parent - remove eNB_/ran-prefixed Jenkinsfile parameters - address !4129 (comment 221898) and !4129 (comment 221900) and !4129 (comment 221927) Reviewed-By: Robert Schmidt <robert.schmidt@openairinterface.org>
This commit is contained in:
17
ci-scripts/Jenkinsfile
vendored
17
ci-scripts/Jenkinsfile
vendored
@@ -20,13 +20,11 @@ if (params.LockResources != null && params.LockResources.trim().length() > 0)
|
||||
// Global Parameters. Normally they should be populated when the master job
|
||||
// triggers the slave job with parameters
|
||||
|
||||
def INTERNAL_REPO = "asterix:/home/git/openairinterface5g.git"
|
||||
def sourceBranch = params.sourceBranch ?: env.GIT_BRANCH
|
||||
def targetBranch = params.targetBranch ?: 'develop'
|
||||
def commitID = params.sourceCommit ?: env.GIT_COMMIT
|
||||
def testRepository = params.customRepository ?: INTERNAL_REPO
|
||||
def testBranch = params.customBranch ?: "${sourceBranch}-${commitID}"
|
||||
def testRepository = params.repository ?: 'git@asterix:/home/git/openairinterface5g.git'
|
||||
def testBranch = params.branch ?: 'develop'
|
||||
def mergeWithTarget = params.mergeWithTarget ?: false
|
||||
def sourceBranch = params.sourceBranch ?: testBranch
|
||||
|
||||
def flexricOption = ""
|
||||
def runWithOC = false
|
||||
@@ -41,11 +39,17 @@ pipeline {
|
||||
timestamps()
|
||||
ansiColor('xterm')
|
||||
lock(extra: lockResources)
|
||||
skipDefaultCheckout()
|
||||
}
|
||||
|
||||
stages {
|
||||
stage("Build Init") {
|
||||
steps {
|
||||
checkout(
|
||||
scmGit(branches: [[name: "${branch}"]],
|
||||
userRemoteConfigs: [[url: "${repository}"]],
|
||||
extensions: [cleanBeforeCheckout()])
|
||||
)
|
||||
script {
|
||||
echo '\u2705 \u001B[94mBuild Init\u001B[0m'
|
||||
JOB_TIMESTAMP = sh(returnStdout: true, script: 'date --utc --rfc-3339=seconds | sed -e "s#+00:00##"').trim()
|
||||
@@ -113,8 +117,7 @@ pipeline {
|
||||
}
|
||||
sh """
|
||||
python3 main.py --mode=InitiateHtml --repository=${testRepository} \
|
||||
--branch=${testBranch} --commitID=${commitID} \
|
||||
${mainPythonAllXmlFiles}
|
||||
--branch=${testBranch} ${mainPythonAllXmlFiles}
|
||||
"""
|
||||
if (runWithOC) {
|
||||
withCredentials([usernamePassword(credentialsId: "${params.OC_Credentials}", usernameVariable: 'OC_Username', passwordVariable: 'OC_Password')]) {
|
||||
|
||||
@@ -115,7 +115,7 @@ pipeline {
|
||||
stage ("Local-Repo-Push") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-Local-Repo-Push', 'Local-Repo-Push')
|
||||
triggerDownstreamJob ('RAN-Local-Repo-Push', 'Local-Repo-Push')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -135,7 +135,7 @@ pipeline {
|
||||
stage ("Ubuntu-Image-Builder") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-Ubuntu18-Image-Builder', 'Ubuntu-Image-Builder')
|
||||
triggerDownstreamJob ('RAN-Ubuntu18-Image-Builder', 'Ubuntu-Image-Builder')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -143,7 +143,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
ubuntuBuildStatus = finalizeSlaveJob('RAN-Ubuntu18-Image-Builder')
|
||||
ubuntuBuildStatus = finalizeDownstreamJob('RAN-Ubuntu18-Image-Builder')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -157,7 +157,7 @@ pipeline {
|
||||
stage ("Ubuntu-ARM-Image-Builder") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-Ubuntu-ARM-Image-Builder', 'Ubuntu-ARM-Image-Builder')
|
||||
triggerDownstreamJob ('RAN-Ubuntu-ARM-Image-Builder', 'Ubuntu-ARM-Image-Builder')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -165,7 +165,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
ubuntuArmBuildStatus = finalizeSlaveJob('RAN-Ubuntu-ARM-Image-Builder')
|
||||
ubuntuArmBuildStatus = finalizeDownstreamJob('RAN-Ubuntu-ARM-Image-Builder')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -179,7 +179,7 @@ pipeline {
|
||||
stage ("Ubuntu-Jetson-Image-Builder") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-Ubuntu-Jetson-Image-Builder', 'Ubuntu-Jetson-Image-Builder')
|
||||
triggerDownstreamJob ('RAN-Ubuntu-Jetson-Image-Builder', 'Ubuntu-Jetson-Image-Builder')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -187,7 +187,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
ubuntuJetsonBuildStatus = finalizeSlaveJob('RAN-Ubuntu-Jetson-Image-Builder')
|
||||
ubuntuJetsonBuildStatus = finalizeDownstreamJob('RAN-Ubuntu-Jetson-Image-Builder')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -201,7 +201,7 @@ pipeline {
|
||||
stage ("RHEL-Cluster-Image-Builder") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-RHEL8-Cluster-Image-Builder', 'RHEL-Cluster-Image-Builder')
|
||||
triggerDownstreamJob ('RAN-RHEL8-Cluster-Image-Builder', 'RHEL-Cluster-Image-Builder')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -209,7 +209,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
rhelBuildStatus = finalizeSlaveJob('RAN-RHEL8-Cluster-Image-Builder')
|
||||
rhelBuildStatus = finalizeDownstreamJob('RAN-RHEL8-Cluster-Image-Builder')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -223,7 +223,7 @@ pipeline {
|
||||
stage ("ARM-Cross-Compile") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-ARM-Cross-Compile-Builder', 'ARM-Cross-Compilation')
|
||||
triggerDownstreamJob ('RAN-ARM-Cross-Compile-Builder', 'ARM-Cross-Compilation')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -231,7 +231,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
armBuildStatus = finalizeSlaveJob('RAN-ARM-Cross-Compile-Builder')
|
||||
armBuildStatus = finalizeDownstreamJob('RAN-ARM-Cross-Compile-Builder')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -249,7 +249,7 @@ pipeline {
|
||||
steps {
|
||||
script {
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
triggerSlaveJob ('RAN-DockerHub-Push', 'DockerHub-Push')
|
||||
triggerDownstreamJob ('RAN-DockerHub-Push', 'DockerHub-Push')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -269,7 +269,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-PhySim-Cluster-5G', 'PhySim-Cluster-5G')
|
||||
triggerDownstreamJob ('RAN-PhySim-Cluster-5G', 'PhySim-Cluster-5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -277,7 +277,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
physim5GStatus = finalizeSlaveJob('RAN-PhySim-Cluster-5G')
|
||||
physim5GStatus = finalizeDownstreamJob('RAN-PhySim-Cluster-5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -292,7 +292,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-PhySim-GraceHopper-5G', 'PhySim-GraceHopper-5G')
|
||||
triggerDownstreamJob ('RAN-PhySim-GraceHopper-5G', 'PhySim-GraceHopper-5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -300,7 +300,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
physimGH5GStatus = finalizeSlaveJob('RAN-PhySim-GraceHopper-5G')
|
||||
physimGH5GStatus = finalizeDownstreamJob('RAN-PhySim-GraceHopper-5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -315,7 +315,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-Channel-Simulation', 'Channel-Simulation')
|
||||
triggerDownstreamJob ('RAN-Channel-Simulation', 'Channel-Simulation')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -323,7 +323,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
channelSimStatus = finalizeSlaveJob('RAN-Channel-Simulation')
|
||||
channelSimStatus = finalizeDownstreamJob('RAN-Channel-Simulation')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -338,7 +338,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-PhySim-Cluster-4G', 'PhySim-Cluster-4G')
|
||||
triggerDownstreamJob ('RAN-PhySim-Cluster-4G', 'PhySim-Cluster-4G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -346,7 +346,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
physim4GStatus = finalizeSlaveJob('RAN-PhySim-Cluster-4G')
|
||||
physim4GStatus = finalizeDownstreamJob('RAN-PhySim-Cluster-4G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -361,7 +361,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-RF-Sim-Test-4G', 'RF-Sim-Test-4G')
|
||||
triggerDownstreamJob ('RAN-RF-Sim-Test-4G', 'RF-Sim-Test-4G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -369,7 +369,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
rfSim4GStatus = finalizeSlaveJob('RAN-RF-Sim-Test-4G')
|
||||
rfSim4GStatus = finalizeDownstreamJob('RAN-RF-Sim-Test-4G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -384,7 +384,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-VRT-Sim-Test-5G', 'VRT-Sim-Test-5G')
|
||||
triggerDownstreamJob ('RAN-VRT-Sim-Test-5G', 'VRT-Sim-Test-5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -392,7 +392,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
vrtSim5GStatus = finalizeSlaveJob('RAN-VRT-Sim-Test-5G')
|
||||
vrtSim5GStatus = finalizeDownstreamJob('RAN-VRT-Sim-Test-5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -407,7 +407,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-RF-Sim-Test-5G', 'RF-Sim-Test-5G')
|
||||
triggerDownstreamJob ('RAN-RF-Sim-Test-5G', 'RF-Sim-Test-5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -415,7 +415,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
rfSim5GStatus = finalizeSlaveJob('RAN-RF-Sim-Test-5G')
|
||||
rfSim5GStatus = finalizeDownstreamJob('RAN-RF-Sim-Test-5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -430,7 +430,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('OAI-FLEXRIC-RAN-Integration-Test', 'OAI-FLEXRIC-RAN-Integration-Test')
|
||||
triggerDownstreamJob ('OAI-FLEXRIC-RAN-Integration-Test', 'OAI-FLEXRIC-RAN-Integration-Test')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -438,7 +438,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
flexricRAN5GStatus = finalizeSlaveJob('OAI-FLEXRIC-RAN-Integration-Test')
|
||||
flexricRAN5GStatus = finalizeDownstreamJob('OAI-FLEXRIC-RAN-Integration-Test')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -453,7 +453,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-L2-Sim-Test-4G', 'L2-Sim-Test-4G')
|
||||
triggerDownstreamJob ('RAN-L2-Sim-Test-4G', 'L2-Sim-Test-4G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -461,7 +461,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
l2Sim4GStatus = finalizeSlaveJob('RAN-L2-Sim-Test-4G')
|
||||
l2Sim4GStatus = finalizeDownstreamJob('RAN-L2-Sim-Test-4G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -476,7 +476,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-LTE-FDD-LTEBOX-Container', 'LTE-FDD-LTEBOX-Container')
|
||||
triggerDownstreamJob ('RAN-LTE-FDD-LTEBOX-Container', 'LTE-FDD-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -484,7 +484,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
lteTDDB200Status = finalizeSlaveJob('RAN-LTE-FDD-LTEBOX-Container')
|
||||
lteTDDB200Status = finalizeDownstreamJob('RAN-LTE-FDD-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -500,7 +500,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-LTE-FDD-OAIUE-OAICN4G-Container', 'LTE-FDD-OAIUE-OAICN4G-Container')
|
||||
triggerDownstreamJob ('RAN-LTE-FDD-OAIUE-OAICN4G-Container', 'LTE-FDD-OAIUE-OAICN4G-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -508,7 +508,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
lteFDDB200OAIUEStatus = finalizeSlaveJob('RAN-LTE-FDD-OAIUE-OAICN4G-Container')
|
||||
lteFDDB200OAIUEStatus = finalizeDownstreamJob('RAN-LTE-FDD-OAIUE-OAICN4G-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -523,7 +523,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-LTE-TDD-LTEBOX-Container', 'LTE-TDD-LTEBOX-Container')
|
||||
triggerDownstreamJob ('RAN-LTE-TDD-LTEBOX-Container', 'LTE-TDD-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -531,7 +531,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
lteFDDB200Status = finalizeSlaveJob('RAN-LTE-TDD-LTEBOX-Container')
|
||||
lteFDDB200Status = finalizeDownstreamJob('RAN-LTE-TDD-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -546,7 +546,7 @@ pipeline {
|
||||
when { expression {do4Gtest || do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-NSA-B200-Module-LTEBOX-Container', 'NSA-B200-Module-LTEBOX-Container')
|
||||
triggerDownstreamJob ('RAN-NSA-B200-Module-LTEBOX-Container', 'NSA-B200-Module-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -554,7 +554,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
nsaTDDB200Status = finalizeSlaveJob('RAN-NSA-B200-Module-LTEBOX-Container')
|
||||
nsaTDDB200Status = finalizeDownstreamJob('RAN-NSA-B200-Module-LTEBOX-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -569,7 +569,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-B200-Module-SABOX-Container', 'SA-B200-Module-SABOX-Container')
|
||||
triggerDownstreamJob ('RAN-SA-B200-Module-SABOX-Container', 'SA-B200-Module-SABOX-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -577,7 +577,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saTDDB200Status = finalizeSlaveJob('RAN-SA-B200-Module-SABOX-Container')
|
||||
saTDDB200Status = finalizeDownstreamJob('RAN-SA-B200-Module-SABOX-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -592,7 +592,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-gNB-N300-Timing-Phytest-LDPC', 'gNB-N300-Timing-Phytest-LDPC')
|
||||
triggerDownstreamJob ('RAN-gNB-N300-Timing-Phytest-LDPC', 'gNB-N300-Timing-Phytest-LDPC')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -600,7 +600,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
phytestLDPCoffloadStatus = finalizeSlaveJob('RAN-gNB-N300-Timing-Phytest-LDPC')
|
||||
phytestLDPCoffloadStatus = finalizeDownstreamJob('RAN-gNB-N300-Timing-Phytest-LDPC')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -615,7 +615,7 @@ pipeline {
|
||||
when { expression {do4Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-LTE-TDD-2x2-Container', 'LTE-TDD-2x2-Container')
|
||||
triggerDownstreamJob ('RAN-LTE-TDD-2x2-Container', 'LTE-TDD-2x2-Container')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -623,7 +623,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
lteTDD2x2N3xxStatus = finalizeSlaveJob('RAN-LTE-TDD-2x2-Container')
|
||||
lteTDD2x2N3xxStatus = finalizeDownstreamJob('RAN-LTE-TDD-2x2-Container')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -638,7 +638,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-AW2S-CN5G', 'SA-AW2S-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-AW2S-CN5G', 'SA-AW2S-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -646,7 +646,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saAW2SStatus = finalizeSlaveJob('RAN-SA-AW2S-CN5G')
|
||||
saAW2SStatus = finalizeDownstreamJob('RAN-SA-AW2S-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -661,7 +661,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerCN5GSlaveJob ('OAI-CN5G-COTS-UE-Test', 'OAI-CN5G-COTS-UE-Test')
|
||||
triggerCN5GDownstreamJob ('OAI-CN5G-COTS-UE-Test', 'OAI-CN5G-COTS-UE-Test')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -669,7 +669,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
cn5gCOTSUESanityCheck = finalizeSlaveJob('OAI-CN5G-COTS-UE-Test')
|
||||
cn5gCOTSUESanityCheck = finalizeDownstreamJob('OAI-CN5G-COTS-UE-Test')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -684,7 +684,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-AERIAL-CN5G', 'SA-AERIAL-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-AERIAL-CN5G', 'SA-AERIAL-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -692,7 +692,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saAERIALStatus = finalizeSlaveJob('RAN-SA-AERIAL-CN5G')
|
||||
saAERIALStatus = finalizeDownstreamJob('RAN-SA-AERIAL-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -707,7 +707,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-Multi-Antenna-CN5G', 'SA-Multi-Antenna-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-Multi-Antenna-CN5G', 'SA-Multi-Antenna-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -715,7 +715,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saMultiAntennaStatus = finalizeSlaveJob('RAN-SA-Multi-Antenna-CN5G')
|
||||
saMultiAntennaStatus = finalizeDownstreamJob('RAN-SA-Multi-Antenna-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -730,7 +730,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-FHI72-CN5G', 'SA-FHI72-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-FHI72-CN5G', 'SA-FHI72-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -738,7 +738,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saFHI72Status = finalizeSlaveJob('RAN-SA-FHI72-CN5G')
|
||||
saFHI72Status = finalizeDownstreamJob('RAN-SA-FHI72-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -753,7 +753,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-FHI72-MPLANE-CN5G', 'SA-FHI72-MPLANE-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-FHI72-MPLANE-CN5G', 'SA-FHI72-MPLANE-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -761,7 +761,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saFHI72MplaneStatus = finalizeSlaveJob('RAN-SA-FHI72-MPLANE-CN5G')
|
||||
saFHI72MplaneStatus = finalizeDownstreamJob('RAN-SA-FHI72-MPLANE-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -776,7 +776,7 @@ pipeline {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-Handover-CN5G', 'SA-Handover-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-Handover-CN5G', 'SA-Handover-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -784,7 +784,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saHandoverStatus = finalizeSlaveJob('RAN-SA-Handover-CN5G')
|
||||
saHandoverStatus = finalizeDownstreamJob('RAN-SA-Handover-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -799,7 +799,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-AERIAL-OAIUE-CN5G', 'SA-AERIAL-OAIUE-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-AERIAL-OAIUE-CN5G', 'SA-AERIAL-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -807,7 +807,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saAERIALOAIUEStatus = finalizeSlaveJob('RAN-SA-AERIAL-OAIUE-CN5G')
|
||||
saAERIALOAIUEStatus = finalizeDownstreamJob('RAN-SA-AERIAL-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -822,7 +822,7 @@ pipeline {
|
||||
when { expression {do5Gtest || do5GUeTest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-OAIUE-CN5G', 'SA-OAIUE-CN5G')
|
||||
triggerDownstreamJob ('RAN-SA-OAIUE-CN5G', 'SA-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
@@ -830,7 +830,7 @@ pipeline {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saOAIUEStatus = finalizeSlaveJob('RAN-SA-OAIUE-CN5G')
|
||||
saOAIUEStatus = finalizeDownstreamJob('RAN-SA-OAIUE-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
@@ -871,28 +871,23 @@ pipeline {
|
||||
|
||||
// ---- Slave Job functions
|
||||
|
||||
def triggerSlaveJob (jobName, gitlabStatusName) {
|
||||
def triggerDownstreamJob (jobName, gitlabStatusName) {
|
||||
def MR_NUMBER = "MERGE".equals(env.gitlabActionType) ? env.gitlabMergeRequestIid : 'develop'
|
||||
// Workaround for the "cancelled" GitLab pipeline notification
|
||||
// The slave job is triggered with the propagate false so the following commands are executed
|
||||
// The downstream job is triggered with the propagate false so the following commands are executed
|
||||
// Its status is now PASS/SUCCESS from a stage pipeline point of view
|
||||
// localStatus variable MUST be analyzed to properly assess the status
|
||||
def localStatus = build job: jobName,
|
||||
parameters: [
|
||||
string(name: 'eNB_Repository', value: String.valueOf(GIT_URL)),
|
||||
string(name: 'targetRepo', value: String.valueOf(GIT_URL)),
|
||||
string(name: 'SourceRepo', value: String.valueOf(env.gitlabSourceRepoHttpUrl)),
|
||||
string(name: 'targetRepo', value: String.valueOf(env.gitlabTargetRepoHttpUrl)),
|
||||
string(name: 'sourceRepo', value: String.valueOf(env.gitlabSourceRepoHttpUrl)),
|
||||
string(name: 'eNB_Branch', value: String.valueOf(env.gitlabSourceBranch)),
|
||||
string(name: 'sourceBranch', value: String.valueOf(env.gitlabSourceBranch)),
|
||||
string(name: 'eNB_CommitID', value: String.valueOf(env.gitlabMergeRequestLastCommit)),
|
||||
string(name: 'sourceCommit', value: String.valueOf(env.gitlabMergeRequestLastCommit)),
|
||||
string(name: 'eNB_MR', value: String.valueOf(MR_NUMBER)),
|
||||
string(name: 'requestNumber', value: String.valueOf(MR_NUMBER)),
|
||||
booleanParam(name: 'eNB_mergeRequest', value: "MERGE".equals(env.gitlabActionType)),
|
||||
booleanParam(name: 'mergeWithTarget', value: "MERGE".equals(env.gitlabActionType)),
|
||||
string(name: 'eNB_TargetBranch', value: String.valueOf(env.gitlabTargetBranch)),
|
||||
string(name: 'targetBranch', value: String.valueOf(env.gitlabTargetBranch))
|
||||
string(name: 'targetBranch', value: String.valueOf(env.gitlabTargetBranch)),
|
||||
string(name: 'repository', value: String.valueOf(params.ciRepositoryURL)),
|
||||
string(name: 'branch', value: "${env.gitlabSourceBranch.replace('/', '-')}-${env.gitlabMergeRequestLastCommit}")
|
||||
], propagate: false
|
||||
def localResult = localStatus.getResult()
|
||||
echo "${jobName} Slave Job status is ${localResult}"
|
||||
@@ -905,18 +900,14 @@ def triggerSlaveJob (jobName, gitlabStatusName) {
|
||||
}
|
||||
}
|
||||
|
||||
def triggerCN5GSlaveJob (jobName, gitlabStatusName) {
|
||||
def triggerCN5GDownstreamJob (jobName, gitlabStatusName) {
|
||||
if ("MERGE".equals(env.gitlabActionType)) {
|
||||
shaOne = sh returnStdout: true, script: 'git log -1 --pretty=format:"%H" ' + env.gitlabMergeRequestLastCommit
|
||||
shaOne = shaOne.trim()
|
||||
fullRanTag = OAI_Registry + '/oai-gnb:' + env.gitlabSourceBranch + '-' + shaOne
|
||||
fullRanTag = OAI_Registry + '/oai-gnb:' + "${env.gitlabSourceBranch.replace('/', '-')}-${env.gitlabMergeRequestLastCommit}"
|
||||
} else {
|
||||
shaOne = sh returnStdout: true, script: 'git log -1 --pretty=format:"%H" ' + env.GIT_COMMIT
|
||||
shaOne = shaOne.trim()
|
||||
fullRanTag = OAI_Registry + '/oai-gnb:develop-' + shaOne
|
||||
fullRanTag = OAI_Registry + '/oai-gnb:develop-' + env.GIT_COMMIT
|
||||
}
|
||||
// Workaround for the "cancelled" GitLab pipeline notification
|
||||
// The slave job is triggered with the propagate false so the following commands are executed
|
||||
// The downstream job is triggered with the propagate false so the following commands are executed
|
||||
// Its status is now PASS/SUCCESS from a stage pipeline point of view
|
||||
// localStatus variable MUST be analyzed to properly assess the status
|
||||
def localStatus = build job: jobName,
|
||||
@@ -934,10 +925,10 @@ def triggerCN5GSlaveJob (jobName, gitlabStatusName) {
|
||||
}
|
||||
}
|
||||
|
||||
def finalizeSlaveJob(jobName) {
|
||||
def finalizeDownstreamJob(jobName) {
|
||||
lock ('Parent-Lock') {
|
||||
// In case of any non-success, we are retrieving the HTML report of the last completed
|
||||
// slave job. The only drop-back is that we may retrieve the HTML report of a previous build
|
||||
// downstream job. The only drop-back is that we may retrieve the HTML report of a previous build
|
||||
if (jobName == 'OAI-CN5G-COTS-UE-Test') {
|
||||
fileName = "test_results_oai_cn5g_cots_ue.html"
|
||||
} else {
|
||||
@@ -947,7 +938,8 @@ def finalizeSlaveJob(jobName) {
|
||||
if (!fileExists(fileName)) {
|
||||
copyArtifacts(projectName: jobName,
|
||||
filter: 'test_results*.html',
|
||||
selector: lastCompleted())
|
||||
selector: lastCompleted(),
|
||||
optional: true)
|
||||
if (fileExists(fileName)) {
|
||||
sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${env.JOB_TIMESTAMP}#' ${fileName}"
|
||||
} else {
|
||||
|
||||
@@ -77,15 +77,11 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Create temporary branch for CI') {
|
||||
stage('Create testing branch for CI') {
|
||||
steps {
|
||||
script {
|
||||
env.NEW_BRANCH = "${params.sourceBranch}-${params.sourceCommit}"
|
||||
echo "New branch: ${env.NEW_BRANCH}"
|
||||
}
|
||||
sh """
|
||||
# Checkout source commit
|
||||
git checkout -B ${env.NEW_BRANCH} ${params.sourceCommit}
|
||||
git checkout -B ${params.branch} ${params.sourceCommit}
|
||||
"""
|
||||
}
|
||||
}
|
||||
@@ -93,7 +89,7 @@ pipeline {
|
||||
when { expression { return params.mergeWithTarget } }
|
||||
steps {
|
||||
sh """
|
||||
echo "Merging target branch ${params.targetBranch} into source branch ${env.NEW_BRANCH}"
|
||||
echo "Merging target branch ${params.targetBranch} into source branch ${params.branch}"
|
||||
if ! git merge --ff target/${params.targetBranch} \
|
||||
-m "Merge ${params.targetBranch} into ${params.sourceBranch} for CI"; then
|
||||
echo "Merge conflicts detected. Aborting."
|
||||
@@ -106,9 +102,9 @@ pipeline {
|
||||
stage('Push merged branch to internal repository') {
|
||||
steps {
|
||||
sh """
|
||||
git remote add internal-repo ${internalRepoURL} || true
|
||||
echo "Pushing ${env.NEW_BRANCH} to internal repo"
|
||||
git push --force internal-repo ${env.NEW_BRANCH}
|
||||
git remote add internal-repo ${params.repository} || true
|
||||
echo "Pushing ${params.branch} to internal repo"
|
||||
git push --force internal-repo ${params.branch}
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,12 +82,6 @@ pipeline {
|
||||
}
|
||||
sh "docker rmi ${DH_Account}/${item}:${WEEK_TAG} ${DH_Account}/${item}:develop ${OAI_Registry}/${item}:develop-${WEEK_SHA} || true"
|
||||
}
|
||||
// Proxy is not following the same pattern.
|
||||
sh "docker image tag proxy:develop ${DH_Account}/proxy:develop"
|
||||
sh "docker image tag proxy:develop ${DH_Account}/proxy:${WEEK_TAG}"
|
||||
sh "docker push --quiet ${DH_Account}/proxy:develop"
|
||||
sh "docker push --quiet ${DH_Account}/proxy:${WEEK_TAG}"
|
||||
sh "docker rmi ${DH_Account}/proxy:develop ${DH_Account}/proxy:${WEEK_TAG}"
|
||||
// Logging out on both registries
|
||||
sh "docker logout ${OAI_Registry} > /dev/null 2>&1"
|
||||
sh "docker logout > /dev/null 2>&1"
|
||||
|
||||
@@ -20,13 +20,11 @@ if (params.LockResources != null && params.LockResources.trim().length() > 0)
|
||||
// Global Parameters. Normally they should be populated when the master job
|
||||
// triggers the slave job with parameters
|
||||
|
||||
def INTERNAL_REPO = "asterix:/home/git/openairinterface5g.git"
|
||||
def sourceBranch = params.sourceBranch
|
||||
def targetBranch = params.targetBranch ?: 'develop'
|
||||
def commitID = params.sourceCommit
|
||||
def testRepository = params.repository ?: 'git@asterix:/home/git/openairinterface5g.git'
|
||||
def testBranch = params.branch ?: "latest"
|
||||
def mergeWithTarget = params.mergeWithTarget ?: false
|
||||
def sourceBranch = params.sourceBranch ?: testBranch
|
||||
|
||||
def flexricOption = ""
|
||||
def runWithOC = false
|
||||
@@ -94,7 +92,7 @@ pipeline {
|
||||
sourceBranch = selected_ref.replaceFirst("^origin/", "")
|
||||
commitID = sh(script: "git rev-parse ${selected_ref}", returnStdout: true).trim()
|
||||
echo "Found branch ${sourceBranch}, commit ${commitID}"
|
||||
testBranch = "${sourceBranch}-${commitID}"
|
||||
testBranch = "${sourceBranch}"
|
||||
}
|
||||
|
||||
echo "CI executor node : ${pythonExecutor}"
|
||||
@@ -126,8 +124,7 @@ pipeline {
|
||||
}
|
||||
sh """
|
||||
python3 main.py --mode=InitiateHtml --repository=${testRepository} \
|
||||
--branch=${testBranch} --commitID=${commitID} \
|
||||
${mainPythonAllXmlFiles}
|
||||
--branch=${testBranch} ${mainPythonAllXmlFiles}
|
||||
"""
|
||||
if (runWithOC) {
|
||||
withCredentials([usernamePassword(credentialsId: "${params.OC_Credentials}", usernameVariable: 'OC_Username', passwordVariable: 'OC_Password')]) {
|
||||
|
||||
@@ -44,11 +44,8 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,CONTAINERS,HELP,CLUSTER):
|
||||
elif re.match(r'^\-\-mode=(.+)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-mode=(.+)$', myArgv, re.IGNORECASE)
|
||||
mode = matchReg.group(1)
|
||||
elif re.match(r'^\-\-repository=(.+)$|^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE):
|
||||
if re.match(r'^\-\-repository=(.+)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-repository=(.+)$', myArgv, re.IGNORECASE)
|
||||
else:
|
||||
matchReg = re.match(r'^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE)
|
||||
elif re.match(r'^\-\-repository=(.+)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-repository=(.+)$', myArgv, re.IGNORECASE)
|
||||
CiTestObj.repository = matchReg.group(1)
|
||||
RAN.repository=matchReg.group(1)
|
||||
HTML.repository=matchReg.group(1)
|
||||
@@ -61,27 +58,15 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,CONTAINERS,HELP,CLUSTER):
|
||||
RAN.merge=True
|
||||
CONTAINERS.merge=True
|
||||
CLUSTER.merge=True
|
||||
elif re.match(r'^\-\-branch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
|
||||
if re.match(r'^\-\-branch=(.+)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-branch=(.+)$', myArgv, re.IGNORECASE)
|
||||
else:
|
||||
matchReg = re.match(r'^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE)
|
||||
elif re.match(r'^\-\-branch=(.+)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-branch=(.+)$', myArgv, re.IGNORECASE)
|
||||
CiTestObj.branch = matchReg.group(1)
|
||||
RAN.branch=matchReg.group(1)
|
||||
HTML.branch=matchReg.group(1)
|
||||
CONTAINERS.branch=matchReg.group(1)
|
||||
CLUSTER.branch=matchReg.group(1)
|
||||
elif re.match(r'^\-\-commitID=(.*)$|^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE):
|
||||
if re.match(r'^\-\-commitID=(.*)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-commitID=(.*)$', myArgv, re.IGNORECASE)
|
||||
else:
|
||||
matchReg = re.match(r'^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE)
|
||||
HTML.commitID=matchReg.group(1)
|
||||
elif re.match(r'^\-\-targetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE):
|
||||
if re.match(r'^\-\-targetBranch=(.*)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-targetBranch=(.*)$', myArgv, re.IGNORECASE)
|
||||
else:
|
||||
matchReg = re.match(r'^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
|
||||
elif re.match(r'^\-\-targetBranch=(.*)$', myArgv, re.IGNORECASE):
|
||||
matchReg = re.match(r'^\-\-targetBranch=(.*)$', myArgv, re.IGNORECASE)
|
||||
RAN.targetBranch=matchReg.group(1)
|
||||
CONTAINERS.targetBranch=matchReg.group(1)
|
||||
CLUSTER.targetBranch=matchReg.group(1)
|
||||
|
||||
@@ -35,7 +35,6 @@ class HTMLManagement():
|
||||
|
||||
self.repository = ''
|
||||
self.branch = ''
|
||||
self.commitID = ''
|
||||
|
||||
self.nbTestXMLfiles = 0
|
||||
self.htmlTabRefs = []
|
||||
@@ -100,7 +99,13 @@ class HTMLManagement():
|
||||
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-log-out"></span> Test Branch </td>\n')
|
||||
self.htmlFile.write(' <td>' + self.branch + '</td>\n')
|
||||
self.htmlFile.write(' </tr>\n')
|
||||
commit_message = subprocess.check_output("git log -n1 --pretty=format:\"%s\" " + self.commitID, shell=True, universal_newlines=True)
|
||||
commit_id = subprocess.check_output("git log -n1 --pretty=format:\"%H\" ", shell=True, universal_newlines=True)
|
||||
commit_id = commit_id.strip()
|
||||
self.htmlFile.write(' <tr>\n')
|
||||
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-tag"></span> Commit ID </td>\n')
|
||||
self.htmlFile.write(' <td>' + commit_id + '</td>\n')
|
||||
self.htmlFile.write(' </tr>\n')
|
||||
commit_message = subprocess.check_output("git log -n1 --pretty=format:\"%s\" ", shell=True, universal_newlines=True)
|
||||
commit_message = commit_message.strip()
|
||||
self.htmlFile.write(' <tr>\n')
|
||||
self.htmlFile.write(' <td bgcolor = "lightcyan" > <span class="glyphicon glyphicon-comment"></span> Commit Message </td>\n')
|
||||
|
||||
@@ -27,10 +27,9 @@ def GenericHelp(vers):
|
||||
print(' --local Force local execution: rewrites the test xml script before running to always execute on localhost. Assumes')
|
||||
print(' images are available locally, will not remove any images and will run inside the current repo directory')
|
||||
|
||||
def GitSrvHelp(repository,branch,commit,mergeallow,targetbranch):
|
||||
def GitSrvHelp(repository,branch,mergeallow,targetbranch):
|
||||
print(' --repository=[OAI RAN Repository URL] -- ' + repository)
|
||||
print(' --branch=[OAI RAN Repository Branch] -- ' + branch)
|
||||
print(' --commitID=[OAI RAN Repository Commit SHA-1] -- ' + commit)
|
||||
print(' --ranAllowMerge=[Allow Merge Request (with target branch) (true or false)] -- ' + mergeallow)
|
||||
print(' --targetBranch=[Target Branch in case of a Merge Request] -- ' + targetbranch)
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#/bin/bash
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
commit=$(git rev-parse HEAD)
|
||||
file=../../test_results.html
|
||||
rm -f ${file}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user