mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-03 17:43:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			916 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			916 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
set -eu -o pipefail
 | 
						|
 | 
						|
: ${BUILDX_CMD=docker buildx}
 | 
						|
: ${RELEASE_OUT=./release-out}
 | 
						|
: ${CACHE_FROM=}
 | 
						|
: ${CACHE_TO=}
 | 
						|
 | 
						|
if [ -n "$CACHE_FROM" ]; then
 | 
						|
  for cfrom in $CACHE_FROM; do
 | 
						|
    cacheFlags+=(--set "*.cache-from=$cfrom")
 | 
						|
  done
 | 
						|
fi
 | 
						|
if [ -n "$CACHE_TO" ]; then
 | 
						|
  for cto in $CACHE_TO; do
 | 
						|
    cacheFlags+=(--set "*.cache-to=$cto")
 | 
						|
  done
 | 
						|
fi
 | 
						|
 | 
						|
# release
 | 
						|
(set -x ; ${BUILDX_CMD} bake "${cacheFlags[@]}" --set "*.output=$RELEASE_OUT" release)
 | 
						|
 | 
						|
# wrap binaries
 | 
						|
mv -f ./${RELEASE_OUT}/**/* ./${RELEASE_OUT}/
 | 
						|
find ./${RELEASE_OUT} -type d -empty -delete
 | 
						|
 | 
						|
# checksums
 | 
						|
if ! type shasum > /dev/null 2>&1; then
 | 
						|
  echo >&2 "ERROR: shasum is required"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
find ./${RELEASE_OUT}/ -type f \( -iname "buildx-*" ! -iname "*darwin*" \) -print0 | sort -z | xargs -r0 shasum -a 256 -b | sed 's# .*/#  #' > ./${RELEASE_OUT}/checksums.txt
 | 
						|
 | 
						|
# verify
 | 
						|
(
 | 
						|
  cd ./${RELEASE_OUT}
 | 
						|
  shasum -a 256 -U -c checksums.txt
 | 
						|
)
 |