d10ab88444
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
103 lines
2.9 KiB
YAML
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 }}
|