ooni-probe-cli/E2E/debian.sh
Simone Basso 9848f3713e
fix(ci/debianrepo): avoid running docker arm64 (#551)
The issue at https://github.com/ooni/probe/issues/1741 is that running `docker --platform linux/arm64` segfaults when running `sudo apt-get update -q` inside the `arm64` docker environment.

As far as the `debianrepo` rule is concerned, we can fix the issue by taking advantage of Debian multi-arch. We now configure Debian multi-arch and install the package inside a `debian:stable` environment.

We keep using docker. In principle we could not. But the Ubuntu environment provided by GitHub actions does not support multi-arch for arm. Also, I'd like testing this rule to be possible also locally (where I don't have Debian).
2021-10-21 16:55:00 +02:00

47 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# This script checks whether we can install ooniprobe on debian
# for a specific architecture using docker and the official
# install instructions published at https://ooni.org/install.
set -e
install_flow() {
set -x
export DEBIAN_FRONTEND=noninteractive
dpkg --add-architecture "$1"
apt-get update
apt-get install --yes gnupg
apt-key adv --verbose --keyserver hkp://keyserver.ubuntu.com --recv-keys 'B5A08F01796E7F521861B449372D1FF271F2DD50'
echo "deb [arch=$1] http://deb.ooni.org/ unstable main" | tee /etc/apt/sources.list.d/ooniprobe.list
apt-get update
apt-get install --yes ooniprobe-cli
dpkg -l | grep ooniprobe-cli > DEBIAN_INSTALLED_PACKAGE.txt
}
docker_flow() {
printf "checking for docker..."
command -v docker || {
echo "not found"
exit 1
}
set -x
docker pull debian:stable
docker run -v "$(pwd):/ooni" -w /ooni debian:stable ./E2E/debian.sh install "$1"
}
if [ "$1" = "docker" ]; then
test -n "$2" || {
echo "usage: $0 docker {i386,amd64,armhf,arm64}" 1>&2
exit 1
}
docker_flow "$2"
elif [ "$1" = "install" ]; then
install_flow "$2"
else
echo "usage: $0 docker {i386,amd64,armhf,arm64}" 1>&2
echo " $0 install {i386,amd64,armhf,arm64}" 1>&2
exit 1
fi