feat(gha/linux): upload deb packages for arm64 (#337)

We're still working on https://github.com/ooni/probe/issues/1466. The idea here is to teach the GH action for Linux to publish the debian package for arm64. When this is done, we can cleanup legacy build scripts and GH actions, because there is no remaining use case for them: we now build everything using the `./make` tool.
This commit is contained in:
Simone Basso
2021-05-07 09:22:46 +02:00
committed by GitHub
parent 3109d56aef
commit e753e57da3
5 changed files with 22 additions and 210 deletions
-58
View File
@@ -1,58 +0,0 @@
# Shows how to cross compile ooniprobe
name: cross
on:
push:
branches:
- 'release/**'
schedule:
- cron: "14 17 * * 3"
jobs:
windows_from_linux_build:
runs-on: "ubuntu-latest"
steps:
- uses: actions/setup-go@v1
with:
go-version: "1.16"
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install --yes mingw-w64
- run: ./build.sh windows
- uses: actions/upload-artifact@v1
with:
name: ooniprobe-windows-amd64-compiled-from-linux
path: ./CLI/windows/amd64/ooniprobe.exe
test_build_from_linux:
needs: windows_from_linux_build
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: ooniprobe-windows-amd64-compiled-from-linux
- run: bash.exe ./smoketest.sh ./ooniprobe.exe
windows_from_macos_build:
runs-on: "macos-latest"
steps:
- uses: actions/setup-go@v1
with:
go-version: "1.16"
- uses: actions/checkout@v2
- run: brew install mingw-w64
- run: ./build.sh windows
- uses: actions/upload-artifact@v1
with:
name: ooniprobe-windows-amd64-compiled-from-macos
path: ./CLI/windows/amd64/ooniprobe.exe
test_build_from_macos:
needs: windows_from_macos_build
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: ooniprobe-windows-amd64-compiled-from-macos
- run: bash.exe ./smoketest.sh ./ooniprobe.exe
-52
View File
@@ -1,52 +0,0 @@
---
# Build and publish Debian packages
name: debian
on:
push:
branches:
- "master"
- "release/**"
tags:
- "v*"
jobs:
build:
runs-on: "ubuntu-20.04"
steps:
- name: Docker
run: |
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
sudo service docker restart
- uses: actions/setup-go@v1
with:
go-version: "1.16"
- uses: actions/checkout@v2
- run: DOCKER_CLI_EXPERIMENTAL=enabled ./build.sh linux_amd64
- run: mkdir -p debian/bin
- run: cp ./CLI/linux/amd64/ooniprobe debian/bin/ooniprobe
- run: sudo apt-get update -q
- run: sudo apt-get build-dep -y --no-install-recommends .
- name: Install deps
run: sudo apt-get install -y --no-install-recommends git python3 python3-requests python3-gnupg s3cmd
- name: Sign and upload
run: |
VER=$(./CLI/linux/amd64/ooniprobe version)
if [[ ! $GITHUB_REF =~ ^refs/tags/* ]]; then
VER="${VER}~${GITHUB_RUN_NUMBER}"
dch -v $VER "New test version"
BT_REPO="${BT_REPO}-test"
else
dch -v $VER "New release"
fi
dpkg-buildpackage -us -uc -b
find ../ -name "*.deb" -type f
DEB="../ooniprobe-cli_${VER}_amd64.deb"
echo no | sudo dpkg -i $DEB
export DEBFNAME="ooniprobe-cli_${VER}_amd64.deb"
cd $GITHUB_WORKSPACE
# AWS user debci-s3
./.github/workflows/debops-ci --show-commands upload --bucket-name ooni-deb $DEB
env:
DEB_GPG_KEY: ${{ secrets.DEB_GPG_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
BT_REPO: ooniprobe-debian
+3 -1
View File
@@ -304,8 +304,10 @@ def check_duplicate_package(pkgblock, packages_text):
pname = li[0].split(" ", 1)[1]
assert li[1].startswith("Version: "), li
pver = li[1].split(" ", 1)[1]
assert li[2].startswith("Architecture: "), li
parch = li[2].split(" ", 1)[1]
m = f"Package: {pname}\nVersion: {pver}"
m = f"Package: {pname}\nVersion: {pver}\nArchitecture: {parch}"
if m in packages_text:
raise DuplicatePkgError()
+19 -1
View File
@@ -4,8 +4,8 @@ on:
push:
branches:
- "release/**"
jobs:
jobs:
build_amd64:
runs-on: "ubuntu-20.04"
steps:
@@ -18,6 +18,15 @@ jobs:
DOCKER_CLI_EXPERIMENTAL: enabled
- run: ./smoketest.sh ./CLI/linux/amd64/ooniprobe
- run: ./make --disable-embedding-psiphon-config -t debian_amd64
- run: sudo apt-get install -y --no-install-recommends git python3 python3-requests python3-gnupg s3cmd
- run: |
for deb in *.deb; do
./.github/workflows/debops-ci --arch amd64 --show-commands upload --bucket-name ooni-deb $deb
done
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
DEB_GPG_KEY: ${{ secrets.DEB_GPG_KEY }}
build_arm64:
runs-on: "ubuntu-20.04"
@@ -32,3 +41,12 @@ jobs:
DOCKER_CLI_EXPERIMENTAL: enabled
- run: ./smoketest.sh ./CLI/linux/arm64/ooniprobe
- run: ./make --disable-embedding-psiphon-config -t debian_arm64
- run: sudo apt-get install -y --no-install-recommends git python3 python3-requests python3-gnupg s3cmd
- run: |
for deb in *.deb; do
./.github/workflows/debops-ci --arch arm64 --show-commands upload --bucket-name ooni-deb $deb
done
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
DEB_GPG_KEY: ${{ secrets.DEB_GPG_KEY }}