fix(go-build-alpine): honour OONI_PSIPHON_TAGS (#968)
Closes https://github.com/ooni/probe/issues/2334. While there, reinstate integration tests, which were also lost in a previous refactoring. However, only run those tests for linux/amd64 because we can be confident that the Go compiler is WAI for all archs we support. While there, always use bash for running end-to-end tests. H/T @ainghazal for discovering and reporting this bug.
This commit is contained in:
parent
2cfc3325db
commit
89a584f93b
8
.github/workflows/debianrepo.yml
vendored
8
.github/workflows/debianrepo.yml
vendored
|
@ -12,26 +12,26 @@ jobs:
|
|||
runs-on: "ubuntu-20.04"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: sudo ./E2E/debian.sh docker i386
|
||||
- run: sudo ./E2E/debian.bash docker i386
|
||||
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||
|
||||
test_amd64:
|
||||
runs-on: "ubuntu-20.04"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: sudo ./E2E/debian.sh docker amd64
|
||||
- run: sudo ./E2E/debian.bash docker amd64
|
||||
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||
|
||||
test_arm:
|
||||
runs-on: "ubuntu-20.04"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: sudo ./E2E/debian.sh docker armhf
|
||||
- run: sudo ./E2E/debian.bash docker armhf
|
||||
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||
|
||||
test_arm64:
|
||||
runs-on: "ubuntu-20.04"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: sudo ./E2E/debian.sh docker arm64
|
||||
- run: sudo ./E2E/debian.bash docker arm64
|
||||
- run: sudo cat DEBIAN_INSTALLED_PACKAGE.txt
|
||||
|
|
21
.github/workflows/linux.yml
vendored
21
.github/workflows/linux.yml
vendored
|
@ -35,7 +35,7 @@ jobs:
|
|||
|
||||
- run: make CLI/linux-static-386
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-386
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-linux-386
|
||||
|
||||
- run: ./script/ghpublish.bash ./CLI/ooniprobe-linux-386 ./CLI/miniooni-linux-386
|
||||
env:
|
||||
|
@ -65,7 +65,18 @@ jobs:
|
|||
|
||||
- run: make CLI/linux-static-amd64
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-amd64
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-linux-amd64
|
||||
|
||||
- name: Get GOVERSION content
|
||||
id: goversion
|
||||
run: echo ::set-output name=version::$(cat GOVERSION)
|
||||
- uses: magnetikonline/action-golang-cache@v2
|
||||
with:
|
||||
go-version: "${{ steps.goversion.outputs.version }}"
|
||||
cache-key-suffix: "-windows-${{ steps.goversion.outputs.version }}"
|
||||
- run: sudo apt-get update -q
|
||||
- run: sudo apt-get install -y tor
|
||||
- run: ./E2E/miniooni.bash ./CLI/miniooni-linux-amd64
|
||||
|
||||
- run: ./script/ghpublish.bash ./CLI/ooniprobe-linux-amd64 ./CLI/miniooni-linux-amd64
|
||||
env:
|
||||
|
@ -98,7 +109,7 @@ jobs:
|
|||
|
||||
- run: make CLI/linux-static-armv6
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-armv6
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-linux-armv6
|
||||
|
||||
- run: ./script/ghpublish.bash ./CLI/ooniprobe-linux-armv6 ./CLI/miniooni-linux-armv6
|
||||
env:
|
||||
|
@ -131,7 +142,7 @@ jobs:
|
|||
|
||||
- run: make CLI/linux-static-armv7
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-armv7
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-linux-armv7
|
||||
|
||||
- run: ./script/ghpublish.bash ./CLI/ooniprobe-linux-armv7 ./CLI/miniooni-linux-armv7
|
||||
env:
|
||||
|
@ -164,7 +175,7 @@ jobs:
|
|||
|
||||
- run: make CLI/linux-static-arm64
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-arm64
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-linux-arm64
|
||||
|
||||
- run: ./script/ghpublish.bash ./CLI/ooniprobe-linux-arm64 ./CLI/miniooni-linux-arm64
|
||||
env:
|
||||
|
|
2
.github/workflows/macos.yml
vendored
2
.github/workflows/macos.yml
vendored
|
@ -39,7 +39,7 @@ jobs:
|
|||
|
||||
- run: make CLI/darwin
|
||||
|
||||
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-darwin-amd64
|
||||
- run: ./E2E/ooniprobe.bash ./CLI/ooniprobe-darwin-amd64
|
||||
|
||||
- run: |
|
||||
./script/ghpublish.bash ./CLI/ooniprobe-darwin-amd64 \
|
||||
|
|
8
.github/workflows/windows.yml
vendored
8
.github/workflows/windows.yml
vendored
|
@ -64,10 +64,16 @@ jobs:
|
|||
actions: read
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ooniprobe-windows-amd64.exe
|
||||
- run: bash.exe ./E2E/ooniprobe.sh ./ooniprobe-windows-amd64.exe
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: miniooni-windows-amd64.exe
|
||||
|
||||
- run: bash.exe ./E2E/ooniprobe.bash ./ooniprobe-windows-amd64.exe
|
||||
|
||||
publish:
|
||||
needs: test
|
||||
|
|
|
@ -8,9 +8,11 @@ export GOCACHE=$GOCACHE
|
|||
export GOMODCACHE=$GOMODCACHE
|
||||
export GOOS=$GOOS
|
||||
export GOARCH=$GOARCH
|
||||
export OONI_PSIPHON_TAGS=${OONI_PSIPHON_TAGS:-}
|
||||
for PACKAGE in $@; do
|
||||
PRODUCT=$(basename $PACKAGE)
|
||||
go build -o ./CLI/$PRODUCT-$GOOS-$OONIARCH \
|
||||
-tags=$OONI_PSIPHON_TAGS \
|
||||
-ldflags='-s -w -extldflags "-static"' \
|
||||
$GOLANG_EXTRA_FLAGS $PACKAGE
|
||||
done
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
# 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
|
||||
set -euo pipefail
|
||||
|
||||
install_flow() {
|
||||
set -x
|
||||
|
@ -26,7 +27,7 @@ docker_flow() {
|
|||
}
|
||||
set -x
|
||||
docker pull debian:stable
|
||||
docker run -v "$(pwd):/ooni" -w /ooni debian:stable ./E2E/debian.sh install "$1"
|
||||
docker run -v "$(pwd):/ooni" -w /ooni debian:stable ./E2E/debian.bash install "$1"
|
||||
}
|
||||
|
||||
if [ "$1" = "docker" ]; then
|
|
@ -1,23 +1,26 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
|
||||
# This script checks whether we're able to submit measurements to
|
||||
# different backends using miniooni. It fails if we cannot find in
|
||||
# the specific backend the measurement we submitted.
|
||||
#
|
||||
set -e
|
||||
# Note: using --tunnel=psiphon assumes that we have been compiling
|
||||
# miniooni with builtin support for psiphon.
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
backends=()
|
||||
backends+=( "https://api.ooni.io" )
|
||||
backends+=( "https://dvp6h0xblpcqp.cloudfront.net" )
|
||||
backends+=( "https://ams-pg-test.ooni.org" )
|
||||
|
||||
miniooni="${1:-./miniooni}"
|
||||
for ps in ${backends[@]}; do
|
||||
opt="-o E2E/o.jsonl --probe-services=$ps"
|
||||
set -x
|
||||
$miniooni --yes $opt -i http://mail.google.com web_connectivity
|
||||
$miniooni --yes $opt tor
|
||||
$miniooni --yes $opt psiphon
|
||||
set +x
|
||||
done
|
||||
set -x
|
||||
go run ./internal/cmd/e2epostprocess -expected 9
|
||||
set +x
|
||||
|
||||
$miniooni --tunnel=psiphon --yes -i http://mail.google.com web_connectivity
|
||||
$miniooni --tunnel=tor --yes -i http://mail.google.com web_connectivity
|
||||
|
||||
#go run ./internal/cmd/e2epostprocess -expected 5 # TODO(bassosimone): fix this
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
#!/bin/bash
|
||||
|
||||
# This test for now uses --no-collector and we just ensure that the OONI
|
||||
# instance is not exploding. We are confident that, if miniooni submits
|
||||
# measurements, also ooniprobe should be able to do that. However, it would
|
||||
# actually be nice if someone could enhance this script to also make sure
|
||||
# that we can actually fetch the measurements we submit.
|
||||
#
|
||||
set -ex
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
if [ "$#" != 1 ]; then
|
||||
echo "Usage: $0 <binary>" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$1 onboard --yes
|
||||
|
||||
# Important! DO NOT run performance from CI b/c it will overload m-lab servers
|
||||
$1 run websites --config cmd/ooniprobe/testdata/testing-config.json --no-collector
|
|
@ -19,7 +19,7 @@ func TestCheckReportIDWorkingAsIntended(t *testing.T) {
|
|||
}
|
||||
client := probeservices.Client{
|
||||
APIClientTemplate: httpx.APIClientTemplate{
|
||||
BaseURL: "https://ams-pg.ooni.org/",
|
||||
BaseURL: "https://api.ooni.io/",
|
||||
HTTPClient: http.DefaultClient,
|
||||
Logger: log.Log,
|
||||
UserAgent: "miniooni/0.1.0-dev",
|
||||
|
@ -42,7 +42,7 @@ func TestCheckReportIDWorkingAsIntended(t *testing.T) {
|
|||
func TestCheckReportIDWorkingWithCancelledContext(t *testing.T) {
|
||||
client := probeservices.Client{
|
||||
APIClientTemplate: httpx.APIClientTemplate{
|
||||
BaseURL: "https://ams-pg.ooni.org/",
|
||||
BaseURL: "https://api.ooni.io/",
|
||||
HTTPClient: http.DefaultClient,
|
||||
Logger: log.Log,
|
||||
UserAgent: "miniooni/0.1.0-dev",
|
||||
|
|
|
@ -17,7 +17,7 @@ import (
|
|||
func TestGetMeasurementMetaWorkingAsIntended(t *testing.T) {
|
||||
client := probeservices.Client{
|
||||
APIClientTemplate: httpx.APIClientTemplate{
|
||||
BaseURL: "https://ams-pg.ooni.org/",
|
||||
BaseURL: "https://api.ooni.io/",
|
||||
HTTPClient: http.DefaultClient,
|
||||
Logger: log.Log,
|
||||
UserAgent: "miniooni/0.1.0-dev",
|
||||
|
@ -85,7 +85,7 @@ func TestGetMeasurementMetaWorkingAsIntended(t *testing.T) {
|
|||
func TestGetMeasurementMetaWorkingWithCancelledContext(t *testing.T) {
|
||||
client := probeservices.Client{
|
||||
APIClientTemplate: httpx.APIClientTemplate{
|
||||
BaseURL: "https://ams-pg.ooni.org/",
|
||||
BaseURL: "https://api.ooni.io/",
|
||||
HTTPClient: http.DefaultClient,
|
||||
Logger: log.Log,
|
||||
UserAgent: "miniooni/0.1.0-dev",
|
||||
|
|
Loading…
Reference in New Issue
Block a user