mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 19:43:47 +00:00 
			
		
		
		
	Most of these problems were found by ShellCheck (http://www.shellcheck.net). Signed-off-by: Anders Kaseorg <andersk@mit.edu>
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # build-deb -- Build a pacakge on a remote system with sbuild, then copy it back.
 | |
| #
 | |
| # Inspired by https://www.cs.unb.ca/~bremner/blog/posts/remote_sbuild/ which
 | |
| # was itself adapted from cowpoke(1) from the "devscripts" package.
 | |
| 
 | |
| BUILDD_USERNAME=zulip
 | |
| BUILDD_HOST=build0.zulip.net
 | |
| BUILDD_BASE_PATH=/home/zulip/ubuntu/build/
 | |
| 
 | |
| dist=$1
 | |
| file=$2
 | |
| 
 | |
| if [ -z "$dist" ] || [ -z "$file" ]; then
 | |
|     echo "$(echo "$0" | rev | cut -d "/" -f  1-1 | rev) -- build Debian packages on a Zulip buildslave"
 | |
|     echo
 | |
|     echo "USAGE: $0 dist path/to/package.dsc"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| set -xe
 | |
| 
 | |
| ret=0
 | |
| path=$(ssh -q -l "$BUILDD_USERNAME" "$BUILDD_HOST" -- "mktemp -d '$BUILDD_BASE_PATH/$USER.`date -u +%F.%R`.XXXXXXX'")/
 | |
| 
 | |
| dcmd rsync -vz --copy-links "$file" "$BUILDD_USERNAME@$BUILDD_HOST:$path/"
 | |
| file=$(basename "$file")
 | |
| 
 | |
| # -A specifies to build arch-all packages (non-arch dependent) in addition to
 | |
| # binary packages
 | |
| #
 | |
| # -s specifies the resultant .changes should also include a rebuilt source package
 | |
| #
 | |
| # --force-orig-source means the .changes will have a .orig.tar.* with it, which
 | |
| # otherwise we might omit. We need the orig source when including in our
 | |
| # repository even though dpkg-buildpackage might think otherwise, because the
 | |
| # original version of the package was usually not included in our repository.
 | |
| #
 | |
| # We always build for amd64. There is no 32-bit.
 | |
| 
 | |
| ssh -t -l "$BUILDD_USERNAME" "$BUILDD_HOST" -- "cd '$path' && sbuild -A -s --force-orig-source '--dist=$dist' --arch=amd64 '$file'"
 | |
| 
 | |
| rsync -Lvz --copy-links "$BUILDD_USERNAME@$BUILDD_HOST:$path/*" .
 | |
| ssh -l  "$BUILDD_USERNAME" "$BUILDD_HOST" rm -r "$path"
 | |
| 
 | |
| exit "$ret"
 |