From 135039f5264f250689515498e190ca7eda57997c Mon Sep 17 00:00:00 2001 From: David Heidelberg Date: Sun, 9 Apr 2023 22:28:23 +0200 Subject: [PATCH] ci: do not retry on forks to get the upstream kernel and rootfs This commit introduces multiple changes: 1. Now we check for mainline artifacts only when NOT running on the mainline branch 2. if we run on the fork and get 404-like error, it doesn't retry. Reviewed-by: Guilherme Gallo Signed-off-by: David Heidelberg Part-of: --- .gitlab-ci/container/lava_build.sh | 6 +++--- .gitlab-ci/lava/lava-submit.sh | 17 ++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh index 249c6e9..1a133a7 100755 --- a/.gitlab-ci/container/lava_build.sh +++ b/.gitlab-ci/container/lava_build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. # shellcheck disable=SC2034 # Variables are used in scripts called from here # shellcheck disable=SC2086 # we want word splitting @@ -11,13 +11,13 @@ export DEBIAN_FRONTEND=noninteractive check_minio() { MINIO_PATH="${MINIO_HOST}/mesa-lava/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}" - if curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s -X HEAD \ + if curl -L --retry 4 -f --retry-delay 60 -s -X HEAD \ "https://${MINIO_PATH}/done"; then + echo "Remote files are up-to-date, skip rebuilding them." exit fi } -# If remote files are up-to-date, skip rebuilding them check_minio "${FDO_UPSTREAM_REPO}" check_minio "${CI_PROJECT_PATH}" diff --git a/.gitlab-ci/lava/lava-submit.sh b/.gitlab-ci/lava/lava-submit.sh index 29d045a..b359ab5 100755 --- a/.gitlab-ci/lava/lava-submit.sh +++ b/.gitlab-ci/lava/lava-submit.sh @@ -1,15 +1,18 @@ -#!/bin/bash +#!/usr/bin/env bash set -e set -x -# Try to use the kernel and rootfs built in mainline first, so we're more -# likely to hit cache -if curl -s -X HEAD -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then - BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}" -else +# If we run in the fork (not from mesa or Marge-bot), reuse mainline kernel and rootfs, if exist. +BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}" +if [ "$CI_PROJECT_PATH" != "$FDO_UPSTREAM_REPO" ]; then + if ! curl -s -X HEAD -L --retry 4 -f --retry-delay 60 \ + "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then + echo "Using kernel and rootfs from the fork, cached from mainline is unavailable." BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_FORK_HOST_PATH}" + else + echo "Using the cached mainline kernel and rootfs." + fi fi rm -rf results -- 2.7.4