ooni-probe-cli/.github/workflows/windows.yml
Simone Basso d10ab88444
feat: implement rolling builds (#910)
This diff modifies all the github actions that produce assets to
publish on a release called rolling when we are not building a tag.

If everything goes as planned, we should be able to provide
people with automatically generated fresh binaries for testing.

While there, introduce caching for all builds to make them
as fast as possible. I suspect gomobile based builds will not
see any speed up but other builds most likely will.

See https://github.com/ooni/probe/issues/2249
2022-08-30 15:29:09 +02:00

103 lines
2.9 KiB
YAML

# Builds ooniprobe for Windows and publishes binaries.
name: windows
on:
push:
branches:
- "release/**"
- "fullbuild"
tags:
- "v*"
jobs:
build:
runs-on: "ubuntu-20.04"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- 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 install mingw-w64
- 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 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"
permissions: # See https://github.com/ooni/probe/issues/2154
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
publish:
needs: test
runs-on: "ubuntu-20.04"
permissions: # See https://github.com/ooni/probe/issues/2154
contents: write
actions: read
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: |
./script/ghpublish.bash ooniprobe-windows-386.exe \
ooniprobe-windows-amd64.exe \
miniooni-windows-386.exe \
miniooni-windows-amd64.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}