main()
{
- local distros=${DISTROS:="debian:oldstable-slim debian:stable-slim debian:testing-slim ubuntu:latest ubuntu:rolling"}
- mkdir --parents build
- cp builder/run build/run
- chmod 755 build/run
+ local distros=${DISTROS:="debian:oldstable-slim
+ debian:stable-slim
+ debian:testing-slim
+ ubuntu:latest
+ ubuntu:rolling"}
+ mkdir --parents build || return $?
+ cp builder/run build/run || return $?
+ chmod 755 build/run || return $?
for distro in $distros; do
local distro_postfix=${distro/:/-}
get_source_date()
{
- umask 0022
- cd /src && export SOURCE_DATE_EPOCH=$(git log --max-count=1 --pretty="%ct")
+ umask 0022 || return $?
+ cd /src || return $?
+ export SOURCE_DATE_EPOCH=$(git log --max-count=1 --pretty="%ct")
export EXTRA_VERSION="-$ID-$VERSION_CODENAME"
}
create_package_checksum()
{
- cd /app/build/build
+ cd /app/build/build || return $?
local package=$(find . -maxdepth 1 -name '*.deb')
lintian --fail-on error,warning,pedantic $package || return $?
sha256sum *.deb > $package.sha256 || return $?
reproducible_package_checksum_check()
{
- cd /app/reproducible-build/build
+ cd /app/reproducible-build/build || return $?
local package=$(find . -maxdepth 1 -name '*.deb')
cp /src/build/$package.sha256 . || return $?
cat $package.sha256 || return $?
- sha256sum -c $package.sha256
+ sha256sum -c $package.sha256 || return $?
}
run_tests()
{
- cd /app
+ cd /app || return $?
rsync --recursive --exclude=build* /src/ /app/tests/ || return $?
- cd /app/tests
+ cd /app/tests || return $?
make --jobs=$(nproc) test || return $?
}
build_package()
{
- cd /app
+ cd /app || return $?
rsync --recursive --exclude=build* /src/ /app/build || return $?
- cd build
+ cd /app/build || return $?
make --jobs=$(nproc) package || return $?
}
copy_package()
{
- mkdir --parents /src/build
+ mkdir --parents /src/build || return $?
cp /app/build/build/*.deb /src/build/ || return $?
cp /app/build/build/*.sha256 /src/build/ || return $?
}
build_reproducible_package()
{
- cd /app
- rsync --recursive --exclude=build* /src/ /app/reproducible-build || return $?
- cd reproducible-build
+ cd /app || return $?
+ rsync --recursive --exclude=build* /src/ /app/reproducible-build \
+ || return $?
+ cd /app/reproducible-build || return $?
make --jobs=$(nproc) package || return $?
}
main()
{
- source /etc/os-release
+ source /etc/os-release || return $?
get_source_date || return $?
run_tests || return $?