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
This commit is contained in:
Earl Warren 2024-08-08 17:53:12 +02:00
parent 7cfa3305bf
commit 1f8e6b6e31
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
2 changed files with 22 additions and 21 deletions

View file

@ -13,21 +13,22 @@ minor_version=$(make show-version-minor)
cd $end_to_end
if ! test -f forgejo/sources/$minor_version ; then
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
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)
head_url=$(jq --raw-output .head.repo.html_url <$forgejo_pr)
test "$head_url" != null
branch=$(jq --raw-output .head.ref < $forgejo_pr)
branch=$(jq --raw-output .head.ref <$forgejo_pr)
test "$branch" != null
echo $head_url $branch $full_version > forgejo/sources/$minor_version
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
echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY ${forgejo_ref#refs/heads/} $full_version >forgejo/sources/$minor_version
fi

View file

@ -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
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