From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] ci: skip unavailable external software
Date: Fri, 25 Apr 2025 06:19:29 +0200 [thread overview]
Message-ID: <aAsNUYUKJZbrMCf2@pks.im> (raw)
In-Reply-To: <xmqqmsc5rw94.fsf@gitster.g>
On Thu, Apr 24, 2025 at 04:10:47PM -0700, Junio C Hamano wrote:
> The ci/install-dependencies.sh script used in a very early phase of
> our CI jobs downloads Perforce, Git-LFS, and JGit, used for running
> the test scripts. The test framework is prepared to properly skip
> the tests that depend on these external software, but the CI script
> is unnecessarily strict (due to its use of "set -e" in ci/lib.sh)
> and fails the entire CI run before even starting to test the rest of
> the system.
>
> Notice a failure to download to any of these external software, but
> keep going. We need to be careful about cleaning after a failed
> wget, as a later part of the script that does:
>
> if type jgit >/dev/null 2>&1
> then
> echo "$(tput setaf 6)JGit Version$(tput sgr0)"
> jgit version
> else
> echo >&2 "WARNING: JGit wasn't installed, see above for clues why"
> fi
>
> will (surprise!) succeed running "type jgit", and then fail with
> "jgit version", taking the whole thing down due to "set -e".
Yeah, I think this is a sensible direction to go. It is unfortunate that
this may lead to silent breakage of these dependencies unless somebody
explicitly looks for those warnings. But that feels like the lesser evil
compared to failing the whole pipeline.
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> ci/install-dependencies.sh | 31 ++++++++++++++++++++++---------
> 1 file changed, 22 insertions(+), 9 deletions(-)
>
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 0df74610d0..e51304c3b0 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -66,16 +66,29 @@ ubuntu-*|i386/ubuntu-*|debian-*)
> mkdir --parents "$CUSTOM_PATH"
>
> wget --quiet --directory-prefix="$CUSTOM_PATH" \
> - "$P4WHENCE/bin.linux26x86_64/p4d" "$P4WHENCE/bin.linux26x86_64/p4"
> - chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4"
> -
> - wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
> + "$P4WHENCE/bin.linux26x86_64/p4d" \
> + "$P4WHENCE/bin.linux26x86_64/p4" &&
> + chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4" || {
> + rm -f "$CUSTOM_PATH/p4"
> + rm -f "$CUSTOM_PATH/p4d"
> + echo >&2 "P4 download (optional) failed"
> + }
I think it would be preferable to only handle failure of wget as chmod
shouldn't ever fail if wget was successful. The same is true for the
other downloads -- let's be as strict as possible but allow failure of
those actions that depend on the network.
Patrick
next prev parent reply other threads:[~2025-04-25 4:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-24 22:13 repo.eclipse.org outage breaking all our linux CI jobs Junio C Hamano
2025-04-24 23:10 ` [PATCH] ci: skip unavailable external software Junio C Hamano
2025-04-25 4:19 ` Patrick Steinhardt [this message]
2025-04-25 9:49 ` Junio C Hamano
2025-04-25 10:02 ` Patrick Steinhardt
2025-04-25 14:39 ` Junio C Hamano
2025-04-25 12:01 ` Johannes Schindelin
2025-04-25 14:41 ` Junio C Hamano
2025-04-25 15:38 ` [PATCH 0/2] ci: update unavailable external software handling Junio C Hamano
2025-04-25 15:38 ` [PATCH 1/2] ci: update the message for unavailble third-party software Junio C Hamano
2025-04-25 15:38 ` [PATCH 2/2] ci: download JGit from maven, not eclipse.org Junio C Hamano
2025-04-25 14:57 ` repo.eclipse.org outage breaking all our linux CI jobs shejialuo
2025-04-25 15:20 ` Junio C Hamano
2025-04-26 14:12 ` shejialuo
2025-04-28 6:49 ` Patrick Steinhardt
2025-04-28 10:30 ` shejialuo
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=aAsNUYUKJZbrMCf2@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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).