Skip to content

Commit c2d22ae

Browse files
committed
build-lxd.yml: Enable dist-upgrade test for debian 13
1 parent 1a90089 commit c2d22ae

1 file changed

Lines changed: 67 additions & 37 deletions

File tree

.github/workflows/build-lxd.yml

Lines changed: 67 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -393,16 +393,15 @@ jobs:
393393
sudo "$LXC" stop ncp
394394
395395
test-dist-upgrade:
396-
if: false
397396
needs:
398397
- determine-runner
399398
runs-on: ${{ needs.determine-runner.outputs.runner_label }}
400399
env:
401400
VERSION: "${{ inputs.git_ref || github.ref }}"
402401
LXC: "${{ needs.determine-runner.outputs.lxc_cmd }}"
403402
LXD_EXTRA_PROFILE: "${{ needs.determine-runner.outputs.lxd_extra_profile }}"
404-
PREVIOUS_IMAGE_URL_ARM64: "https://github.com/nextcloud/nextcloudpi/releases/download/v1.53.2/NextcloudPi_LXD_arm64_v1.53.2.tar.gz"
405-
PREVIOUS_IMAGE_URL_AMD64: "https://github.com/nextcloud/nextcloudpi/releases/download/v1.53.2/NextCloudPi_LXD_x86_v1.53.2.tar.gz"
403+
PREVIOUS_IMAGE_URL_ARM64: "https://github.com/nextcloud/nextcloudpi/releases/download/v1.57.1/NextcloudPi_LXD_arm64_v1.57.1.tar.gz"
404+
PREVIOUS_IMAGE_URL_AMD64: "https://github.com/nextcloud/nextcloudpi/releases/download/v1.57.1/NextCloudPi_LXD_x86_v1.57.1.tar.gz"
406405
USE_INCUS: "${{ needs.determine-runner.outputs.lxc_cmd == 'incus' && 'yes' || 'no' }}"
407406
steps:
408407
- name: Setup incus
@@ -416,7 +415,7 @@ jobs:
416415
- name: Checkout code
417416
uses: actions/checkout@v3
418417
with:
419-
ref: "v1.54.3"
418+
ref: "v1.57.1"
420419
- name: Setup Firefox
421420
if: ${{ runner.arch != 'ARM64' }}
422421
continue-on-error: true
@@ -425,6 +424,7 @@ jobs:
425424
- name: Setup Firefox from packages
426425
if: ${{ runner.arch == 'ARM64' || steps.setup-firefox-browser-action.outcome == 'failure' }}
427426
run: |
427+
sudo apt-get update
428428
sudo apt-get install -y --no-install-recommends firefox
429429
- name: Setup GeckoDriver
430430
env:
@@ -458,8 +458,9 @@ jobs:
458458
- name: Launch ncp container
459459
run: |
460460
set -x
461+
. ./build/buildlib.sh
461462
sudo "$LXC" delete -q -f ncp || true
462-
sudo "$LXC" image import -q "./ncp.tar.gz" --alias "ncp/update"
463+
sudo "$LXC" image import -q "./ncp.tar.gz" --alias "ncp/update" || true
463464
LXC_ARGS=(-p default)
464465
[[ -z "$LXD_EXTRA_PROFILE" ]] || LXC_ARGS+=(-p "$LXD_EXTRA_PROFILE")
465466
systemd-run --user --scope -p "Delegate=yes" "$LXC" launch -q "${LXC_ARGS[@]}" "ncp/update" ncp || \
@@ -477,6 +478,7 @@ jobs:
477478
set -x
478479
export GECKODRIVER_PATH="$GECKODRIVER_PATH"
479480
export FF_BINARY_PATH="$(which firefox)"
481+
sudo "$LXC" exec ncp -- /usr/local/bin/ncc config:system:set overwrite.cli.url --value "https://nextcloudpi.local"
480482
sudo "$LXC" exec ncp -- bash -c 'tail -f /var/log/ncp.log' |& awk '{ print "NCP::" $0 }' &
481483
../.venv/bin/python activation_tests.py --no-gui "nextcloudpi.local" 443 4443 || {
482484
echo "Activation test failed!"
@@ -485,6 +487,10 @@ jobs:
485487
echo "================"
486488
echo "ncp.log: "
487489
sudo "$LXC" exec ncp -- bash -c "tail -n20 /var/log/ncp.log" || true
490+
echo "================"
491+
echo "nextcloud log: "
492+
datadir="$("$LXC" exec ncp -- ncc config:system:get datadirectory)"
493+
sudo "$LXC" exec ncp -- cat "$datadir/nextcloud.log" || true
488494
exit 1
489495
}
490496
../.venv/bin/python nextcloud_tests.py --skip-release-check --no-gui "nextcloudpi.local" 443 4443 || {
@@ -529,21 +535,33 @@ jobs:
529535
530536
current_nc_version="$(sudo "$LXC" exec ncp -- ncc status | grep "version:" | awk '{ print $3 }')"
531537
latest_nc_version="29.0.9"
532-
533-
sudo "$LXC" exec ncp -- apt-get update ||:
534-
sudo "$LXC" exec ncp -- apt-get install --no-install-recommends -y gnupg2
535-
sudo "$LXC" exec ncp -- apt-key adv --fetch-keys https://packages.sury.org/php/apt.gpg
536-
538+
537539
sudo "$LXC" exec ncp -- bash -c "DBG=x ncp-update ${UPDATE_ARGS[*]}"
538540
sudo "$LXC" exec ncp -- /usr/local/bin/ncc status
539541
540-
#if [[ "$current_nc_version" =~ "$latest_nc_version".* ]]
541-
#then
542-
# echo "Nextcloud is up to date - skipping NC update test."
543-
#else
544-
# sudo "$LXC" exec ncp -- bash -c "DBG=x ncp-update-nc ${latest_nc_version?}"
545-
# sudo "$LXC" exec ncp -- /usr/local/bin/ncc status
546-
#fi
542+
if [[ "$current_nc_version" =~ "$latest_nc_version".* ]]
543+
then
544+
echo "Nextcloud is up to date - skipping NC update test."
545+
else
546+
for i in {1..10}
547+
do
548+
echo "running nc update $i/10..."
549+
sudo "$LXC" exec ncp -- bash -c "DBG=x ncp-update-nc ${latest_nc_version?}"
550+
sudo "$LXC" exec ncp -- /usr/local/bin/ncc status
551+
current_nc_version_new="$(sudo "$LXC" exec ncp -- ncc status | grep "version:" | awk '{ print $3 }')"
552+
553+
if [[ "$current_nc_version_new" =~ "$latest_nc_version".* ]]
554+
then
555+
break
556+
fi
557+
if [[ "$current_nc_version" == "$current_nc_version_new" ]]
558+
then
559+
echo "failed to update to $latest_nc_version"
560+
exit 1
561+
fi
562+
current_nc_version="$current_nc_version_new"
563+
done
564+
fi
547565
548566
sudo "$LXC" exec ncp -- rm -f /opt/ncdata/data/nextcloud.log
549567

@@ -564,9 +582,22 @@ jobs:
564582
- name: Test LXD Image
565583
working-directory: ./tests
566584
run: |
585+
set -x
586+
sudo "$LXC" exec ncp -- bash -c 'tail -f /var/log/ncp.log' |& awk '{ print "NCP::" $0 }' &
567587
export GECKODRIVER_PATH="$GECKODRIVER_PATH"
568588
export FF_BINARY_PATH="$(which firefox)"
569-
../.venv/bin/python nextcloud_tests.py --no-gui --skip-release-check "nextcloudpi.local" 443 4443 || {
589+
590+
USE_INCUS="$USE_INCUS" ../.venv/bin/python system_tests.py --skip-update-test --non-interactive || {
591+
echo "System test failed!"
592+
echo "ncp.log: "
593+
sudo "$LXC" exec ncp -- bash -c "tail -n20 /var/log/ncp.log" || true
594+
echo "================"
595+
echo "nextcloud log: "
596+
datadir="$(sudo "$LXC" exec ncp -- ncc config:system:get datadirectory)"
597+
sudo "$LXC" exec ncp -- cat "$datadir/nextcloud.log" || true
598+
exit 1
599+
}
600+
../.venv/bin/python nextcloud_tests.py --no-gui "nextcloudpi.local" 443 4443 || {
570601
echo "Nextcloud test failed!"
571602
echo "Geckodriver logs:"
572603
tail -n 20 geckodriver.log >&2 || true
@@ -579,11 +610,6 @@ jobs:
579610
sudo "$LXC" exec ncp -- cat "$datadir/nextcloud.log" || true
580611
exit 1
581612
}
582-
sudo "$LXC" exec ncp -- bash -c 'tail -f /var/log/ncp.log' |& awk '{ print "NCP::" $0 }' &
583-
USE_INCUS="$USE_INCUS" ../.venv/bin/python system_tests.py --non-interactive --skip-update-test || {
584-
echo "System test failed!"
585-
exit 1
586-
}
587613
- name: Checkout current version
588614
run: |
589615
git fetch origin
@@ -592,7 +618,7 @@ jobs:
592618
id: distupgrade
593619
run: |
594620
set -x
595-
sudo "$LXC" exec ncp -- cat /etc/os-release | grep 'VERSION_ID="11"' || {
621+
sudo "$LXC" exec ncp -- cat /etc/os-release | grep 'VERSION_ID="12"' || {
596622
echo "can't upgrade from Debian $(sudo "$LXC" exec ncp -- cat /etc/os-release | grep VERSION_ID=)"
597623
exit 1
598624
}
@@ -606,14 +632,13 @@ jobs:
606632
then
607633
echo "Nextcloud is up to date - skipping NC update test."
608634
else
609-
610-
for i in {1..10};
635+
for i in {1..10}
611636
do
612-
echo "running nc update ($i/10)..."
637+
echo "running nc update $i/10..."
613638
sudo "$LXC" exec ncp -- bash -c "DBG=x ncp-update-nc ${latest_nc_version?}"
614-
615639
sudo "$LXC" exec ncp -- /usr/local/bin/ncc status
616640
current_nc_version_new="$(sudo "$LXC" exec ncp -- ncc status | grep "version:" | awk '{ print $3 }')"
641+
617642
if [[ "$current_nc_version_new" =~ "$latest_nc_version".* ]]
618643
then
619644
break
@@ -632,10 +657,8 @@ jobs:
632657
- name: Relaunch container
633658
run: |
634659
set -x
635-
LXC_ARGS=()
636-
[[ -z "$LXD_EXTRA_PROFILE" ]] || LXC_ARGS+=(-p "$LXD_EXTRA_PROFILE")
637-
systemd-run --user --scope -p "Delegate=yes" "$LXC" start ncp || \
638-
sudo systemd-run --scope -p "Delegate=yes" "$LXC" start ncp
660+
systemd-run --user --scope -p "Delegate=yes" "$LXC" start -q ncp || \
661+
sudo systemd-run --scope -p "Delegate=yes" "$LXC" start -q ncp
639662
sudo "$LXC" exec ncp -- bash -c 'while [ "$(systemctl is-system-running 2>/dev/null)" != "running" ] && [ "$(systemctl is-system-running 2>/dev/null)" != "degraded" ]; do :; done'
640663
sleep 30
641664
ip="$(sudo "$LXC" list -c n4 -f csv | grep '^ncp' | cut -d ',' -f2)"
@@ -646,9 +669,20 @@ jobs:
646669
working-directory: ./tests
647670
run: |
648671
set -x
672+
sudo "$LXC" exec ncp -- bash -c 'tail -f /var/log/ncp.log' |& awk '{ print "NCP::" $0 }' &
649673
export GECKODRIVER_PATH="$GECKODRIVER_PATH"
650674
export FF_BINARY_PATH="$(which firefox)"
651-
sudo "$LXC" exec ncp -- bash -c 'tail -f /var/log/ncp.log' |& awk '{ print "NCP::" $0 }' &
675+
676+
USE_INCUS="$USE_INCUS" ../.venv/bin/python system_tests.py --skip-update-test --non-interactive || {
677+
echo "System test failed!"
678+
echo "ncp.log: "
679+
sudo "$LXC" exec ncp -- bash -c "tail -n20 /var/log/ncp.log" || true
680+
echo "================"
681+
echo "nextcloud log: "
682+
datadir="$(sudo "$LXC" exec ncp -- ncc config:system:get datadirectory)"
683+
sudo "$LXC" exec ncp -- cat "$datadir/nextcloud.log" || true
684+
exit 1
685+
}
652686
../.venv/bin/python nextcloud_tests.py --no-gui "nextcloudpi.local" 443 4443 || {
653687
echo "Nextcloud test failed!"
654688
echo "Geckodriver logs:"
@@ -662,10 +696,6 @@ jobs:
662696
sudo "$LXC" exec ncp -- cat "$datadir/nextcloud.log" || true
663697
exit 1
664698
}
665-
USE_INCUS="$USE_INCUS" ../.venv/bin/python system_tests.py --non-interactive || {
666-
echo "System test failed!"
667-
exit 1
668-
}
669699
sudo "$LXC" stop ncp
670700
671701
test-fresh-install:

0 commit comments

Comments
 (0)