mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-01-14 20:24:08 +01:00
52 lines
1.9 KiB
Bash
Executable file
52 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
WARNED='0'
|
|
FAILED='0'
|
|
FEATURES='-ipc-sandbox -network-sandbox -pid-sandbox'
|
|
export FEATURES
|
|
[ -d '/etc/portage/env' ] || mkdir -p /etc/portage/env/
|
|
printf 'FEATURES="%s test' "${FEATURES}" >> /etc/portage/env/features-test
|
|
|
|
pretend_build() {
|
|
emerge --getbinpkg=y --buildpkg=n --jobs="$(nproc)" --load-average="$(nproc)" --verbose --pretend "${1}"
|
|
}
|
|
|
|
dep_build() {
|
|
emerge --getbinpkg=y --buildpkg=n --jobs="$(nproc)" --load-average="$(nproc)" --verbose --onlydeps "${1}"
|
|
}
|
|
|
|
build() {
|
|
emerge --getbinpkg=y --buildpkg=n --jobs="$(nproc)" --load-average="$(nproc)" --verbose "${1}"
|
|
}
|
|
|
|
for i in $(git --no-pager diff --name-only "$(git rev-parse --verify origin/master 2> /dev/null)" HEAD); do
|
|
if [ "${i%.ebuild}" != "${i}" ]; then
|
|
test_ebuild="$(printf '%s' "${i%.ebuild}" | awk -F'/' '{print "="$1"/"$3}')"
|
|
printf '%s features-test' "${test_ebuild}" >> /etc/portage/package.env
|
|
printf '%s looks like an ebuild, testing visibility\n' "${i}"
|
|
if pretend_build "${test_ebuild}" ; then
|
|
printf '%s appears to be unmasked, building deps\n' "${i}"
|
|
if dep_build "${test_ebuild}"; then
|
|
printf '%s appears to be unmasked, build testing\n' "${i}"
|
|
if build "${test_ebuild}"; then
|
|
printf '%s build SUCCESS\n' "${i}"
|
|
else
|
|
printf '%s build FAILED\n' "${i}"
|
|
FAILED="1"
|
|
fi
|
|
else
|
|
printf 'WARNING WARNING WARNING\n'
|
|
printf '%s deps failed to build. This is a bad sign which we are ignoring for now\n' "${i}"
|
|
printf 'WARNING WARNING WARNING\n'
|
|
WARNED='1'
|
|
fi
|
|
else
|
|
printf '%s appears to be masked, skipping build test\n' "${i}"
|
|
fi
|
|
fi
|
|
done
|
|
if [ "${WARNED}" = '1' ]; then
|
|
printf 'WARNING WARNING WARNING\n'
|
|
printf 'There were warnings during this build which may be fatal later. Please review the logs.\n'
|
|
printf 'WARNING WARNING WARNING\n'
|
|
fi
|
|
exit "${FAILED}"
|