feat: stop cross compiling miniooni (#908)

See https://github.com/ooni/probe/issues/2119

While there, shrink the Makefile to only export the minimum
set of rules to comfortable build using GHA.
This commit is contained in:
Simone Basso
2022-08-30 11:36:59 +02:00
committed by GitHub
parent d48d44b880
commit 0d57899f46
11 changed files with 111 additions and 323 deletions
+3 -3
View File
@@ -1,4 +1,4 @@
# Builds and publishes Android packages
# Builds and publishes Android packages and binaries
name: android
on:
push:
@@ -35,8 +35,8 @@ jobs:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./MOBILE/android
- run: make ./CLI/android
- run: make MOBILE/android
- run: make CLI/android
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make EXPECTED_XCODE_VERSION=12.4 ./MOBILE/ios
- run: make EXPECTED_XCODE_VERSION=12.4 MOBILE/ios
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
+11 -11
View File
@@ -1,4 +1,4 @@
# Builds and publishes ooniprobe for Linux
# Builds and publishes ooniprobe and miniooni for Linux
name: linux
on:
push:
@@ -23,12 +23,12 @@ jobs:
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-linux-386
- run: make CLI/linux-static-386
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-386
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-linux-386
gh release upload $tag --clobber ./CLI/ooniprobe-linux-386 ./CLI/miniooni-linux-386
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -48,12 +48,12 @@ jobs:
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-linux-amd64
- run: make CLI/linux-static-amd64
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-amd64
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-linux-amd64
gh release upload $tag --clobber ./CLI/ooniprobe-linux-amd64 ./CLI/miniooni-linux-amd64
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -74,12 +74,12 @@ jobs:
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-linux-armv6
- run: make CLI/linux-static-armv6
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-armv6
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-linux-armv6
gh release upload $tag --clobber ./CLI/ooniprobe-linux-armv6 ./CLI/miniooni-linux-armv6
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -100,12 +100,12 @@ jobs:
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-linux-armv7
- run: make CLI/linux-static-armv7
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-armv7
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-linux-armv7
gh release upload $tag --clobber ./CLI/ooniprobe-linux-armv7 ./CLI/miniooni-linux-armv7
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -126,12 +126,12 @@ jobs:
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-linux-arm64
- run: make CLI/linux-static-arm64
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-linux-arm64
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-linux-arm64
gh release upload $tag --clobber ./CLI/ooniprobe-linux-arm64 ./CLI/miniooni-linux-arm64
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+4 -2
View File
@@ -34,7 +34,7 @@ jobs:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/ooniprobe-darwin
- run: make CLI/darwin
- run: ./E2E/ooniprobe.sh ./CLI/ooniprobe-darwin-amd64
@@ -42,7 +42,9 @@ jobs:
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/ooniprobe-darwin-amd64 \
./CLI/ooniprobe-darwin-arm64
./CLI/ooniprobe-darwin-arm64 \
./CLI/miniooni-darwin-amd64 \
./CLI/miniooni-darwin-arm64
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-104
View File
@@ -1,104 +0,0 @@
# This workflow checks whether we can build the research client miniooni
# and publishes the linux binaries as artifacts and, if we're building
# a tag, into the current release. We don't publish artifacts for
# Windows and macOS because they're not signed. For releases, we have
# a script that we'll later use to sign unsigned binaries.
name: miniooni
on:
push:
branches:
- "master"
- "release/**"
- "fullbuild"
tags:
- "v*"
jobs:
build_and_publish:
runs-on: ubuntu-20.04
permissions: # See https://github.com/ooni/probe/issues/2154
contents: write
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Get GOVERSION content
id: goversion
run: echo ::set-output name=version::$(cat GOVERSION)
- uses: actions/setup-go@v3
with:
go-version: "${{ steps.goversion.outputs.version }}"
- run: |
echo -n $PSIPHON_CONFIG_KEY > ./internal/engine/psiphon-config.key
echo $PSIPHON_CONFIG_JSON_AGE_BASE64 | base64 -d > ./internal/engine/psiphon-config.json.age
env:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make ./CLI/miniooni
- run: ./E2E/miniooni.bash ./CLI/miniooni-linux-amd64
- uses: actions/upload-artifact@v1
with:
name: miniooni-darwin-amd64
path: ./CLI/miniooni-darwin-amd64
- uses: actions/upload-artifact@v1
with:
name: miniooni-darwin-arm64
path: ./CLI/miniooni-darwin-arm64
- uses: actions/upload-artifact@v1
with:
name: miniooni-linux-386
path: ./CLI/miniooni-linux-386
- uses: actions/upload-artifact@v1
with:
name: miniooni-linux-amd64
path: ./CLI/miniooni-linux-amd64
- uses: actions/upload-artifact@v1
with:
name: miniooni-linux-armv6
path: ./CLI/miniooni-linux-armv6
- uses: actions/upload-artifact@v1
with:
name: miniooni-linux-armv7
path: ./CLI/miniooni-linux-armv7
- uses: actions/upload-artifact@v1
with:
name: miniooni-linux-arm64
path: ./CLI/miniooni-linux-arm64
- uses: actions/upload-artifact@v1
with:
name: miniooni-windows-386.exe
path: ./CLI/miniooni-windows-386.exe
- uses: actions/upload-artifact@v1
with:
name: miniooni-windows-amd64.exe
path: ./CLI/miniooni-windows-amd64.exe
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ./CLI/miniooni-darwin-amd64 \
./CLI/miniooni-darwin-arm64 \
./CLI/miniooni-linux-386 \
./CLI/miniooni-linux-amd64 \
./CLI/miniooni-linux-armv6 \
./CLI/miniooni-linux-armv7 \
./CLI/miniooni-linux-arm64 \
./CLI/miniooni-windows-386.exe \
./CLI/miniooni-windows-amd64.exe
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+25 -2
View File
@@ -32,18 +32,28 @@ jobs:
PSIPHON_CONFIG_KEY: ${{ secrets.PSIPHON_CONFIG_KEY }}
PSIPHON_CONFIG_JSON_AGE_BASE64: ${{ secrets.PSIPHON_CONFIG_JSON_AGE_BASE64 }}
- run: make EXPECTED_MINGW_W64_VERSION="9.3-win32" ./CLI/ooniprobe-windows
- run: make EXPECTED_MINGW_W64_VERSION="9.3-win32" CLI/windows
- uses: actions/upload-artifact@v2
with:
name: ooniprobe-windows-amd64.exe
path: ./CLI/ooniprobe-windows-amd64.exe
- uses: actions/upload-artifact@v2
with:
name: miniooni-windows-amd64.exe
path: ./CLI/miniooni-windows-amd64.exe
- uses: actions/upload-artifact@v2
with:
name: ooniprobe-windows-386.exe
path: ./CLI/ooniprobe-windows-386.exe
- uses: actions/upload-artifact@v2
with:
name: miniooni-windows-386.exe
path: ./CLI/miniooni-windows-386.exe
test:
needs: build
runs-on: "windows-2019"
@@ -65,17 +75,30 @@ jobs:
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: ooniprobe-windows-amd64.exe
- uses: actions/download-artifact@v2
with:
name: miniooni-windows-amd64.exe
- uses: actions/download-artifact@v2
with:
name: ooniprobe-windows-386.exe
- uses: actions/download-artifact@v2
with:
name: miniooni-windows-386.exe
- run: |
tag=$(echo $GITHUB_REF | sed 's|refs/tags/||g')
gh release create -p $tag --target $GITHUB_SHA || true
gh release upload $tag --clobber ooniprobe-windows-386.exe \
ooniprobe-windows-amd64.exe
ooniprobe-windows-amd64.exe \
miniooni-windows-386.exe
miniooni-windows-amd64.exe
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}