patch #39
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Database update tests | |
on: | |
push: | |
branches: [ devel ] | |
# pull_request: | |
# push: | |
# branches: [ stable ] | |
jobs: | |
database-update: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Get all releases | |
# Format them to a key-value array | |
# Start from release index which is 4.0.0 | |
# Pull images starting from release 4.0.0 | |
# Then pull the next image of the index, etc.. | |
- name: Test all releases update from lbr38/repomanager | |
run: | | |
RELEASES=$(curl -s https://api.github.com/repos/lbr38/repomanager/releases?per_page=10000 | jq -r '.[].name' | tac) | |
index="0" | |
declare -A RELEASES_ARRAY | |
for release in $RELEASES; do | |
RELEASES_ARRAY["$index"]="$release" | |
index=$((index+1)) | |
done | |
for i in "${!RELEASES_ARRAY[@]}"; do | |
if [[ "${RELEASES_ARRAY[$i]}" == "4.0.0" ]]; then | |
start_index="$i" | |
break | |
fi | |
done | |
for ((i=start_index; i<${#RELEASES_ARRAY[@]}; i++)); do | |
release="${RELEASES_ARRAY[$i]}" | |
docker rm -f repomanager-test | |
docker system prune -a -f | |
echo -e "\nPulling image for release $release\n" | |
docker run -d --restart always --name repomanager-dev \ | |
-e FQDN=repomanager-dev.localhost \ | |
-e MAX_UPLOAD_SIZE=32M \ | |
-p 8080:8080 \ | |
-v /etc/localtime:/etc/localtime:ro \ | |
-v /var/lib/docker/volumes/repomanager-dev-data:/var/lib/repomanager \ | |
-v /var/lib/docker/volumes/repomanager-dev-repo:/home/repo \ | |
lbr38/repomanager:$release | |
if [ $? -ne 0 ]; then | |
echo "Failed to pull image for release $release" | |
exit 1 | |
fi | |
# Wait a bit and retrieve container logs | |
sleep 30 | |
OUTPUT=$(docker logs repomanager-test) | |
# Check if the logs contains the success message | |
if ! echo "$OUTPUT" | grep -q "Databases check and initialization successful"; then | |
echo "Database update seems to have failed: $OUTPUT" | |
exit 1 | |
fi | |
if echo "$OUTPUT" | grep -q -i "error"; then | |
echo "Database update seems to have failed: $OUTPUT" | |
exit 1 | |
fi | |
done | |
# Finally, test the devel image | |
- name: Test devel image from lbr38/repomanager | |
run: | | |
docker rm -f repomanager-test | |
docker system prune -a -f | |
echo -e "\Build devel image\n" | |
cd ${GITHUB_WORKSPACE}/docker | |
docker-compose -f docker-compose-dev.yml up -d | |
if [ $? -ne 0 ]; then | |
echo "Failed to build devel image" | |
exit 1 | |
fi | |
# Wait a bit and retrieve container logs | |
sleep 30 | |
OUTPUT=$(docker logs repomanager-test) | |
# Check if the logs contains the success message | |
if ! echo "$OUTPUT" | grep -q "Databases check and initialization successful"; then | |
echo "Database update seems to have failed: $OUTPUT" | |
exit 1 | |
fi | |
if echo "$OUTPUT" | grep -q -i "error"; then | |
echo "Database update seems to have failed: $OUTPUT" | |
exit 1 | |
fi |