# Builds ooniprobe for Windows and publishes binaries. name: windows on: push: branches: - "release/**" - "fullbuild" tags: - "v*" schedule: - cron: "17 1 * * *" 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 - uses: actions/download-artifact@v2 with: name: miniooni-windows-amd64.exe - run: bash.exe ./E2E/ooniprobe.bash ./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 }}