# Builds ooniprobe for Windows and publishes binaries. name: windows on: push: branches: - "release/**" 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: actions/setup-go@v1 with: go-version: "${{ 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/ooniprobe-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: ooniprobe-windows-386.exe path: ./CLI/ooniprobe-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: ooniprobe-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 if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}