Skip to content

Commit 7f37a26

Browse files
committedDec 26, 2020
[sonic-slave]: build amd64/arm64/armhf sonic-slave dockers
Signed-off-by: Guohan Lu <lguohan@gmail.com>
1 parent 0acf2f3 commit 7f37a26

File tree

4 files changed

+41
-33
lines changed

4 files changed

+41
-33
lines changed
 

‎jenkins/bldenv/sonic-slave-buster.Jenkinsfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
pipeline {
2-
agent { node { label 'jenkins-worker-1' } }
2+
agent { node { label 'jenkins-workers-slow' } }
33

44
options {
55
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10'))
66
}
77

88
environment {
99
DISTRO = 'buster'
10-
ARCH = 'amd64'
1110
SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder')
1211
}
1312

‎jenkins/bldenv/sonic-slave-jessie.Jenkinsfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
pipeline {
2-
agent { node { label 'jenkins-worker-1' } }
2+
agent { node { label 'jenkins-workers-slow' } }
33

44
options {
55
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10'))
66
}
77

88
environment {
99
DISTRO = 'jessie'
10-
ARCH = 'amd64'
1110
SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder')
1211
}
1312

‎jenkins/bldenv/sonic-slave-stretch.Jenkinsfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
pipeline {
2-
agent { node { label 'jenkins-worker-1' } }
2+
agent { node { label 'jenkins-workers-slow' } }
33

44
options {
55
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10'))
66
}
77

88
environment {
99
DISTRO = 'stretch'
10-
ARCH = 'amd64'
1110
SONIC_TEAM_WEBHOOK = credentials('public-jenkins-builder')
1211
}
1312

‎scripts/bldenv/sonic-slave/build.sh

+38-27
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,58 @@
22

33
cd sonic-buildimage
44

5-
echo "Building docker containers for $DISTRO and $ARCH"
5+
echo "Building docker containers for $DISTRO"
66

77
docker --version
88

99
USER=`id -un`
1010
SLAVE_DIR=sonic-slave-$DISTRO
1111

12-
if [ ${ARCH} == 'amd64' ]; then
13-
SLAVE_BASE_IMAGE=${SLAVE_DIR}
14-
else
15-
SLAVE_BASE_IMAGE=${SLAVE_DIR}-${ARCH}
16-
fi
12+
build_and_push_docker()
13+
{
14+
arch=$1
1715

18-
tmpfile=$(mktemp)
16+
echo "Build docker container for $DISTRO and $arch"
1917

20-
echo $ARCH > .arch
18+
if [ x$arch == x"amd64" ]; then
19+
SLAVE_BASE_IMAGE=${SLAVE_DIR}
20+
else
21+
SLAVE_BASE_IMAGE=${SLAVE_DIR}-${arch}
22+
fi
2123

22-
BLDENV=$DISTRO make -f Makefile.work sonic-slave-build | tee $tmpfile
24+
tmpfile=$(mktemp)
2325

24-
SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}')
25-
SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}')
26+
echo $arch > .arch
2627

27-
echo $USER
28-
echo $SLAVE_BASE_TAG
29-
echo $SLAVE_TAG
28+
DOCKER_DATA_ROOT_FOR_MULTIARCH=/data/march/docker BLDENV=$DISTRO make -f Makefile.work sonic-slave-build | tee $tmpfile
3029

31-
docker images
30+
SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}')
31+
SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}')
3232

33-
mkdir -p target
33+
echo $USER
34+
echo $SLAVE_BASE_TAG
35+
echo $SLAVE_TAG
3436

35-
docker save $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG | gzip -c > target/$SLAVE_BASE_IMAGE.gz
37+
docker images
3638

37-
REGISTRY_PORT=443
38-
REGISTRY_SERVER=sonicdev-microsoft.azurecr.io
39+
mkdir -p target
3940

40-
docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG local/$SLAVE_BASE_IMAGE-$USER:latest
41-
docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest
42-
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest
43-
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG
41+
docker save $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG | gzip -c > target/$SLAVE_BASE_IMAGE.gz
4442

45-
docker login -u $REGISTRY_USERNAME -p "$REGISTRY_PASSWD" $REGISTRY_SERVER:$REGISTRY_PORT
46-
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest
47-
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG
48-
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest
43+
REGISTRY_PORT=443
44+
REGISTRY_SERVER=sonicdev-microsoft.azurecr.io
45+
46+
docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG local/$SLAVE_BASE_IMAGE-$USER:latest
47+
docker tag $SLAVE_BASE_IMAGE-$USER:$SLAVE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest
48+
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest
49+
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG
50+
51+
docker login -u $REGISTRY_USERNAME -p "$REGISTRY_PASSWD" $REGISTRY_SERVER:$REGISTRY_PORT
52+
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:latest
53+
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG
54+
docker push $REGISTRY_SERVER:$REGISTRY_PORT/$SLAVE_BASE_IMAGE-$USER:latest
55+
}
56+
57+
for arch in amd64 arm64 armhf; do
58+
build_and_push_docker $arch
59+
done

0 commit comments

Comments
 (0)
Please sign in to comment.