summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrystal <crystal@noreply.codeberg.org>2024-11-20 04:21:37 -0700
committercrystal <crystal@noreply.codeberg.org>2024-11-20 04:21:37 -0700
commit552135dc7b8b05f3046a9b360d523e15add6101d (patch)
tree70b882d6a2b82133faf93b5a6096b443c0b92082
parent47394d5dfb290c4b9b138216f5b0d1b0161eb9a6 (diff)
[squash] [actions] combine test jobs and use LXC for systemd tests
-rwxr-xr-x.ci-make.sh59
-rw-r--r--.forgejo/workflows/forgejo-deb.yml127
2 files changed, 90 insertions, 96 deletions
diff --git a/.ci-make.sh b/.ci-make.sh
index e4d37f9..4d5de56 100755
--- a/.ci-make.sh
+++ b/.ci-make.sh
@@ -26,13 +26,13 @@ case "$1" in
"actions-prep")
case "$2" in
"build-forgejo-deb")
- APREP_APT_EXTRAS="debhelper devscripts sudo"
+ APREP_APT_EXTRAS="debhelper devscripts sudo retry"
;;
"installtest")
APREP_APT_EXTRAS="sudo"
- ;;
- "complextest")
- APREP_APT_EXTRAS="sudo wget"
+ if [ ! "$TEST_DEBIAN_BUSTER" ] ; then
+ APREP_APT_EXTRAS="$APREP_APT_EXTRAS retry"
+ fi
;;
"")
APREP_APT_EXTRAS=
@@ -212,19 +212,29 @@ case "$1" in
fi
fi
apt install -y $APT_FORGEJO_COMMON ./"$2"
- if [ -f "/etc/default/forgejo" ] || [ "$2" != "${2#"./forgejo-bin_"}" ] ; then
- [ -f "/etc/default/forgejo" ] && . /etc/default/forgejo
- [ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo
- [ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo
- sudo -u $FORGEJO_USER USER=$FORGEJO_USER \
- HOME=$FORGEJO_HOME FORGEJO_WORK_DIR=$FORGEJO_HOME \
- forgejo web -q --config /etc/forgejo/app.ini &
+ if [ -f "/.dockerenv" ] ; then
+ if [ -f "/etc/default/forgejo" ] || [ "$2" != "${2#"./forgejo-bin_"}" ] ; then
+ [ -f "/etc/default/forgejo" ] && . /etc/default/forgejo
+ [ -z "$FORGEJO_HOME" ] && FORGEJO_HOME=/var/lib/forgejo
+ [ -z "$FORGEJO_USER" ] && FORGEJO_USER=forgejo
+ sudo -u $FORGEJO_USER USER=$FORGEJO_USER \
+ HOME=$FORGEJO_HOME FORGEJO_WORK_DIR=$FORGEJO_HOME \
+ forgejo web -q --config /etc/forgejo/app.ini &
+ else
+ echo "No env setup! Run testing defaults using hardcoded vars..."
+ sudo -u forgejo USER=forgejo forgejo web -q &
+ fi
+ sleep 1
+ fi
+ if [ "$TEST_DEBIAN_BUSTER" ] ; then
+ curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
+ if [ "$?" != "0" ] ; then
+ sleep 3
+ curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
+ fi
else
- echo "No env setup! Run testing defaults using hardcoded vars..."
- sudo -u forgejo USER=forgejo forgejo web -q &
+ retry -d 2 -t 2 curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
fi
- sleep 10
- curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
exit $?
;;
"install-repo-test")
@@ -236,11 +246,13 @@ case "$1" in
apt upgrade -y
apt update -qq
apt install -y "$3"
- sudo -u forgejo USER=forgejo \
- HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo \
- forgejo web -q --config /etc/fogejo/app.ini &
- sleep 10
- curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
+ if [ -f "/.dockerenv" ] ; then
+ sudo -u forgejo USER=forgejo \
+ HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo \
+ forgejo web -q --config /etc/fogejo/app.ini &
+ sleep 1
+ fi
+ retry -d 2 -t 2 curl http://localhost:3000/ | grep -A 4 "Powered by Forgejo"
exit $?
;;
"verify-data-dir-chmod")
@@ -300,9 +312,12 @@ case "$1" in
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
+ if [ "$2" = "userinst" ] ; then
+ sudo deluser git
+ else
+ sudo deluser forgejo
+ fi
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 1c310e2..3662e9b 100644
--- a/.forgejo/workflows/forgejo-deb.yml
+++ b/.forgejo/workflows/forgejo-deb.yml
@@ -92,24 +92,8 @@ jobs:
*.deb.sha256
repo-deb/*.deb
- installtest-bookworm-sqlite:
- runs-on: bookworm
- needs: [build-forgejo-deb]
- 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 install-run-test ./forgejo-sqlite_*_amd64.deb
-
- installtest-bullseye-sqlite:
- runs-on: bullseye
+ multitest-bookworm-lxc:
+ runs-on: lxc-bookworm
needs: [build-forgejo-deb]
steps:
- uses: actions/checkout@v4
@@ -117,67 +101,45 @@ jobs:
- 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 install-run-test ./forgejo-sqlite_*_amd64.deb
-
- installtest-buster-sqlite:
- runs-on: buster
- needs: [build-forgejo-deb]
- 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 install-run-test ./forgejo-sqlite_*_amd64.deb
-
- installtest-bookworm-user:
- runs-on: bookworm
- needs: [build-forgejo-deb]
- 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 full-instance-clean
+ - run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh test-userinst-prep
+ - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
+ - run: ./.ci-make.sh full-instance-clean userinst
- run: ./.ci-make.sh test-userinst-prep
- run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
-
- testsuite-repo-upgrade-sqlite:
- runs-on: bookworm
- needs: [build-forgejo-deb]
- 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 full-instance-clean userinst
+ - run: ./.ci-make.sh test-userinst-prep
+ - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
+ - run: ./.ci-make.sh full-instance-clean userinst
- run: ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo-sqlite
- - run: ./.ci-make.sh force-clean-forgejo
- run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
- run: ./.ci-make.sh verify-data-dir-chmod
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo
+ - run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
+ - run: ./.ci-make.sh verify-data-dir-chmod
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-repo-test ./repo-deb/forgejo-deb-repo_0-0_all.deb forgejo-bin
+ - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
+ - run: ./.ci-make.sh verify-data-dir-chmod
+ - run: ./.ci-make.sh full-instance-clean
+ - 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
+ - run: ./.ci-make.sh full-instance-clean
- installtest-buster-bin:
- runs-on: buster
+ multitest-bullseye-docker:
+ runs-on: bullseye
needs: [build-forgejo-deb]
steps:
- uses: actions/checkout@v4
@@ -188,13 +150,24 @@ jobs:
- uses: actions/download-artifact@v3
with:
- name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
+ name: forgejo-deb-${{steps.ciprep.outputs.artifactlabel }}
+ - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
+ - run: ./.ci-make.sh full-instance-clean
- run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
+ - run: ./.ci-make.sh full-instance-clean
- complextest-split-deb-upgrade:
- runs-on: bookworm
+ multitest-buster-docker:
+ runs-on: buster
needs: [build-forgejo-deb]
+ env:
+ TEST_DEBIAN_BUSTER: 1
+
steps:
- uses: actions/checkout@v4
@@ -204,15 +177,21 @@ jobs:
- uses: actions/download-artifact@v3
with:
- name: forgejo-deb-${{ steps.ciprep.outputs.artifactlabel }}
+ name: forgejo-deb-${{steps.ciprep.outputs.artifactlabel }}
- - run: ./.ci-make.sh complex-test split-deb-upgrade -sqlite
+ - run: ./.ci-make.sh install-run-test ./forgejo-sqlite_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-run-test ./forgejo_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
+ - run: ./.ci-make.sh full-instance-clean
+ - run: ./.ci-make.sh install-run-test ./forgejo-bin_*_amd64.deb
+ - run: ./.ci-make.sh force-clean-forgejo
- run: ./.ci-make.sh full-instance-clean
- - run: ./.ci-make.sh complex-test split-deb-upgrade
publish-release-repo:
runs-on: bookworm
- needs: [installtest-bookworm-sqlite, installtest-bullseye-sqlite, installtest-buster-sqlite, installtest-bookworm-user, testsuite-repo-upgrade-sqlite, installtest-buster-bin, complextest-split-deb-upgrade]
+ needs: [multitest-bookworm-lxc, multitest-bullseye-docker, multitest-buster-docker]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') && github.repository == 'forgejo-contrib/forgejo-deb'
steps:
- uses: actions/checkout@v4