Automatically publish the latest MultiPaper containers to Docker Hub.
at main 2.4 kB view raw
1#!/bin/bash 2 3github_server_tags=$(git ls-remote --tags) 4 5versions=($(curl -sS -X "GET" https://api.multipaper.io/v2/projects/multipaper | jq -r ".versions[]")) 6for version in "${versions[@]}"; do 7 echo "Version: $version" 8 9 builds=($(curl -sS -X "GET" https://api.multipaper.io/v2/projects/multipaper/versions/$version | jq -r ".builds[]")) 10 for build in "${builds[@]}"; do 11 echo "Version: $build" 12 13 is_exist=$(echo "$github_server_tags" | grep "$version-$build") 14 15 if [ -n "$is_exist" ]; then 16 continue; 17 fi 18 19 echo "The next version: $version-$build" 20 21 downloads=$(curl -sS -X "GET" https://api.multipaper.io/v2/projects/multipaper/versions/$version/builds/$build) 22 23 master_jar=$(echo "$downloads" | jq -r ".downloads[].name" | grep -i "master") 24 server_jar=$(echo "$downloads" | jq -r ".downloads[].name" | grep -i -v "master") 25 26 if [[ $master_jar =~ ([[:digit:]]+.[[:digit:]]+.[[:digit:]]+) ]]; then 27 master_version=${BASH_REMATCH[1]} 28 fi 29 server_version=$version-$build 30 31 echo "Master Jar: $master_jar" 32 echo "Server Jar: $server_jar" 33 echo "master_version: $master_version" 34 echo "server_version: $server_version" 35 36 if [[ -z "$master_version" ]]; then 37 echo "Next: No master version found" 38 continue 39 fi 40 41 mkdir -p server 42 mkdir -p master 43 sed -e "s/{version}/$version/g" -e "s/{build}/$build/g" -e "s/{jar_file}/$server_jar/g" templates/Dockerfile.server > server/Dockerfile 44 sed -e "s/{version}/$version/g" -e "s/{build}/$build/g" -e "s/{jar_file}/$master_jar/g" templates/Dockerfile.master > master/Dockerfile 45 echo "$server_version" > server/tags 46 echo "$master_version" > master/tags 47 48 if [[ -n "$GITHUB_ENV" ]]; then 49 echo "VERSION=$version" >> $GITHUB_ENV 50 echo "BUILD=$build" >> $GITHUB_ENV 51 echo "MASTER_VERSION=$master_version" >> $GITHUB_ENV 52 echo "SERVER_VERSION=$server_version" >> $GITHUB_ENV 53 fi 54 55 exit 56 done 57done 58