* feat: build and publish debian/{armhf,i386}
Part of https://github.com/ooni/probe/issues/807
* zap temporary build
		
	
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # This script creates a Debian package. When run by `./mk`, it
 | |
| # is run inside a debian:stable container. It's fine to also
 | |
| # run this script from any debian-like system, as long as the
 | |
| # following ASSUMPTIONS are met:
 | |
| #
 | |
| # 1. the `ooniprobe` we are packaging is available at
 | |
| # this path `./CLI/linux/$GOARCH/ooniprobe`;
 | |
| #
 | |
| # 2. we are running on a debian system that has the same
 | |
| # architecture of the `ooniprobe` we are packaging.
 | |
| 
 | |
| if [ $# -ne 1 ] && [ $# -ne 2 ]; then
 | |
| 	echo "usage: $0 {arch} [run_number]" 1>&2
 | |
| 	exit 1
 | |
| fi
 | |
| goarch=$1
 | |
| run_number=$2
 | |
| set -ex
 | |
| 
 | |
| # Copy the target binary in the correct location expected
 | |
| # by the debian/ooniprobe-cli.install file.
 | |
| rm -rf ./debian/bin
 | |
| mkdir -p ./debian/bin
 | |
| cp "./CLI/linux/$goarch/ooniprobe" ./debian/bin
 | |
| 
 | |
| # figure out the version number from the binary itself (which rests
 | |
| # on the assumption that we can run such a binary)
 | |
| version=$(./debian/bin/ooniprobe version)
 | |
| if [ -n "$run_number" ]; then
 | |
| 	version="${version}~${run_number}"
 | |
| fi
 | |
| 
 | |
| # The OONI_DEB_DRY_RUN is a semi-undocumented feature allowing
 | |
| # us to see the commands that would be run by this script.
 | |
| 
 | |
| # install the dependencies required by the build process
 | |
| $OONI_DEB_DRY_RUN apt-get update -q
 | |
| $OONI_DEB_DRY_RUN apt-get build-dep -y --no-install-recommends .
 | |
| 
 | |
| # keep the original changelog file safe
 | |
| $OONI_DEB_DRY_RUN cp ./debian/changelog ./debian/changelog.oocopy
 | |
| 
 | |
| $OONI_DEB_DRY_RUN dch -v "$version" "New version ${version}"
 | |
| $OONI_DEB_DRY_RUN dpkg-buildpackage -us -uc -b
 | |
| 
 | |
| # restore the original changelog file
 | |
| $OONI_DEB_DRY_RUN mv ./debian/changelog.oocopy ./debian/changelog
 | |
| 
 | |
| # move the package so that we don't loose track
 | |
| # of it when using a build container
 | |
| $OONI_DEB_DRY_RUN mv ../*.deb .
 | |
| 
 | |
| darch=""
 | |
| case $goarch in
 | |
| 386)
 | |
| 	darch="i386"
 | |
| 	;;
 | |
| amd64)
 | |
| 	darch="amd64"
 | |
| 	;;
 | |
| arm)
 | |
| 	darch="armhf"
 | |
| 	;;
 | |
| arm64)
 | |
| 	darch="arm64"
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| # install the package on the container as a smoke test to
 | |
| # ensure that it is installable.
 | |
| DEBIAN_FRONTEND=noninteractive dpkg -i "ooniprobe-cli_${version}_${darch}.deb"
 |