From 149c6a545cf206580c1b50899c4a0e1678ffa136 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Thu, 8 Aug 2024 17:05:42 +0200 Subject: [PATCH] lib: source build replace the matching release Instead of having an explicit vX.Y-dev version to be referenced explicitly, a binary built from source replaces the matching version. For instance, if forgejo/build-from-sources contains v9.0, * the development branch is compiled from source * the v9.0 artifact is uploaded * prior to running any test, the artificat is downloaded and used * the v9.0 binary is not downloaded from forgejo/experimental/integration because it is already present The vX.Y release is built daily and the end-to-end tests run on it. If a regression is introduced, it will be spotted within 24h. Compiling from source is used when the Forgejo runs the end-to-end suite on a specific pull request. --- .forgejo/workflows/end-to-end.yml | 16 +++++++++++----- lib/lib.sh | 12 ------------ packages/alpine.sh | 2 +- upgrade/test-pprof-upload.sh | 8 ++++---- upgrade/upgrade.sh | 7 +++---- 5 files changed, 19 insertions(+), 26 deletions(-) diff --git a/.forgejo/workflows/end-to-end.yml b/.forgejo/workflows/end-to-end.yml index 83ce388..05d43c5 100644 --- a/.forgejo/workflows/end-to-end.yml +++ b/.forgejo/workflows/end-to-end.yml @@ -31,8 +31,15 @@ jobs: go-version: "1.22" - name: lib/build.sh run: | - set -x + mkdir $d /tmp/forgejo-upload + touch /tmp/forgejo-upload/PLACEHOLDER + if ! test -f forgejo/build-from-sources; then + echo forgejo/build-from-sources is not present, do not build any version from source + exit 0 + fi + + set -x # # SQLite needs gcc to be compiled # @@ -41,13 +48,12 @@ jobs: apt-get -q install -y -qq build-essential d=/tmp/forgejo-binaries - mkdir $d /tmp/forgejo-upload - for version in $(ls forgejo/sources) ; do - forgejo=$d/forgejo-$version-dev + for version in $(cat forgejo/build-from-sources) ; do lib/build.sh $version $d + forgejo=$d/forgejo-$version-dev $forgejo --version - mv $forgejo /tmp/forgejo-upload + mv $forgejo /tmp/forgejo-upload/forgejo-$version done - uses: actions/upload-artifact@v3 with: diff --git a/lib/lib.sh b/lib/lib.sh index 9dc8ee3..a7471b8 100644 --- a/lib/lib.sh +++ b/lib/lib.sh @@ -70,18 +70,6 @@ function dependencies() { fi } -function build_all() { - for dev in $RELEASE_NUMBERS; do - local forgejo=$DIR_BINARIES/forgejo-$dev-dev - if test -f $forgejo; then - log_info $dev already exists - else - $LIB_DIR/build.sh $dev $DIR_BINARIES - log_info $dev built from sources - fi - done -} - function retry() { rm -f $DIR/wait-for.out success=false diff --git a/packages/alpine.sh b/packages/alpine.sh index 3a4ea78..4ae92ae 100644 --- a/packages/alpine.sh +++ b/packages/alpine.sh @@ -17,7 +17,7 @@ function test_packages_alpine_version() { function test_packages_alpine() { for alpine_version in 3.19 3.20; do - for forgejo_version in 7.0-dev 9.0-dev; do + for forgejo_version in 7.0 9.0; do test_packages_alpine_version $alpine_version $forgejo_version done done diff --git a/upgrade/test-pprof-upload.sh b/upgrade/test-pprof-upload.sh index 48e0005..5c67687 100644 --- a/upgrade/test-pprof-upload.sh +++ b/upgrade/test-pprof-upload.sh @@ -28,13 +28,13 @@ function test_forgejo_pprof() { docker run --name test_pyroscope --rm -d -p 4040:4040 docker.io/grafana/pyroscope reset_forgejo $UPGRADE_DIR/default-app.ini - log_info "run 7.0-dev" - start 7.0-dev + log_info "run 7.0" + start 7.0 test_upload_profiles stop - log_info "run 9.0-dev" - start 9.0-dev + log_info "run 9.0" + start 9.0 test_upload_profiles stop diff --git a/upgrade/upgrade.sh b/upgrade/upgrade.sh index 79c65cc..fb2f8c8 100755 --- a/upgrade/upgrade.sh +++ b/upgrade/upgrade.sh @@ -52,9 +52,9 @@ function test_successful_upgrades() { function test_gitea_upgrades() { local config=$UPGRADE_DIR/default-app.ini ( - echo gitea 1.21 forgejo 7.0-dev - echo gitea 1.21 forgejo 9.0-dev - echo gitea 1.22 forgejo 9.0-dev + echo gitea 1.21 forgejo 7.0 + echo gitea 1.21 forgejo 9.0 + echo gitea 1.22 forgejo 9.0 ) | while read gitea gitea_version forgejo forgejo_version; do log_info "upgrading from Gitea $gitea_version to Forgejo $forgejo_version" stop @@ -81,7 +81,6 @@ source $UPGRADE_DIR/test-pprof-upload.sh function test_upgrades() { run dependencies - run build_all run test_successful_upgrades run test_forgejo_pprof