mirror of
https://github.com/nextcloud/nextcloudpi.git
synced 2026-01-10 15:12:01 -03:30
build-docker.yml: Include nextcloud update in update test
Signed-off-by: Tobias Knöppler <6317548+theCalcaholic@users.noreply.github.com>
This commit is contained in:
parent
04cf27148c
commit
f763e79f76
88
.github/workflows/build-docker.yml
vendored
88
.github/workflows/build-docker.yml
vendored
@ -58,7 +58,7 @@ jobs:
|
||||
./build/build-docker.sh "${ARCH?}"
|
||||
docker tag "ownyourbits/nextcloudpi-${ARCH?}:latest" "thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}"
|
||||
testing_image="ownyourbits/nextcloudpi-${ARCH?}:latest"
|
||||
[[ "${ARCH?}" == "arm64" ]] && testing_image="ownyourbits/ncp-qemu-fix-${ARCH?}:latest"
|
||||
[[ "${ARCH?}" == "x86" ]] || testing_image="ownyourbits/ncp-qemu-fix-${ARCH?}:latest"
|
||||
docker tag "${testing_image}" "thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}-testing"
|
||||
docker push "thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}"
|
||||
docker push "thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}-testing"
|
||||
@ -186,7 +186,60 @@ jobs:
|
||||
- name: Start new container
|
||||
run: |
|
||||
docker stop nextcloudpi
|
||||
docker run -d -v ncdata:/data --rm -p 8443:443 -p 4443:4443 --name nextcloudpi thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}-testing localhost
|
||||
docker run -d -v ncdata:/data --rm -p 8443:443 -p 4443:4443 -e NOBACKUP=true --name nextcloudpi thecalcaholic/ncp-internal-${ARCH?}:${{ github.run_id }}-testing localhost
|
||||
- name: Wait for container startup
|
||||
run: |
|
||||
set -e
|
||||
docker logs nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }"
|
||||
echo -e "${LOG_DCKR} =========="
|
||||
docker logs -f nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }" &
|
||||
|
||||
attempt=0
|
||||
for attempt in {1..30}
|
||||
do
|
||||
echo -e "${LOG_CICD} Waiting for container startup (attempt $attempt/30)..."
|
||||
redis_pw="$(docker exec nextcloudpi bash -c ". /usr/local/etc/library.sh; get_nc_config_value 'redis\"][\"password'")"
|
||||
redis_socket="$(docker exec nextcloudpi bash -c ". /usr/local/etc/library.sh; get_nc_config_value 'redis\"][\"host'")"
|
||||
if docker logs nextcloudpi 2> /dev/null | grep '^Init done' > /dev/null \
|
||||
&& [[ "$(docker exec nextcloudpi ncc maintenance:mode)" =~ .*disabled.* ]] \
|
||||
&& docker exec nextcloudpi ncc status \
|
||||
&& docker exec nextcloudpi redis-cli -s "$redis_socket" -a "$redis_pw" set redisready yes \
|
||||
&& docker exec nextcloudpi redis-cli -s "$redis_socket" -a "$redis_pw" get redisready
|
||||
then
|
||||
echo -e "${LOG_CICD} Startup successful"
|
||||
break
|
||||
elif [[ "$attempt" -ge 30 ]]
|
||||
then
|
||||
echo -e "${LOG_CICD} Timeout reached."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
attempt=$((attempt + 1))
|
||||
sleep 5
|
||||
done
|
||||
- name: Update Nextcloud
|
||||
run: |
|
||||
set -e
|
||||
docker logs nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }"
|
||||
echo -e "${LOG_DCKR} =========="
|
||||
docker logs -f nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }" &
|
||||
|
||||
current_nc_version="$(docker exec nextcloudpi ncc status | grep "version:" | awk '{ print $3 }')"
|
||||
latest_nc_version="$(docker exec nextcloudpi cat /usr/local/etc/ncp.cfg | jq -r '.nextcloud_version')"
|
||||
|
||||
if [[ "$current_nc_version" == "$latest_nc_version".* ]]
|
||||
then
|
||||
echo -e "${LOG_CICD} Nextcloud is up to date - skipping NC update test."
|
||||
else
|
||||
docker exec nextcloudpi bash -c "DBG=x ncp-update-nc ${latest_nc_version?}" |& awk "{ print \"${LOG_DCKR} \" \$0 }"
|
||||
[[ ${PIPESTATUS[0]} -eq 0 ]] || {
|
||||
echo -e "${LOG_CICD} Nextcloud Update failed"
|
||||
echo -e "${LOG_CICD} Creating error report..."
|
||||
docker exec nextcloudpi bash /usr/local/bin/ncp-report > error-report.txt
|
||||
docker exec nextcloudpi bash /usr/local/bin/ncp-diag |& awk "{ print \"${LOG_DIAG} \" \$0 }"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
- name: Integration Tests
|
||||
working-directory: ./tests
|
||||
run: |
|
||||
@ -213,6 +266,8 @@ jobs:
|
||||
done
|
||||
[[ "$success" == "true" ]] || {
|
||||
echo -e "${LOG_CICD} System test failed in all attempts!"
|
||||
echo -e "${LOG_CICD} Creating error report..."
|
||||
docker exec nextcloudpi bash /usr/local/bin/ncp-report > error-report.txt
|
||||
exit 1
|
||||
}
|
||||
echo -e "${LOG_CICD} System test successful"
|
||||
@ -284,7 +339,36 @@ jobs:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Setup Selenium
|
||||
run: pip install selenium
|
||||
- name: Wait for container startup
|
||||
run: |
|
||||
set -e
|
||||
docker logs nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }"
|
||||
echo -e "${LOG_DCKR} =========="
|
||||
docker logs -f nextcloudpi |& awk "{ print \"${LOG_DCKR} \" \$0 }" &
|
||||
|
||||
attempt=0
|
||||
for attempt in {1..30}
|
||||
do
|
||||
echo -e "${LOG_CICD} Waiting for container startup (attempt $attempt/30)..."
|
||||
redis_pw="$(docker exec nextcloudpi bash -c ". /usr/local/etc/library.sh; get_nc_config_value 'redis\"][\"password'")"
|
||||
redis_socket="$(docker exec nextcloudpi bash -c ". /usr/local/etc/library.sh; get_nc_config_value 'redis\"][\"host'")"
|
||||
if docker logs nextcloudpi 2> /dev/null | grep '^Init done' > /dev/null \
|
||||
&& [[ "$(docker exec nextcloudpi ncc maintenance:mode)" =~ .*disabled.* ]] \
|
||||
&& docker exec nextcloudpi ncc status \
|
||||
&& docker exec nextcloudpi redis-cli -s "$redis_socket" -a "$redis_pw" set redisready yes \
|
||||
&& docker exec nextcloudpi redis-cli -s "$redis_socket" -a "$redis_pw" get redisready
|
||||
then
|
||||
echo -e "${LOG_CICD} Startup successful"
|
||||
break
|
||||
elif [[ "$attempt" -ge 30 ]]
|
||||
then
|
||||
echo -e "${LOG_CICD} Timeout reached."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
attempt=$((attempt + 1))
|
||||
sleep 5
|
||||
done
|
||||
- name: Integration Tests
|
||||
working-directory: ./tests
|
||||
run: |
|
||||
|
||||
@ -30,7 +30,7 @@ source /usr/local/etc/library.sh
|
||||
[[ -f /.docker-image ]] && BASEDIR=/data || BASEDIR=/var/www
|
||||
cd "$BASEDIR"
|
||||
DATADIR="$( get_nc_config_value datadirectory )"
|
||||
ncc status &>/dev/null || { echo "Nextcloud is currently down"; exit 1; }
|
||||
ncc status &>/dev/null || { [[ "$DBG" == x ]] && ncc status; echo "Nextcloud is currently down"; exit 1; }
|
||||
[[ -d /var/www/nextcloud-old ]] && { echo "Nextcloud backup directory found. Interrupted or already running installation?"; exit 1; }
|
||||
[[ -d /var/www/nextcloud ]] || { echo "Nextcloud directory not found" ; exit 1; }
|
||||
[[ -d "$DATADIR" ]] || { echo "Nextcloud data directory not found" ; exit 1; }
|
||||
|
||||
@ -62,7 +62,7 @@ for file in $( ls -1v /etc/services-enabled.d | grep -v ^000.* ); do
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$NOBACKUP" ]] || [[ "$NOBACKUP" != "true" ]] && ! a2query -s ncp-activation -q
|
||||
if [[ "$NOBACKUP" != "true" ]] && ! a2query -s ncp-activation -q
|
||||
then
|
||||
BKPDIR=/data/docker-startup-backups
|
||||
WITH_DATA=no
|
||||
|
||||
@ -79,6 +79,7 @@ bash /usr/local/bin/nextcloud-domain.sh
|
||||
echo "Nextcloud version $(nc_version). NextCloudPi version $(cat /usr/local/etc/ncp-version)"
|
||||
|
||||
# Display NC logs in the docker logs
|
||||
tail -f -n0 "$(get_nc_config_value logfile)" &
|
||||
LOG_FILE="$(get_nc_config_value logfile 2> /dev/null || true)"
|
||||
tail -f -n0 "${LOG_FILE:-$( get_nc_config_value datadirectory )/nextcloud.log}" &
|
||||
|
||||
exit 0
|
||||
|
||||
@ -28,6 +28,6 @@ install_template "php/pool.d.www.conf.sh" "/etc/php/${PHPVER}/fpm/pool.d/www.con
|
||||
install_template "ncp-metrics.cfg.sh" "/usr/local/etc/ncp-metrics.cfg"
|
||||
|
||||
touch /var/log/ncp.log
|
||||
tail -f -n0 "$(get_nc_config_value logfile)" &
|
||||
tail -f -n0 "/var/log/ncp.log" &
|
||||
|
||||
exit 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user