Skip to content

Commit

Permalink
[jenkins]: Move script out of Jenkinsfile for re-use purpose (#38)
Browse files Browse the repository at this point in the history
Signed-off-by: Shu0T1an ChenG <[email protected]>
  • Loading branch information
Shuotian Cheng authored Jun 14, 2019
1 parent d1be740 commit f3a13a4
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 95 deletions.
108 changes: 13 additions & 95 deletions jenkins/vs/sonic-swss-build/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<EOF > 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'
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions scripts/vs/sonic-swss-build/build.sh
Original file line number Diff line number Diff line change
@@ -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
46 changes: 46 additions & 0 deletions scripts/vs/sonic-swss-build/build_in_docker.sh
Original file line number Diff line number Diff line change
@@ -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/
30 changes: 30 additions & 0 deletions scripts/vs/sonic-swss-build/test.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit f3a13a4

Please sign in to comment.