build: support nocheck for initial bootstrap builds

Output a warning when this option is used to remind packagers to rebuild
the packages with checks once the bootstrap cycle has been completed.
This commit is contained in:
Levente Polyak 2023-04-01 00:12:56 +02:00
parent 6c2498750e
commit f3518e248c
No known key found for this signature in database
GPG Key ID: FC1B547C8D8172C8
3 changed files with 13 additions and 2 deletions

View File

@ -42,6 +42,7 @@ _pkgctl_build_args=(
'(-o --offload)'{-o,--offload}'[Build on a remote server and transfer artifacts afterwards]'
'(-c --clean)'{-c,--clean}'[Recreate the chroot before building]'
'(-I --install)'{-I,--install}'[Install a package into the working copy of the chroot]:target:_files -g "*.pkg.tar.*(.)"'
'--nocheck[Do not run the check() function in the PKGBUILD]'
'--pkgver=[Set pkgver, reset pkgrel and update checksums]:pkgver:'
'--pkgrel=[Set pkgrel to a given value]:pkgrel:'
'--rebuild[Increment the pkgrel variable]'

View File

@ -38,6 +38,9 @@ Build Options
*-I, --install* 'FILE'::
Install a package into the working copy of the chroot
*--nocheck*::
Do not run the check() function in the PKGBUILD
PKGBUILD Options
----------------

View File

@ -47,6 +47,7 @@ pkgctl_build_usage() {
-o, --offload Build on a remote server and transfer artifacts afterwards
-c, --clean Recreate the chroot before building
-I, --install FILE Install a package into the working copy of the chroot
--nocheck Do not run the check() function in the PKGBUILD
PKGBUILD OPTIONS
--pkgver=PKGVER Set pkgver, reset pkgrel and update checksums
@ -120,6 +121,7 @@ pkgctl_build() {
local BUILD_OPTIONS=()
local MAKECHROOT_OPTIONS=()
local RELEASE_OPTIONS=()
local MAKEPKG_OPTIONS=()
local PTS
PTS="$(tty | sed 's|/dev/pts/||')"
@ -201,6 +203,11 @@ pkgctl_build() {
warning 'installing packages into the chroot may break reproducible builds, use with caution!'
shift 2
;;
--nocheck)
MAKEPKG_OPTIONS+=("--nocheck")
warning 'not running checks is disallowed for official packages, except for bootstrapping. Please rebuild after bootstrapping is completed!'
shift
;;
-r|--release)
# shellcheck source=src/lib/release.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/release.sh
@ -366,9 +373,9 @@ pkgctl_build() {
fi
if (( OFFLOAD )); then
offload-build --repo "${pkgrepo}" -- "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}"
offload-build --repo "${pkgrepo}" -- "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" -- "${MAKEPKG_OPTIONS[@]}"
else
"${BUILDTOOL}" "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}"
"${BUILDTOOL}" "${BUILD_OPTIONS[@]}" -- "${MAKECHROOT_OPTIONS[@]}" -l "${WORKER}" -- "${MAKEPKG_OPTIONS[@]}"
fi
done