From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/4 v5] utils/test-pkg: add mode to only prepare .config files
Date: Mon, 28 Jun 2021 22:15:14 +0200 [thread overview]
Message-ID: <ae1e35ca4f0557873fa25ca5205d92aa2a16dd1f.1624911306.git.yann.morin.1998@free.fr> (raw)
In-Reply-To: <cover.1624911306.git.yann.morin.1998@free.fr>
Currently, running test-pkg is only done locally on the developpers
machine.
In a follow up commit, we'll add the possibility to run test-pkg in a
gitlab-ci pipeline and, to speed up things, with one job per buildable
configuration.
As such, we will need that test-pkg only ever prepares the
configuration, and that it does not build them.
Add such a mode, with a new option, --prepare-only
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
Note: naming is hard; naming options is harder; naming options with a
terse term is even harder; naming options with a terse term that is
still meaningful and explains what the option does, is even harder yet.
---
v5: split off from the next patch into this patch
---
utils/test-pkg | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/utils/test-pkg b/utils/test-pkg
index 54c6c5e8fe..4a20cab57f 100755
--- a/utils/test-pkg
+++ b/utils/test-pkg
@@ -12,13 +12,13 @@ do_clean() {
main() {
local o O opts
- local cfg dir pkg random toolchains_csv toolchain all number mode
+ local cfg dir pkg random toolchains_csv toolchain all number mode prepare_only
local ret nb nb_skip nb_fail nb_legal nb_tc build_dir keep
local -a toolchains
local pkg_br_name
- o='hakc:d:n:p:r:t:'
- O='help,all,keep,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
+ o='hakgc:d:n:p:r:t:'
+ O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")"
eval set -- "${opts}"
@@ -27,6 +27,7 @@ main() {
keep=0
number=0
mode=0
+ prepare_only=0
toolchains_csv="${TOOLCHAINS_CSV}"
while [ ${#} -gt 0 ]; do
case "${1}" in
@@ -39,6 +40,9 @@ main() {
(-k|--keep)
keep=1; shift 1
;;
+ (-l|--prepare-only)
+ prepare_only=1; shift 1
+ ;;
(-c|--config-snippet)
cfg="${2}"; shift 2
;;
@@ -127,7 +131,7 @@ main() {
toolchain="$(basename "${toolchainconfig}" .config)"
build_dir="${dir}/${toolchain}"
printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc}
- build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" && ret=0 || ret=${?}
+ build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" "${prepare_only}" && ret=0 || ret=${?}
case ${ret} in
(0) printf "OK\n";;
(1) : $((nb_skip++)); printf "SKIPPED\n";;
@@ -147,6 +151,7 @@ build_one() {
local toolchainconfig="${2}"
local cfg="${3}"
local pkg="${4}"
+ local defer="${5}"
mkdir -p "${dir}"
@@ -170,6 +175,11 @@ build_one() {
# Remove file, it's empty anyway.
rm -f "${dir}/missing.config"
+ # Defer building the job to the caller (e.g. a gitlab pipeline)
+ if [ ${defer} -eq 1 ]; then
+ return 0
+ fi
+
if [ -n "${pkg}" ]; then
if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then
return 2
@@ -257,6 +267,10 @@ Options:
Note: the logfile and configuration is always retained, even without
this option.
+ --prepare-only
+ Only prepare the .config files, but do not build them. Output the
+ list of build directories to stdout, and the status on stderr.
+
Example:
Testing libcec would require a config snippet that contains:
--
2.25.1
next prev parent reply other threads:[~2021-06-28 20:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-28 20:15 [Buildroot] [PATCH 0/4 v5] gitlab-ci: allow running test-pkg (branch yem/test-pkg-in-gitlab-ci) Yann E. MORIN
2021-06-28 20:15 ` [Buildroot] [PATCH 1/4 v5] support/misc/gitlab-ci.yml.in: templatise the make command Yann E. MORIN
2021-06-28 20:20 ` Thomas Petazzoni
2021-08-05 20:47 ` Arnout Vandecappelle
2021-06-28 20:15 ` [Buildroot] [PATCH 2/4 v5] utils/test-pkg: remove configurations that are skipped Yann E. MORIN
2021-06-28 20:15 ` Yann E. MORIN [this message]
2021-08-05 20:45 ` [Buildroot] [PATCH 3/4 v5] utils/test-pkg: add mode to only prepare .config files Arnout Vandecappelle
2021-08-21 13:38 ` Romain Naour
2021-08-21 16:27 ` Yann E. MORIN
2021-06-28 20:15 ` [Buildroot] [PATCH 4/4 v5] utils/test-pkg: add gitlab-ci support Yann E. MORIN
2021-07-13 11:29 ` Yegor Yefremov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ae1e35ca4f0557873fa25ca5205d92aa2a16dd1f.1624911306.git.yann.morin.1998@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).