From f7823ae44f8c4072ab22ff7acc8a7bfb99dcd944 Mon Sep 17 00:00:00 2001 From: crystal Date: Mon, 18 Nov 2024 08:24:37 -0700 Subject: [PATCH] [squash] fix upgrade failure --- .ci-make.sh | 30 ++++++++++++++++++++++++++++++ .forgejo/workflows/forgejo-deb.yml | 17 +++++++++++++++++ deb/debian/changelog | 8 ++++++++ deb/debian/control | 3 ++- test-res/app.ini.modified | 6 ++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 test-res/app.ini.modified diff --git a/.ci-make.sh b/.ci-make.sh index a1dfce0..e4d37f9 100755 --- a/.ci-make.sh +++ b/.ci-make.sh @@ -31,6 +31,9 @@ case "$1" in "installtest") APREP_APT_EXTRAS="sudo" ;; + "complextest") + APREP_APT_EXTRAS="sudo wget" + ;; "") APREP_APT_EXTRAS= ;; @@ -274,5 +277,32 @@ case "$1" in go download go version ;; + "complex-test") + shift + case "$1" in + "split-deb-upgrade") + shift + rm forgejo-deb-repo_0-0_all.deb + wget --content-disposition https://code.forgejo.org/forgejo-contrib/-/packages/debian/forgejo-deb-repo/0-0/files/2890 + export DEBIAN_FRONTEND=noninteractive + apt install -y ./forgejo-deb-repo_0-0_all.deb + apt update -qq + apt upgrade -y + apt install forgejo$1 + cp test-res/app.ini.modified /etc/forgejo/app.ini + apt install ./forgejo$1_*_amd64.deb ./forgejo-common_*_all.deb + cat /etc/forgejo/app.ini + ;; + esac + ;; + "full-instance-clean") + export DEBIAN_FRONTEND=noninteractive + apt purge -y forgejo forgejo-sqlite forgejo-common forgejo-bin + rm -rf /var/lib/forgejo + rm -rf /etc/forgejo /etc/default/forgejo /etc/systemd/system/forgejo.service.d + sudo deluser forgejo + apt purge -y forgejo-deb-repo forgejo-deb-repokey + exit 0 + ;; esac diff --git a/.forgejo/workflows/forgejo-deb.yml b/.forgejo/workflows/forgejo-deb.yml index 1031a38..156595f 100644 --- a/.forgejo/workflows/forgejo-deb.yml +++ b/.forgejo/workflows/forgejo-deb.yml @@ -186,6 +186,23 @@ jobs: - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb + complextest-split-deb-upgrade: + runs-on: bookworm + steps: + - uses: actions/checkout@v4 + + - name: "actions prep: installtest" + id: ciprep + run: ./.ci-make.sh actions-prep installtest + + - uses: actions/download-artifact@v3 + with: + name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }} + + - run: ./.ci-make.sh complex-test split-deb-upgrade -sqlite + - run: ./.ci-make.sh full-instance-clean + - run: ./.ci-make.sh complex-test split-deb-upgrade + publish-release-repo: runs-on: bookworm if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') && github.repository == 'forgejo-contrib/forgejo-deb' diff --git a/deb/debian/changelog b/deb/debian/changelog index e735460..05f40b4 100644 --- a/deb/debian/changelog +++ b/deb/debian/changelog @@ -1,3 +1,11 @@ +forgejo (7.0.11-2) unstable; urgency=medium + + * Forgejo version 7.0.11 + * See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#7-0-11 + * Fixed an issue when upgrading from non-split packages + + -- crystal Mon, 18 Nov 2024 15:22:00 +0000 + forgejo (7.0.11-1) unstable; urgency=medium * Forgejo version 7.0.11 diff --git a/deb/debian/control b/deb/debian/control index ae16460..4dd44a1 100644 --- a/deb/debian/control +++ b/deb/debian/control @@ -25,7 +25,8 @@ Description: Forgejo: Beyond Coding. We Forge. (SQLite) Package: forgejo-common Architecture: all Priority: optional -Depends: forgejo | forgejo-sqlite (= ${source:Version}) +Depends: forgejo (= ${source:Version}) | forgejo-sqlite (= ${source:Version}) +Replaces: forgejo Conflicts: forgejo-bin Description: Common files for Forgejo Common data used for all Forgejo packages and architectures. diff --git a/test-res/app.ini.modified b/test-res/app.ini.modified new file mode 100644 index 0000000..fa7fce4 --- /dev/null +++ b/test-res/app.ini.modified @@ -0,0 +1,6 @@ +# Empty default config file for forgejo-deb +# Forgejo's installer will populate this file with appropriate defaults. +# See also: https://forgejo.org/docs/latest/admin/config-cheat-sheet + +# This is an example used to demonstrate proper functionality in a test! +