| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-15 14:24:26 +01:00
										 |  |  | PACKAGE_URL="ghcr.io/caramelfur/picsur" | 
					
						
							| 
									
										
										
										
											2022-08-26 12:38:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | if [ "$1" == "alpha" ]; then | 
					
						
							| 
									
										
										
										
											2022-09-06 16:32:16 +02:00
										 |  |  |   PACKAGE_URL="$PACKAGE_URL-alpha" | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | elif [ "$1" == "stable" ]; then | 
					
						
							| 
									
										
										
										
											2022-09-06 16:32:16 +02:00
										 |  |  |   true | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2022-09-06 16:32:16 +02:00
										 |  |  |   echo "Usage: $0 [alpha|stable]" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | # Go to this script | 
					
						
							| 
									
										
										
										
											2022-06-05 12:20:16 +02:00
										 |  |  | cd "$(dirname "${BASH_SOURCE[0]}")" | 
					
						
							| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | # Install binfmt | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | docker run --privileged --rm tonistiigi/binfmt --install all | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | # Read current version from ../package.json | 
					
						
							|  |  |  | VERSION=$(cat ../package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "Building version $VERSION" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-27 16:56:59 +01:00
										 |  |  | # Allow host networking for buildx | 
					
						
							| 
									
										
										
										
											2024-10-30 22:02:56 +01:00
										 |  |  | # First check if builder exists | 
					
						
							|  |  |  | if docker buildx ls | grep -q picsur; then | 
					
						
							|  |  |  |   docker buildx create --name picsur --append --driver-opt network=host | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   docker buildx create --name picsur --driver-opt network=host | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-15 14:22:58 +02:00
										 |  |  | docker build \
 | 
					
						
							| 
									
										
										
										
											2022-09-11 16:35:49 +02:00
										 |  |  |   --push \
 | 
					
						
							| 
									
										
										
										
											2022-12-27 16:56:59 +01:00
										 |  |  |   --network host \
 | 
					
						
							| 
									
										
										
										
											2022-09-11 16:35:49 +02:00
										 |  |  |   -t "$PACKAGE_URL-stage1:$VERSION" \
 | 
					
						
							|  |  |  |   -t "$PACKAGE_URL-stage1:latest" \
 | 
					
						
							|  |  |  |   -f ./picsur-stage1.Dockerfile .. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-27 16:56:59 +01:00
										 |  |  | # Exit if stage1 build failed | 
					
						
							|  |  |  | if [ $? -ne 0 ]; then | 
					
						
							|  |  |  |   echo "Stage1 build failed" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | docker buildx build \
 | 
					
						
							| 
									
										
										
										
											2023-06-15 14:22:58 +02:00
										 |  |  |   --builder picsur \
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  |   --platform linux/amd64,linux/arm64 \
 | 
					
						
							|  |  |  |   --push \
 | 
					
						
							| 
									
										
										
										
											2022-12-27 16:56:59 +01:00
										 |  |  |   --network host \
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  |   -t "$PACKAGE_URL:$VERSION" \
 | 
					
						
							|  |  |  |   -t "$PACKAGE_URL:latest" \
 | 
					
						
							| 
									
										
										
										
											2022-09-11 16:35:49 +02:00
										 |  |  |   -f ./picsur-stage2.Dockerfile .. | 
					
						
							| 
									
										
										
										
											2022-02-25 16:41:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-27 16:56:59 +01:00
										 |  |  | # Exit if stage2 build failed | 
					
						
							|  |  |  | if [ $? -ne 0 ]; then | 
					
						
							|  |  |  |   echo "Stage2 build failed" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-02 12:23:18 +02:00
										 |  |  | echo "Done pushing $PACKAGE_URL:$VERSION" |