From 1f8e6b6e319d3eea6e1b824573471954bc298227 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Thu, 8 Aug 2024 17:53:12 +0200 Subject: [PATCH] chore(ci): optimize end-to-end runs * specify the version targeted by the pull request. The end-to-end tests previously compiled all known branches which was a waste. The pull request now must specify which version it is targeting so that only this version is recompiled and used for testing. * when building the daily releases, use the release from the integration organization to ensure the tests are run against the latest build. Clarify in a comment why the lookup order of organizations is reversed in this particular case. Refs: https://code.forgejo.org/forgejo/end-to-end/pulls/239 --- .forgejo/cascading-pr-end-to-end | 27 ++++++++++++++------------- .forgejo/cascading-release-end-to-end | 16 ++++++++-------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.forgejo/cascading-pr-end-to-end b/.forgejo/cascading-pr-end-to-end index d7a6b46b48..8013fde06a 100755 --- a/.forgejo/cascading-pr-end-to-end +++ b/.forgejo/cascading-pr-end-to-end @@ -13,21 +13,22 @@ minor_version=$(make show-version-minor) cd $end_to_end -if ! test -f forgejo/sources/$minor_version ; then - echo "FAIL: forgejo/sources/$minor_version does not exist in the end-to-end repository" - false +if ! test -f forgejo/sources/$minor_version; then + echo "FAIL: forgejo/sources/$minor_version does not exist in the end-to-end repository" + false fi -date > last-upgrade +echo -n $minor_version >forgejo/build-from-sources +date >last-upgrade -if test -f "$forgejo_pr_or_ref" ; then - forgejo_pr=$forgejo_pr_or_ref - head_url=$(jq --raw-output .head.repo.html_url < $forgejo_pr) - test "$head_url" != null - branch=$(jq --raw-output .head.ref < $forgejo_pr) - test "$branch" != null - echo $head_url $branch $full_version > forgejo/sources/$minor_version +if test -f "$forgejo_pr_or_ref"; then + forgejo_pr=$forgejo_pr_or_ref + head_url=$(jq --raw-output .head.repo.html_url <$forgejo_pr) + test "$head_url" != null + branch=$(jq --raw-output .head.ref <$forgejo_pr) + test "$branch" != null + echo $head_url $branch $full_version >forgejo/sources/$minor_version else - forgejo_ref=$forgejo_pr_or_ref - echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY ${forgejo_ref#refs/heads/} $full_version > forgejo/sources/$minor_version + forgejo_ref=$forgejo_pr_or_ref + echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY ${forgejo_ref#refs/heads/} $full_version >forgejo/sources/$minor_version fi diff --git a/.forgejo/cascading-release-end-to-end b/.forgejo/cascading-release-end-to-end index 08ad8a4431..9be0737b0f 100755 --- a/.forgejo/cascading-release-end-to-end +++ b/.forgejo/cascading-release-end-to-end @@ -8,15 +8,15 @@ forgejo=$3 forgejo_ref=$4 cd $end_to_end -date > last-upgrade +date >last-upgrade organizations=lib/ORGANIZATIONS -if ! test -f $organizations ; then - echo "$organizations file not found" - false +if ! test -f $organizations; then + echo "$organizations file not found" + false fi # -# do not include forgejo-experimental so that 7.0-test is found -# in forgejo-integration where it was just built instead of -# forgejo-experimental which was published by the previous build +# Inverse the order of lookup because the goal in the release built +# pipeline is to test the latest build, if available, instead of the +# stable version by the same version. # -echo forgejo forgejo-integration > $organizations +echo forgejo-integration forgejo-experimental forgejo >$organizations