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).
This commit is contained in:
parent
b7b87ee0de
commit
9848f3713e
21
.github/workflows/debianrepo.yml
vendored
21
.github/workflows/debianrepo.yml
vendored
|
@ -3,33 +3,36 @@ name: debianrepo
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
|
- "stable"
|
||||||
- "release/**"
|
- "release/**"
|
||||||
|
- "master"
|
||||||
|
- "debianrepo"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test_386:
|
test_386:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: ./E2E/debian.sh docker i386
|
- run: sudo ./E2E/debian.sh docker i386
|
||||||
|
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
|
|
||||||
test_amd64:
|
test_amd64:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: ./E2E/debian.sh docker amd64
|
- run: sudo ./E2E/debian.sh docker amd64
|
||||||
|
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
|
|
||||||
test_arm:
|
test_arm:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: sudo apt-get update -q
|
- run: sudo ./E2E/debian.sh docker armhf
|
||||||
- run: sudo apt-get install -y qemu-user-static
|
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
- run: ./E2E/debian.sh docker armhf
|
|
||||||
|
|
||||||
build_arm64:
|
test_arm64:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-20.04"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: sudo apt-get update -q
|
- run: sudo ./E2E/debian.sh docker arm64
|
||||||
- run: sudo apt-get install -y qemu-user-static
|
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
- run: ./E2E/debian.sh docker arm64
|
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
||||||
/*.asc
|
/*.asc
|
||||||
/coverage.cov
|
/coverage.cov
|
||||||
/*.deb
|
/*.deb
|
||||||
|
/DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
/debops-ci
|
/debops-ci
|
||||||
.DS_Store
|
.DS_Store
|
||||||
/*.jsonl
|
/*.jsonl
|
||||||
|
|
|
@ -8,12 +8,14 @@ set -e
|
||||||
install_flow() {
|
install_flow() {
|
||||||
set -x
|
set -x
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
dpkg --add-architecture "$1"
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install --yes gnupg
|
apt-get install --yes gnupg
|
||||||
apt-key adv --verbose --keyserver hkp://keyserver.ubuntu.com --recv-keys 'B5A08F01796E7F521861B449372D1FF271F2DD50'
|
apt-key adv --verbose --keyserver hkp://keyserver.ubuntu.com --recv-keys 'B5A08F01796E7F521861B449372D1FF271F2DD50'
|
||||||
echo "deb http://deb.ooni.org/ unstable main" | tee /etc/apt/sources.list.d/ooniprobe.list
|
echo "deb [arch=$1] http://deb.ooni.org/ unstable main" | tee /etc/apt/sources.list.d/ooniprobe.list
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install --yes ooniprobe-cli
|
apt-get install --yes ooniprobe-cli
|
||||||
|
dpkg -l | grep ooniprobe-cli > DEBIAN_INSTALLED_PACKAGE.txt
|
||||||
}
|
}
|
||||||
|
|
||||||
docker_flow() {
|
docker_flow() {
|
||||||
|
@ -23,8 +25,8 @@ docker_flow() {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
set -x
|
set -x
|
||||||
docker pull --platform "linux/$1" debian:stable
|
docker pull debian:stable
|
||||||
docker run --platform "linux/$1" -v "$(pwd):/ooni" -w /ooni debian:stable ./E2E/debian.sh install
|
docker run -v "$(pwd):/ooni" -w /ooni debian:stable ./E2E/debian.sh install "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$1" = "docker" ]; then
|
if [ "$1" = "docker" ]; then
|
||||||
|
@ -35,10 +37,10 @@ if [ "$1" = "docker" ]; then
|
||||||
docker_flow "$2"
|
docker_flow "$2"
|
||||||
|
|
||||||
elif [ "$1" = "install" ]; then
|
elif [ "$1" = "install" ]; then
|
||||||
install_flow
|
install_flow "$2"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "usage: $0 docker {i386,amd64,armhf,arm64}" 1>&2
|
echo "usage: $0 docker {i386,amd64,armhf,arm64}" 1>&2
|
||||||
echo " $0 install" 1>&2
|
echo " $0 install {i386,amd64,armhf,arm64}" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user