Give Windows a tray icon, and open the GUI with no console beside it … #136
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Rolling build of main. The `nightly` tag is moved on every push, so the | |
| # release page always holds exactly one set of development binaries. | |
| name: Nightly | |
| on: | |
| push: | |
| branches: ["main"] | |
| workflow_dispatch: | |
| concurrency: | |
| group: nightly | |
| cancel-in-progress: true | |
| # Read for everything by default; the publish job below raises its own to | |
| # `contents: write`, which is the only thing here that needs it. | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| uses: ./.github/workflows/build.yml | |
| with: | |
| version: nightly | |
| # The same client as a page, packaged so it can be hosted without being | |
| # built. It is a separate workflow rather than a fourth matrix entry because | |
| # nothing about it matches: a nightly toolchain, a rebuilt standard library, | |
| # trunk, and one artifact rather than one per platform. | |
| web: | |
| uses: ./.github/workflows/web-bundle.yml | |
| with: | |
| version: nightly | |
| publish: | |
| needs: [build, web] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| path: artifacts | |
| merge-multiple: true | |
| - name: Publish rolling nightly release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GH_REPO: ${{ github.repository }} | |
| run: | | |
| set -euo pipefail | |
| cat > notes.md <<'NOTES' | |
| Unsigned development build of `main`. Expect breakage. | |
| Download the archive for your platform and unpack it. It holds two | |
| binaries that belong together: `oxidezap` is the window, `oxidezapd` | |
| holds the WhatsApp session, and the first starts the second when | |
| nothing is already running. Keep them in the same directory. | |
| The tarballs carry the execute bit. On macOS, clear the quarantine | |
| flag before the first run: | |
| xattr -dr com.apple.quarantine oxidezap oxidezapd | |
| On Windows, SmartScreen will object. All of this follows from the | |
| binaries being unsigned. | |
| `oxidezap-nightly-web.zip` is the same client as a web page: the | |
| bundle published to GitHub Pages, built to be served from anywhere | |
| rather than from one directory. Unpack it and serve the files with | |
| any static web server — over HTTPS or from `localhost`, and with | |
| `coi-serviceworker.js` left beside `index.html`, which is what | |
| obtains the cross-origin isolation the window needs. `README.md` | |
| inside says the rest. | |
| NOTES | |
| echo "" >> notes.md | |
| echo "Built from \`$GITHUB_SHA\`." >> notes.md | |
| # Recreate rather than edit: `gh release edit` cannot move a tag, and | |
| # a stale tag would leave the assets pointing at an older commit. | |
| gh release delete nightly --yes --cleanup-tag || true | |
| gh release create nightly artifacts/* \ | |
| --prerelease \ | |
| --target "$GITHUB_SHA" \ | |
| --title "Nightly (${GITHUB_SHA:0:7})" \ | |
| --notes-file notes.md |