diff --git a/jenkins/vs/sonic-swss-build/Jenkinsfile b/jenkins/vs/sonic-swss-build/Jenkinsfile index 13a7a89832a4..75bb53bfb52b 100644 --- a/jenkins/vs/sonic-swss-build/Jenkinsfile +++ b/jenkins/vs/sonic-swss-build/Jenkinsfile @@ -4,109 +4,27 @@ pipeline { stages { stage('Prepare') { steps { - checkout([$class: 'GitSCM', - branches: [[name: '*/master']], - doGenerateSubmoduleConfigurations: false, - extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'sonic-swss']], - submoduleCfg: [], - userRemoteConfigs: [[url: 'https://github.com/Azure/sonic-swss']]]) - copyArtifacts(projectName: 'common/sonic-swss-common-build', filter: '**/*.deb', target: 'swss-common', flatten: true) - copyArtifacts(projectName: 'common/hiredis-build', filter: '**/*.deb', target: 'hiredis', flatten: true) - copyArtifacts(projectName: 'common/sonic-utilities-build', filter: '**/*.deb', target: 'sonic-utilities', flatten: true) - copyArtifacts(projectName: 'common/libnl3', filter: '**/*.deb', target: 'libnl3', flatten: true) + dir('swss') { + checkout([$class: 'GitSCM', + branches: [[name: '*/master']], + userRemoteConfigs: [[url: 'https://github.com/Azure/sonic-swss']]]) + } copyArtifacts(projectName: 'sonic-sairedis-build', filter: '**/*.deb', target: 'sairedis', flatten: true) + copyArtifacts(projectName: 'common/sonic-swss-common-build', filter: '**/*.deb', target: 'common', flatten: true) + copyArtifacts(projectName: 'common/sonic-utilities-build', filter: '**/*.deb', target: 'utilities', flatten: true) copyArtifacts(projectName: 'buildimage-vs-all', filter: '**/*', target: 'buildimage', flatten: false) } } stage('Build') { steps { - sh ''' -#!/bin/bash -xe - -set -e - -# Copy latest utility artifacts -cp sonic-utilities/*.deb buildimage/target/python-debs - -cat < build_swss.sh -#!/bin/bash -xe -ls -lrt - -# Install HIREDIS -sudo dpkg -i hiredis/*.deb - -# Install SAIVS -sudo dpkg -i sairedis/libsaivs_*.deb -sudo dpkg -i sairedis/libsaivs-dev_*.deb -sudo dpkg -i sairedis/libsairedis_*.deb -sudo dpkg -i sairedis/libsairedis-dev_*.deb -sudo dpkg -i sairedis/libsaimetadata_*.deb -sudo dpkg -i sairedis/libsaimetadata-dev_*.deb -sudo dpkg -i sairedis/syncd-vs_*.deb - -# Install libnl3 -sudo dpkg -i libnl3/libnl-3-200_*.deb -sudo dpkg -i libnl3/libnl-3-dev_*.deb -sudo dpkg -i libnl3/libnl-genl-3-200_*.deb -sudo dpkg -i libnl3/libnl-genl-3-dev_*.deb -sudo dpkg -i libnl3/libnl-route-3-200_*.deb -sudo dpkg -i libnl3/libnl-route-3-dev_*.deb -sudo dpkg -i libnl3/libnl-nf-3-200_*.deb -sudo dpkg -i libnl3/libnl-cli-3-200_*.deb - -# Install libteam -sudo apt-get install -y libdbus-1-3 -sudo dpkg -i buildimage/target/debs/stretch/libteam5_*.deb -sudo dpkg -i buildimage/target/debs/stretch/libteamdctl0_*.deb -sudo dpkg -i buildimage/target/debs/stretch/libteam-utils_*.deb -sudo dpkg -i buildimage/target/debs/stretch/libteam-dev_*.deb - -# Install SWSS-common -sudo dpkg -i swss-common/*.deb - -cd sonic-swss -./autogen.sh -dpkg-buildpackage -us -uc -b -EOF - -chmod 755 build_swss.sh - -# build swss -docker run --rm=true --privileged -v $(pwd):/sonic -w /sonic -i sonic-slave-stretch-johnar ./build_swss.sh -cp swss_*.deb buildimage/target/debs/stretch/ -cp swss-dbg_*.deb buildimage/target/debs/stretch/ - -cd sairedis -cp *.deb ../buildimage/target/debs/stretch/ -cd ../ - -cd swss-common -cp *.deb ../buildimage/target/debs/stretch/ -cd ../ - -cd buildimage/platform/vs -mkdir -p docker-sonic-vs/debs -mkdir -p docker-sonic-vs/files -mkdir -p docker-sonic-vs/python-debs -mkdir -p docker-sonic-vs/python-wheels -sudo mount --bind ../../target/debs/stretch docker-sonic-vs/debs -sudo mount --bind ../../target/files/stretch docker-sonic-vs/files -sudo mount --bind ../../target/python-debs docker-sonic-vs/python-debs -sudo mount --bind ../../target/python-wheels docker-sonic-vs/python-wheels -docker load < ../../target/docker-config-engine-stretch.gz -docker build --squash --no-cache -t docker-sonic-vs docker-sonic-vs -sudo umount docker-sonic-vs/debs -sudo umount docker-sonic-vs/files -sudo umount docker-sonic-vs/python-debs -sudo umount docker-sonic-vs/python-wheels -cd ../../../ + sh './scripts/vs/sonic-swss-build/build.sh' + } + } -docker save docker-sonic-vs | gzip -c > buildimage/target/docker-sonic-vs.gz - -cd sonic-swss/tests -sudo py.test -v -''' + stage('Test') { + steps { + sh './scripts/vs/sonic-swss-build/test.sh' } } } diff --git a/scripts/vs/sonic-swss-build/build.sh b/scripts/vs/sonic-swss-build/build.sh new file mode 100755 index 000000000000..d77d5fb2db85 --- /dev/null +++ b/scripts/vs/sonic-swss-build/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash -x + +docker run --rm=true --privileged -v $(pwd):/sonic -w /sonic -i sonic-slave-stretch-johnar ./scripts/vs/sonic-swss-build/build_in_docker.sh diff --git a/scripts/vs/sonic-swss-build/build_in_docker.sh b/scripts/vs/sonic-swss-build/build_in_docker.sh new file mode 100755 index 000000000000..809fb66cfcf2 --- /dev/null +++ b/scripts/vs/sonic-swss-build/build_in_docker.sh @@ -0,0 +1,46 @@ +#!/bin/bash -x + +# Install HIREDIS +sudo dpkg -i buildimage/target/debs/stretch/libhiredis*.deb + +# Install libnl3 +sudo dpkg -i buildimage/target/debs/stretch/libnl-3-200_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-3-dev_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-genl-3-200_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-genl-3-dev_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-route-3-200_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-route-3-dev_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-nf-3-200_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-nf-3-dev_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-cli-3-200_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libnl-cli-3-dev_*.deb + +# Install libteam +sudo apt-get install -y libdbus-1-3 +sudo dpkg -i buildimage/target/debs/stretch/libteam5_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libteamdctl0_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libteam-utils_*.deb +sudo dpkg -i buildimage/target/debs/stretch/libteam-dev_*.deb + +# Install SAIVS +sudo dpkg -i sairedis/libsaivs_*.deb +sudo dpkg -i sairedis/libsaivs-dev_*.deb +sudo dpkg -i sairedis/libsairedis_*.deb +sudo dpkg -i sairedis/libsairedis-dev_*.deb +sudo dpkg -i sairedis/libsaimetadata_*.deb +sudo dpkg -i sairedis/libsaimetadata-dev_*.deb +sudo dpkg -i sairedis/syncd-vs_*.deb + +# Install common library +sudo dpkg -i common/libswsscommon_*.deb +sudo dpkg -i common/libswsscommon-dev_*.deb + +pushd swss + +./autogen.sh +fakeroot debian/rules binary + +popd + +mkdir target +cp *.deb target/ diff --git a/scripts/vs/sonic-swss-build/test.sh b/scripts/vs/sonic-swss-build/test.sh new file mode 100755 index 000000000000..f8eef79ad50a --- /dev/null +++ b/scripts/vs/sonic-swss-build/test.sh @@ -0,0 +1,30 @@ +#!/bin/bash -x + +cp *.deb buildimage/target/debs/stretch/ +cp sairedis/*.deb buildimage/target/debs/stretch/ +cp common/*.deb buildimage/target/debs/stretch/ +cp utilities/*.deb buildimage/target/debs/stretch/ + +pushd buildimage/platform/vs +mkdir -p docker-sonic-vs/debs +mkdir -p docker-sonic-vs/files +mkdir -p docker-sonic-vs/python-debs +mkdir -p docker-sonic-vs/python-wheels +sudo mount --bind ../../target/debs/stretch docker-sonic-vs/debs +sudo mount --bind ../../target/files/stretch docker-sonic-vs/files +sudo mount --bind ../../target/python-debs docker-sonic-vs/python-debs +sudo mount --bind ../../target/python-wheels docker-sonic-vs/python-wheels +docker load < ../../target/docker-config-engine-stretch.gz +docker build --squash --no-cache -t docker-sonic-vs docker-sonic-vs +sudo umount docker-sonic-vs/debs +sudo umount docker-sonic-vs/files +sudo umount docker-sonic-vs/python-debs +sudo umount docker-sonic-vs/python-wheels +popd + +docker save docker-sonic-vs | gzip -c > buildimage/target/docker-sonic-vs.gz + +pushd swss/tests +sudo py.test -v +popd +