diff --git a/jenkins/bldenv/sonic-slave-buster.Jenkinsfile b/jenkins/bldenv/sonic-slave-buster.Jenkinsfile index 1d608abfb4..7ff99003d1 100644 --- a/jenkins/bldenv/sonic-slave-buster.Jenkinsfile +++ b/jenkins/bldenv/sonic-slave-buster.Jenkinsfile @@ -1,5 +1,5 @@ pipeline { - agent { node { label 'jenkins-worker-1' } } + agent { node { label 'jenkins-workers-slow' } } options { buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10')) @@ -7,7 +7,6 @@ pipeline { environment { DISTRO = 'buster' - ARCH = 'amd64' SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder') } diff --git a/jenkins/bldenv/sonic-slave-jessie.Jenkinsfile b/jenkins/bldenv/sonic-slave-jessie.Jenkinsfile index f27fd18d82..f564a975e8 100644 --- a/jenkins/bldenv/sonic-slave-jessie.Jenkinsfile +++ b/jenkins/bldenv/sonic-slave-jessie.Jenkinsfile @@ -7,7 +7,6 @@ pipeline { environment { DISTRO = 'jessie' - ARCH = 'amd64' SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder') } diff --git a/jenkins/bldenv/sonic-slave-stretch.Jenkinsfile b/jenkins/bldenv/sonic-slave-stretch.Jenkinsfile index c2c5b994ed..a6abb55aaa 100644 --- a/jenkins/bldenv/sonic-slave-stretch.Jenkinsfile +++ b/jenkins/bldenv/sonic-slave-stretch.Jenkinsfile @@ -7,7 +7,6 @@ pipeline { environment { DISTRO = 'stretch' - ARCH = 'amd64' SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder') } diff --git a/scripts/bldenv/sonic-slave/build.sh b/scripts/bldenv/sonic-slave/build.sh index 9824d87ff9..99879c0455 100755 --- a/scripts/bldenv/sonic-slave/build.sh +++ b/scripts/bldenv/sonic-slave/build.sh @@ -2,47 +2,58 @@ cd sonic-buildimage -echo "Building docker containers for $DISTRO and $ARCH" +echo "Building docker containers for $DISTRO" docker --version USER=`id -un` SLAVE_DIR=sonic-slave-$DISTRO -if [ ${ARCH} == 'amd64' ]; then - SLAVE_BASE_IMAGE=${SLAVE_DIR} -else - SLAVE_BASE_IMAGE=${SLAVE_DIR}-${ARCH} -fi +build_and_push_docker() +{ + arch=$1 -tmpfile=$(mktemp) + echo "Build docker container for $DISTRO and $arch" -echo $ARCH > .arch + if [ x$arch == x"amd64" ]; then + SLAVE_BASE_IMAGE=${SLAVE_DIR} + else + SLAVE_BASE_IMAGE=${SLAVE_DIR}-${arch} + fi -BLDENV=$DISTRO make -f Makefile.work sonic-slave-build | tee $tmpfile + tmpfile=$(mktemp) -SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}') -SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}') + echo $arch > .arch -echo $USER -echo $SLAVE_BASE_TAG -echo $SLAVE_TAG + DOCKER_DATA_ROOT_FOR_MULTIARCH=/data/march/docker BLDENV=$DISTRO make -f Makefile.work sonic-slave-build | tee $tmpfile -docker images + SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}') + SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}') -mkdir -p target + echo $USER + echo $SLAVE_BASE_TAG + echo $SLAVE_TAG -docker save $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG | gzip -c > target/$SLAVE_BASE_IMAGE.gz + docker images -REGISTRY_PORT=443 -REGISTRY_SERVER=sonicdev-microsoft.azurecr.io + mkdir -p target -docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG local/$SLAVE_BASE_IMAGE-$USER:latest -docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest -docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest -docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG + docker save $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG | gzip -c > target/$SLAVE_BASE_IMAGE.gz -docker login -u $REGISTRY_USERNAME -p "$REGISTRY_PASSWD" $REGISTRY_SERVER:$REGISTRY_PORT -docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest -docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG -docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest + REGISTRY_PORT=443 + REGISTRY_SERVER=sonicdev-microsoft.azurecr.io + + docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG local/$SLAVE_BASE_IMAGE-$USER:latest + docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest + docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest + docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG + + docker login -u $REGISTRY_USERNAME -p "$REGISTRY_PASSWD" $REGISTRY_SERVER:$REGISTRY_PORT + docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest + docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG + docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest +} + +for arch in amd64 arm64 armhf; do + build_and_push_docker $arch +done