@@ -52,75 +52,6 @@ else
begin_group "CI setup"
fi
-skip_branch_tip_with_tag () {
- # Sometimes, a branch is pushed at the same time the tag that points
- # at the same commit as the tip of the branch is pushed, and building
- # both at the same time is a waste.
- #
- # When the build is triggered by a push to a tag, $CI_BRANCH will
- # have that tagname, e.g. v2.14.0. Let's see if $CI_BRANCH is
- # exactly at a tag, and if so, if it is different from $CI_BRANCH.
- # That way, we can tell if we are building the tip of a branch that
- # is tagged and we can skip the build because we won't be skipping a
- # build of a tag.
-
- if TAG=$(git describe --exact-match "$CI_BRANCH" 2>/dev/null) &&
- test "$TAG" != "$CI_BRANCH"
- then
- echo "$(tput setaf 2)Tip of $CI_BRANCH is exactly at $TAG$(tput sgr0)"
- exit 0
- fi
-}
-
-# Save some info about the current commit's tree, so we can skip the build
-# job if we encounter the same tree again and can provide a useful info
-# message.
-save_good_tree () {
- echo "$(git rev-parse $CI_COMMIT^{tree}) $CI_COMMIT $CI_JOB_NUMBER $CI_JOB_ID" >>"$good_trees_file"
- # limit the file size
- tail -1000 "$good_trees_file" >"$good_trees_file".tmp
- mv "$good_trees_file".tmp "$good_trees_file"
-}
-
-# Skip the build job if the same tree has already been built and tested
-# successfully before (e.g. because the branch got rebased, changing only
-# the commit messages).
-skip_good_tree () {
- if test true = "$GITHUB_ACTIONS"
- then
- return
- fi
-
- if ! good_tree_info="$(grep "^$(git rev-parse $CI_COMMIT^{tree}) " "$good_trees_file")"
- then
- # Haven't seen this tree yet, or no cached good trees file yet.
- # Continue the build job.
- return
- fi
-
- echo "$good_tree_info" | {
- read tree prev_good_commit prev_good_job_number prev_good_job_id
-
- if test "$CI_JOB_ID" = "$prev_good_job_id"
- then
- cat <<-EOF
- $(tput setaf 2)Skipping build job for commit $CI_COMMIT.$(tput sgr0)
- This commit has already been built and tested successfully by this build job.
- To force a re-build delete the branch's cache and then hit 'Restart job'.
- EOF
- else
- cat <<-EOF
- $(tput setaf 2)Skipping build job for commit $CI_COMMIT.$(tput sgr0)
- This commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.
- The log of that build job is available at $SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$prev_good_job_id
- To force a re-build delete the branch's cache and then hit 'Restart job'.
- EOF
- fi
- }
-
- exit 0
-}
-
check_unignored_build_artifacts () {
! git ls-files --other --exclude-standard --error-unmatch \
-- ':/*' 2>/dev/null ||
@@ -144,16 +75,8 @@ if test -n "$SYSTEM_COLLECTIONURI" || test -n "$SYSTEM_TASKDEFINITIONSURI"
then
CI_TYPE=azure-pipelines
# We are running in Azure Pipelines
- CI_BRANCH="$BUILD_SOURCEBRANCH"
- CI_COMMIT="$BUILD_SOURCEVERSION"
- CI_JOB_ID="$BUILD_BUILDID"
- CI_JOB_NUMBER="$BUILD_BUILDNUMBER"
CC="${CC:-gcc}"
- # use a subdirectory of the cache dir (because the file share is shared
- # among *all* phases)
- cache_dir="$HOME/test-cache/$SYSTEM_PHASENAME"
-
export GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save"
export GIT_TEST_OPTS="--verbose-log -x --write-junit-xml"
MAKEFLAGS="$MAKEFLAGS --jobs=10"
@@ -162,11 +85,7 @@ then
elif test true = "$GITHUB_ACTIONS"
then
CI_TYPE=github-actions
- CI_BRANCH="$GITHUB_REF"
- CI_COMMIT="$GITHUB_SHA"
- CI_JOB_ID="$GITHUB_RUN_ID"
CC="${CC_PACKAGE:-${CC:-gcc}}"
- DONT_SKIP_TAGS=t
handle_failed_tests () {
mkdir -p t/failed-test-artifacts
echo "FAILED_TEST_ARTIFACTS=t/failed-test-artifacts" >>$GITHUB_ENV
@@ -189,8 +108,6 @@ then
return 1
}
- cache_dir="$HOME/none"
-
export GIT_PROVE_OPTS="--timer --jobs 10"
export GIT_TEST_OPTS="--verbose-log -x --github-workflow-markup"
MAKEFLAGS="$MAKEFLAGS --jobs=10"
@@ -202,14 +119,6 @@ else
exit 1
fi
-good_trees_file="$cache_dir/good-trees"
-
-mkdir -p "$cache_dir"
-
-test -n "${DONT_SKIP_TAGS-}" ||
-skip_branch_tip_with_tag
-skip_good_tree
-
if test -z "$jobname"
then
jobname="$CI_OS_NAME-$CC"
@@ -47,5 +47,3 @@ then
handle_failed_tests
fi
check_unignored_build_artifacts
-
-save_good_tree
@@ -30,5 +30,3 @@ make hdr-check ||
exit 1
make check-pot
-
-save_good_tree
@@ -41,5 +41,3 @@ grep '<meta name="generator" content="Asciidoctor ' Documentation/git.html
rm -f stdout.log stderr.log stderr.raw
check_unignored_build_artifacts
-
-save_good_tree
Remove the code related to skipping CI runs if the tree was successfully tested before. With the GitHub CI this is done with the "ci-config" step, see e76eec35540 (ci: allow per-branch config for GitHub Actions, 2020-05-07) and 7d78d5fc1a9 (ci: skip GitHub workflow runs for already-tested commits/trees, 2020-10-08). This code hasn't been used since 4a6e4b96026 (CI: remove Travis CI support, 2021-11-23). At one point it was used for the now-removed Azure Pipelines support. That support was removed in 6081d3898fe (ci: retire the Azure Pipelines definition, 2020-04-11), but before in 50b206371d2 (travis: remove the hack to build the Windows job on Azure Pipelines, 2019-02-28) the "save_good_tree" function had not been called by the Azure Pipelines code. Therefore even for those who'd like to resurrect the azure-pipelines.yml for occasional ad-hoc use (see the thread(s) starting at [1]) this change should be OK. This code was really only used for the now-removed Travis CI. This change also removes a subtle potential logic error introduced in 0e7696c64db (ci: disallow directional formatting, 2021-11-04). The "ci/check-directional-formatting.bash" script would have been made to run after the "save_good_tree" in invoked in "ci/run-static-analysis.sh". So if e.g. the "make coccicheck" failed we'd still mark the tree as good. I.e. the addition of "ci/check-directional-formatting.bash" didn't take into account that the various users of the "save_good_tree" function in ci/*.sh made a hard assumption that they're the only ci/*.sh script that's being run (and they use "set -e"). This is entirely academic since we weren't actually running this code, but is something to be careful of if anyone ever needs to resurrect parts of this. Finally, the cache_dir="$HOME/none" added in a3f2eec862b (ci/lib: allow running in GitHub Actions, 2020-04-08) for the GitHub CI can be removed. It appears to have been added to appease the subsequent 'mkdir -p "$cache_dir"', which wasn't needed in GitHub CI. 1. https://lore.kernel.org/git/220609.86r13xsj00.gmgdl@evledraar.gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- ci/lib.sh | 91 --------------------------------------- ci/run-build-and-tests.sh | 2 - ci/run-static-analysis.sh | 2 - ci/test-documentation.sh | 2 - 4 files changed, 97 deletions(-)