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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user