Fix file save on desktop show browser instructions #1461
This file contains 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
name: checks.build | |
on: | |
push: | |
pull_request: | |
jobs: | |
build-web: | |
strategy: | |
matrix: | |
os: [ macos, ubuntu, windows ] | |
mode: [ | |
# Vite mode: https://vitejs.dev/guide/env-and-mode.html | |
development, # Used by `dev` command | |
production, # Used by `build` command | |
# Vitest mode: https://vitest.dev/guide/cli.html | |
test, # Used by Vitest | |
] | |
fail-fast: false # Allows to see results from other combinations | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v4 | |
- | |
name: Setup node | |
uses: ./.github/actions/setup-node | |
- | |
name: Install dependencies | |
uses: ./.github/actions/npm-install-dependencies | |
- | |
name: Build web | |
run: npm run build -- --mode ${{ matrix.mode }} | |
- | |
name: Verify web build artifacts | |
run: npm run check:verify-build-artifacts -- --web | |
build-desktop: | |
strategy: | |
matrix: | |
os: [ macos, ubuntu, windows ] | |
mode: [ | |
# electron-vite modes: https://electron-vite.org/guide/env-and-mode.html#global-env-variables | |
development, # Used by `dev` command | |
production, # Used by `build` and `preview` commands | |
] | |
fail-fast: false # Allows to see results from other combinations | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v4 | |
- | |
name: Setup node | |
uses: ./.github/actions/setup-node | |
- | |
name: Install dependencies | |
uses: ./.github/actions/npm-install-dependencies | |
- | |
name: Prebuild desktop | |
run: npm run electron:prebuild -- --mode ${{ matrix.mode }} | |
- | |
name: Verify unbundled desktop build artifacts | |
run: npm run check:verify-build-artifacts -- --electron-unbundled | |
- | |
name: Build (bundle and package) desktop application | |
run: npm run electron:build -- --publish never | |
- | |
name: Verify bundled desktop build artifacts | |
run: npm run check:verify-build-artifacts -- --electron-bundled | |
build-docker: | |
strategy: | |
matrix: | |
os: | |
- macos-13 # Downgraded due to lack of nested virtualization support in ARM-based runners (See: actions/runner-images#9460, actions/runner-images#9741, abiosoft/colima#1023) | |
- ubuntu-latest | |
# - windows-latest # Windows runners do not support Linux containers | |
fail-fast: false # Allows to see results from other combinations | |
runs-on: ${{ matrix.os }} | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v4 | |
- | |
name: Install Docker on macOS | |
if: contains(matrix.os, 'macos') # macOS runner is missing Docker | |
run: |- | |
# Install Docker | |
brew install docker | |
# Docker on macOS misses daemon due to licensing, so install colima as runtime | |
brew install colima | |
# Start the daemon | |
colima start | |
- | |
name: Build Docker image | |
run: docker build -t undergroundwires/privacy.sexy:latest . | |
- | |
name: Run Docker image on port 8080 | |
run: docker run -d -p 8080:80 --rm --name privacy.sexy undergroundwires/privacy.sexy:latest | |
- | |
name: Enforce IPv4 Connectivity # Used due to GitHub runners' lack of IPv6 support, preventing request timeouts. | |
uses: ./.github/actions/force-ipv4 | |
- | |
name: Check server is up and returns HTTP 200 | |
run: >- | |
node ./scripts/verify-web-server-status.js \ | |
--url http://localhost:8080 \ | |
--max-retries ${{ matrix.os == 'macos' && '90' || '30' }} |