| #!/bin/bash |
| |
| # helper script to be invoked by jenkins/buildbot or github actions |
| |
| # $1 [optional]: the build type - release | nightly | test |
| buildtype=${1:-test} |
| |
| set -x |
| set -e |
| |
| PARALLEL=${PARALLEL:-1} |
| TMP=$(mktemp -d /tmp/debuild.XXXXXX) |
| |
| function cleanup() { |
| [[ -d $TMP ]] && rm -rf $TMP |
| } |
| trap cleanup EXIT |
| |
| # populate submodules |
| git submodule update --init --recursive |
| |
| . scripts/git-tag.sh |
| |
| git archive HEAD --prefix=bcc/ --format=tar -o $TMP/bcc_$revision.orig.tar |
| |
| # archive submodules |
| pushd src/cc/libbpf |
| git archive HEAD --prefix=bcc/src/cc/libbpf/ --format=tar -o $TMP/bcc_libbpf_$revision.orig.tar |
| popd |
| |
| pushd $TMP |
| |
| # merge all archives into bcc_$revision.orig.tar.gz |
| tar -A -f bcc_$revision.orig.tar bcc_libbpf_$revision.orig.tar |
| gzip bcc_$revision.orig.tar |
| |
| tar xf bcc_$revision.orig.tar.gz |
| cd bcc |
| |
| debuild=debuild |
| if [[ "$buildtype" = "test" ]]; then |
| # when testing, use faster compression options |
| debuild+=" --preserve-envvar PATH" |
| echo -e '#!/bin/bash\nexec /usr/bin/dpkg-deb -z1 "$@"' \ |
| | sudo tee /usr/local/bin/dpkg-deb |
| sudo chmod +x /usr/local/bin/dpkg-deb |
| dch -b -v $revision-$release "$git_subject" |
| fi |
| if [[ "$buildtype" = "nightly" ]]; then |
| dch -v $revision-$release "$git_subject" |
| fi |
| |
| DEB_BUILD_OPTIONS="nocheck parallel=${PARALLEL}" $debuild -us -uc |
| popd |
| |
| cp $TMP/*.deb . |