#!/bin/groovy /* * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The OpenAirInterface Software Alliance licenses this file to You under * the OAI Public License, Version 1.1 (the "License"); you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://www.openairinterface.org/?page_id=698 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------------------- * For more information about the OpenAirInterface (OAI) Software Alliance: * contact@openairinterface.org */ // Location of the python executor node shall be in the same subnet as the others servers def nodeExecutor = params.nodeExecutor // Name of the phone resource def ciServerResource = params.serverResource pipeline { agent { label nodeExecutor } options { disableConcurrentBuilds() ansiColor('xterm') lock (ciServerResource) } stages { stage ("Verify Parameters") { steps { script { echo '\u2705 \u001B[32mVerify Parameters\u001B[0m' def allParametersPresent = true // It is already to late to check it if (params.nodeExecutor != null) { echo "Docker Push executor node : ${nodeExecutor}" } if (params.serverResource == null) { allParametersPresent = false } } } } stage ("Push to DockerHub") { steps { script { WEEK_TAG = sh returnStdout: true, script: 'date +"%Y.w%U"' WEEK_TAG = WEEK_TAG.trim() withCredentials([ [$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password'] ]) { def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue"] sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1" listOfImages.eachWithIndex { item, iindex -> sh "docker image tag ${item}:develop ${DH_Username}/${item}:develop" sh "docker image tag ${item}:develop ${DH_Username}/${item}:${WEEK_TAG}" sh "docker push --quiet ${DH_Username}/${item}:${WEEK_TAG}" sh "docker push --quiet ${DH_Username}/${item}:develop" sh "docker rmi ${DH_Username}/${item}:${WEEK_TAG} ${DH_Username}/${item}:develop" } sh "docker logout > /dev/null 2>&1" } } } } } post { always { script { echo "End of Registry Push" } } } }