From b69eb3437bee54ed6d8af6c70d8e3bed40594a6d Mon Sep 17 00:00:00 2001 From: lin onetwo Date: Tue, 14 Feb 2023 14:51:05 +0800 Subject: [PATCH] fix: tauri npm scripts (#955) --- .github/workflows/client-app.yml | 58 +++++++++++++++++++++----- apps/desktop/index.html | 13 ------ apps/desktop/package.json | 5 +-- apps/desktop/scripts/buildAffine.mjs | 4 +- apps/desktop/src-tauri/src/main.rs | 14 +++++-- apps/desktop/src-tauri/tauri.conf.json | 2 +- apps/web/next.config.js | 2 +- 7 files changed, 65 insertions(+), 33 deletions(-) delete mode 100644 apps/desktop/index.html diff --git a/.github/workflows/client-app.yml b/.github/workflows/client-app.yml index cae3cc721e..aa5d16a024 100644 --- a/.github/workflows/client-app.yml +++ b/.github/workflows/client-app.yml @@ -16,24 +16,66 @@ on: - 'README.md' - '.vscode' +permissions: + actions: write + contents: write + security-events: write + concurrency: group: release-ci-group cancel-in-progress: true jobs: - MacOS: - runs-on: macos-latest + create-release: + runs-on: ubuntu-latest + outputs: + RELEASE_UPLOAD_ID: ${{ steps.create_release.outputs.id }} + steps: + - uses: actions/checkout@v2 + - name: Query version number + id: get_version + shell: bash + run: | + echo "using version tag ${GITHUB_REF:10}" + echo "version=${GITHUB_REF:10}" >> $GITHUB_ENV + - name: Create Release + id: create_release + if: startsWith(github.ref, 'refs/tags/') + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + draft: true + tag_name: '${{ env.version }}' + release_name: 'AFFiNE ${{ env.version }}' + body: 'See the assets to download this version and install.' + + build-tauri: + needs: create-release + strategy: + fail-fast: false + matrix: + platform: [macos-latest, ubuntu-latest, windows-latest] + + runs-on: ${{ matrix.platform }} steps: - name: Checkout repository uses: actions/checkout@v3 with: submodules: 'true' + - name: install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 18.x + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable - name: Install pnpm uses: pnpm/action-setup@v2 with: @@ -55,7 +97,7 @@ jobs: - name: Install dependencies run: pnpm i -r - - name: Make macOS (x64) + - name: Make App Binary run: pnpm build:app working-directory: apps/desktop env: @@ -63,12 +105,8 @@ jobs: CI_PULL_REQUEST: ${{ github.event_name == 'pull_request' }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Create Release - uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') - with: - draft: true - generate_release_notes: true - files: apps/desktop/src-tauri/target/release/bundle/dmg/*.dmg + - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + releaseId: ${{ needs.create-release.outputs.RELEASE_UPLOAD_ID }} diff --git a/apps/desktop/index.html b/apps/desktop/index.html deleted file mode 100644 index f24e20cfe1..0000000000 --- a/apps/desktop/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - AFFiNE - - -
- - - diff --git a/apps/desktop/package.json b/apps/desktop/package.json index e7536c8a4f..921bb80ee0 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -6,9 +6,8 @@ "license": "MPL-2.0", "module": "true", "scripts": { - "dev:app": "pnpm build:preload && cross-env NODE_ENV=development tauri dev", - "dev:prerequisite": "concurrently \"cd ../packages/data-center && pnpm dev\" \"cd ../apps/web && pnpm dev\"", - "build:prerequisite": "pnpm build:submodules && pnpm build:rs-types && pnpm build:affine && pnpm build:preload", + "dev:app": "cross-env NODE_ENV=development tauri dev", + "dev:prerequisite": "cd ../../ && pnpm build && concurrently \"cd packages/data-center && pnpm dev\" \"cd apps/web && pnpm dev\"", "build:rs-types": "zx scripts/generateTsTypingsFromJsonSchema.mjs", "build:submodules": "zx scripts/buildSubModules.mjs", "build:affine": "zx scripts/buildAffine.mjs", diff --git a/apps/desktop/scripts/buildAffine.mjs b/apps/desktop/scripts/buildAffine.mjs index 618777a818..95b52241f3 100644 --- a/apps/desktop/scripts/buildAffine.mjs +++ b/apps/desktop/scripts/buildAffine.mjs @@ -14,6 +14,8 @@ const publicAffineOutDirectory = path.join( 'affine-out' ); +if (process.platform === 'win32') $.shell = 'pwsh'; + /** * Build affine dist html */ @@ -21,7 +23,7 @@ cd(repoDirectory); await $`pnpm i -r`; await $`pnpm build`; cd(affineSrcDirectory); -$.env.BASE_PATH = '/affine-out'; +$.env.NEXT_BASE_PATH = '/affine-out'; await $`pnpm build`; await $`pnpm export`; await fs.remove(publicAffineOutDirectory); diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index fda37eee05..2d60864bf2 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -8,6 +8,7 @@ mod state; use dotenvy::dotenv; use state::AppState; use std::env; +#[cfg(target_os = "macos")] use tauri::TitleBarStyle; use tokio::sync::Mutex; @@ -17,7 +18,9 @@ async fn main() { dotenv().ok(); let preload = include_str!("../../public/preload/index.js"); let is_dev = env::var("NODE_ENV").unwrap_or_default() == "development"; + // this only work in production mode, in dev mode, we load `devPath` in tauri.conf.json let initial_path = if is_dev { + // just a place holder here "index.html" } else { "affine-out/index.html" @@ -32,10 +35,13 @@ async fn main() { tauri::WindowBuilder::new(app, "label", tauri::WindowUrl::App(initial_path.into())) .title("AFFiNE") .inner_size(1000.0, 800.0) - .title_bar_style(TitleBarStyle::Overlay) - .hidden_title(true) - .initialization_script(&preload) - .build()?; + .initialization_script(&preload); + // fix `title_bar_style` found for struct `WindowBuilder` in the current scope + #[cfg(target_os = "macos")] + let _window = _window + .hidden_title(true) + .title_bar_style(TitleBarStyle::Overlay); + let _window = _window.build()?; #[cfg(debug_assertions)] _window.open_devtools(); Ok(()) diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index de50deea85..3521fbd1c7 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "build": { - "beforeDevCommand": "pnpm dev:prerequisite", + "beforeDevCommand": "pnpm build:preload && pnpm dev:prerequisite", "beforeBuildCommand": "pnpm build:preload && pnpm build:affine", "devPath": "http://localhost:8080", "distDir": "../public", diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 222f0b5dd9..4ec0b5e412 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -69,7 +69,7 @@ const nextConfig = { printer.info(`API request proxy to [${desc} Server]: ` + target); return profile; }, - basePath: process.env.BASE_PATH, + basePath: process.env.NEXT_BASE_PATH, experimental: { forceSwcTransforms: true, },