Migrate to bun #783
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
name: Test @notesnook/desktop | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- "master" | |
paths: | |
- "apps/desktop/**" | |
# re-run workflow if workflow file changes | |
- ".github/workflows/desktop.tests.yml" | |
pull_request: | |
branches: | |
- "master" | |
paths: | |
- "apps/desktop/**" | |
# re-run workflow if workflow file changes | |
- ".github/workflows/desktop.tests.yml" | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=web | |
- name: Generate desktop build | |
run: bun tx @notesnook/web:build:desktop | |
- name: Archive build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build | |
path: apps/web/build/**/* | |
test-macos-x64: | |
name: Test macOS x64 | |
needs: build | |
runs-on: macos-13 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: ./apps/web/build | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=desktop | |
- name: Build Electron wrapper | |
run: bun tx @notesnook/desktop:release | |
- name: Build app | |
run: | | |
bun electron-builder --config=electron-builder.config.js --mac --dir --x64 | |
working-directory: ./apps/desktop | |
- name: Run tests x64 | |
run: npm run test | |
working-directory: ./apps/desktop | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-results-macos-x64 | |
path: apps/desktop/test-results | |
retention-days: 5 | |
test-macos: | |
name: Test macOS | |
needs: build | |
runs-on: macos-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: ./apps/web/build | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=desktop | |
- name: Build Electron wrapper | |
run: bun tx @notesnook/desktop:release | |
- name: Build app | |
run: | | |
bun electron-builder --config=electron-builder.config.js --mac --dir --arm64 | |
working-directory: ./apps/desktop | |
- name: Run tests arm64 | |
run: npm run test | |
working-directory: ./apps/desktop | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-results-macos | |
path: apps/desktop/test-results | |
retention-days: 5 | |
test-linux: | |
name: Test for Linux | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: ./apps/web/build | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=desktop | |
- name: Install sqlite-better-trigram for all arch | |
run: | | |
npm i --cpu arm64 sqlite-better-trigram | |
npm i --cpu x64 sqlite-better-trigram | |
working-directory: ./apps/desktop | |
- name: Build Electron wrapper | |
run: bun tx @notesnook/desktop:release | |
- name: Build app | |
run: | | |
bun electron-builder --config=electron-builder.config.js --linux --dir --arm64 --x64 | |
working-directory: ./apps/desktop | |
- name: Run tests | |
run: xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24" -- npm run test | |
working-directory: ./apps/desktop | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-results-linux | |
path: apps/desktop/test-results | |
retention-days: 5 | |
test-windows: | |
name: Test for Windows | |
needs: build | |
runs-on: windows-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: ./.github/actions/setup-node-with-cache | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: ./apps/web/build | |
- name: Install packages | |
run: | | |
bun ci | |
bun run bootstrap -- --scope=desktop | |
- name: Install sqlite-better-trigram for all arch | |
run: | | |
npm i --cpu arm64 sqlite-better-trigram | |
npm i --cpu x64 sqlite-better-trigram | |
npm i --cpu arm64 sqlite3-fts5-html | |
npm i --cpu x64 sqlite3-fts5-html | |
working-directory: ./apps/desktop | |
- name: Build Electron wrapper | |
run: node scripts/execute.mjs @notesnook/desktop:release | |
- name: Build app | |
run: | | |
bun exec "NOTESNOOK_STAGING=true bunx electron-builder --config=electron-builder.config.js --win --dir --arm64 --x64" | |
working-directory: ./apps/desktop | |
- name: Run tests | |
run: npm run test | |
working-directory: ./apps/desktop | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-results-win | |
path: apps/desktop/test-results | |
retention-days: 5 |