From 6e879742f0d28562f36747aecac7398d5b38c4a3 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 10 Nov 2022 17:30:10 -0300 Subject: [PATCH] feat(ci): improve cache, add test-core features matrix (#5604) --- .changes/config.json | 2 +- .github/workflows/artifacts-updater.yml | 2 +- .github/workflows/bench.yml | 2 +- .../workflows/covector-version-or-publish.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/lint-fmt-core.yml | 3 +- .github/workflows/publish-cli-js.yml | 6 +- .github/workflows/test-cli-js.yml | 2 +- .github/workflows/test-core.yml | 21 +++++-- .github/workflows/udeps.yml | 2 +- core/tauri/src/api/http.rs | 38 ++++++------- examples/splashscreen/main.rs | 10 ++-- examples/streaming/index.html | 56 +++++++++---------- .../plugin/backend/.changes/config.json | 2 +- .../plugin/with-api/.changes/config.json | 2 +- 15 files changed, 82 insertions(+), 70 deletions(-) diff --git a/.changes/config.json b/.changes/config.json index 0a0685e00..f97bbad84 100644 --- a/.changes/config.json +++ b/.changes/config.json @@ -8,7 +8,7 @@ "getPublishedVersion": "cargo search ${ pkgFile.pkg.package.name } --limit 1 | sed -nE \"s/^[^\\\"]*\\\"//; s/\\\".*//1p\"", "prepublish": [ "sudo apt-get update", - "sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf", + "sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev", "cargo install cargo-audit --features=fix", { "command": "cargo generate-lockfile", diff --git a/.github/workflows/artifacts-updater.yml b/.github/workflows/artifacts-updater.yml index 366a4b3c6..fb1d316c3 100644 --- a/.github/workflows/artifacts-updater.yml +++ b/.github/workflows/artifacts-updater.yml @@ -40,7 +40,7 @@ jobs: if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index fff4c529d..c8315cf6a 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -47,7 +47,7 @@ jobs: run: | python -m pip install --upgrade pip sudo apt-get update - sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf xvfb + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev xvfb wget https://github.com/sharkdp/hyperfine/releases/download/v1.11.0/hyperfine_1.11.0_amd64.deb sudo dpkg -i hyperfine_1.11.0_amd64.deb pip install memory_profiler diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index 7f10ab435..abf4c9e39 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -30,7 +30,7 @@ jobs: if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index df8354bf6..dcf2e2179 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -111,7 +111,7 @@ jobs: - name: install dependencies run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - name: Test run: | diff --git a/.github/workflows/lint-fmt-core.yml b/.github/workflows/lint-fmt-core.yml index b24601b4d..bda17f34b 100644 --- a/.github/workflows/lint-fmt-core.yml +++ b/.github/workflows/lint-fmt-core.yml @@ -62,7 +62,7 @@ jobs: - name: install dependencies run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: actions-rs/toolchain@v1 with: @@ -74,6 +74,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: core -> ../target + save-if: ${{ matrix.clippy.key == 'all' }} - uses: actions-rs/clippy-check@v1 with: diff --git a/.github/workflows/publish-cli-js.yml b/.github/workflows/publish-cli-js.yml index d1fe19933..716be5f18 100644 --- a/.github/workflows/publish-cli-js.yml +++ b/.github/workflows/publish-cli-js.yml @@ -259,7 +259,7 @@ jobs: - name: install system dependencies run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - name: Test bindings run: yarn test test-linux-x64-musl-binding: @@ -298,7 +298,7 @@ jobs: shell: bash - name: Install system dependencies run: | - apk add openssl-dev musl-dev glib-dev cairo-dev pkgconfig gdk-pixbuf-dev webkit2gtk-dev curl libappindicator-dev patchelf librsvg-dev gtk+3.0-dev + apk add openssl-dev musl-dev glib-dev cairo-dev pkgconfig gdk-pixbuf-dev webkit2gtk-dev curl libappindicator-dev gtk+3.0-dev - name: Setup and run tests run: | yarn tauri --help @@ -355,7 +355,7 @@ jobs: set -e export PATH=/usr/local/cargo/bin/:/usr/local/fnm:$PATH apt-get update - DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install --no-install-recommends -y unzip libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install --no-install-recommends -y unzip webkit2gtk-4.0 libayatana-appindicator3-dev bash curl https://sh.rustup.rs -sSf | bash -s -- -y curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "/usr/local/fnm" --skip-shell diff --git a/.github/workflows/test-cli-js.yml b/.github/workflows/test-cli-js.yml index 20a4ee299..c178140c2 100644 --- a/.github/workflows/test-cli-js.yml +++ b/.github/workflows/test-cli-js.yml @@ -51,7 +51,7 @@ jobs: if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index 00e225967..965008b04 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -46,6 +46,19 @@ jobs: os: macos-latest, toolchain: '1.59.0' } + features: + - { + args: --no-default-features, + key: no-default + } + - { + args: --features api-all, + key: api-all + } + - { + args: --features compression,wry,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart, + key: all + } steps: - uses: actions/checkout@v2 @@ -62,14 +75,12 @@ jobs: if: contains(matrix.platform.target, 'unknown-linux') run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: Swatinem/rust-cache@v2 with: workspaces: core -> ../target + save-if: ${{ matrix.features.key == 'all' }} - name: test - run: | - cargo test --target ${{ matrix.platform.target }} - cargo test --target ${{ matrix.platform.target }} --features api-all - cargo test --target ${{ matrix.platform.target }} --features compression,wry,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart + run: cargo test --target ${{ matrix.platform.target }} ${{ matrix.features.args }} diff --git a/.github/workflows/udeps.yml b/.github/workflows/udeps.yml index cdaf0205d..dea905772 100644 --- a/.github/workflows/udeps.yml +++ b/.github/workflows/udeps.yml @@ -157,7 +157,7 @@ jobs: - name: Install required packages run: | sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf + sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev - uses: actions-rs/cargo@v1 with: diff --git a/core/tauri/src/api/http.rs b/core/tauri/src/api/http.rs index feae38191..70ab40388 100644 --- a/core/tauri/src/api/http.rs +++ b/core/tauri/src/api/http.rs @@ -594,25 +594,25 @@ impl Response { reader } - /// Convert the response into a Stream of [`bytes::Bytes`] from the body. - /// - /// # Examples - /// - /// ```no_run - /// use futures_util::StreamExt; - /// - /// # async fn run() -> Result<(), Box> { - /// let client = tauri::api::http::ClientBuilder::new().build()?; - /// let mut stream = client.send(tauri::api::http::HttpRequestBuilder::new("GET", "http://httpbin.org/ip")?) - /// .await? - /// .bytes_stream(); - /// - /// while let Some(item) = stream.next().await { - /// println!("Chunk: {:?}", item?); - /// } - /// # Ok(()) - /// # } - /// ``` + // Convert the response into a Stream of [`bytes::Bytes`] from the body. + // + // # Examples + // + // ```no_run + // use futures_util::StreamExt; + // + // # async fn run() -> Result<(), Box> { + // let client = tauri::api::http::ClientBuilder::new().build()?; + // let mut stream = client.send(tauri::api::http::HttpRequestBuilder::new("GET", "http://httpbin.org/ip")?) + // .await? + // .bytes_stream(); + // + // while let Some(item) = stream.next().await { + // println!("Chunk: {:?}", item?); + // } + // # Ok(()) + // # } + // ``` #[cfg(feature = "reqwest-client")] #[allow(dead_code)] pub(crate) fn bytes_stream( diff --git a/examples/splashscreen/main.rs b/examples/splashscreen/main.rs index cfbe631de..be2fd04e1 100644 --- a/examples/splashscreen/main.rs +++ b/examples/splashscreen/main.rs @@ -34,9 +34,7 @@ mod rust { Ok(()) }) .invoke_handler(tauri::generate_handler![close_splashscreen]) - .run(tauri::generate_context!( - "../../examples/splashscreen/tauri.conf.json" - )) + .run(super::context()) .expect("failed to run app"); } } @@ -64,7 +62,7 @@ mod ui { } pub fn main() { - let context = tauri::generate_context!("../../examples/splashscreen/tauri.conf.json"); + let context = super::context(); tauri::Builder::default() .menu(if cfg!(target_os = "macos") { tauri::Menu::os_default(&context.package_info().name) @@ -87,6 +85,10 @@ mod ui { } } +fn context() -> tauri::Context { + tauri::generate_context!("../../examples/splashscreen/tauri.conf.json") +} + fn main() { // toggle this flag to experiment with different splashscreen usages let ui = false; diff --git a/examples/streaming/index.html b/examples/streaming/index.html index 83c9dc7f9..30f8af1c3 100644 --- a/examples/streaming/index.html +++ b/examples/streaming/index.html @@ -1,32 +1,30 @@ + + + + + - - - - - - - - - - - - \ No newline at end of file + + + + + diff --git a/tooling/cli/templates/plugin/backend/.changes/config.json b/tooling/cli/templates/plugin/backend/.changes/config.json index 1fa3dea3c..680d32c82 100755 --- a/tooling/cli/templates/plugin/backend/.changes/config.json +++ b/tooling/cli/templates/plugin/backend/.changes/config.json @@ -6,7 +6,7 @@ "getPublishedVersion": "cargo search ${ pkg.pkg } --limit 1 | sed -nE 's/^[^\"]*\"//; s/\".*//1p' -", "prepublish": [ "sudo apt-get update", - "sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0", + "sudo apt-get install -y webkit2gtk-4.0", "cargo install cargo-audit", { "command": "cargo generate-lockfile", diff --git a/tooling/cli/templates/plugin/with-api/.changes/config.json b/tooling/cli/templates/plugin/with-api/.changes/config.json index 4424d5b58..25df39379 100755 --- a/tooling/cli/templates/plugin/with-api/.changes/config.json +++ b/tooling/cli/templates/plugin/with-api/.changes/config.json @@ -6,7 +6,7 @@ "getPublishedVersion": "cargo search ${ pkg.pkg } --limit 1 | sed -nE 's/^[^\"]*\"//; s/\".*//1p' -", "prepublish": [ "sudo apt-get update", - "sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0", + "sudo apt-get install -y webkit2gtk-4.0", "cargo install cargo-audit", { "command": "cargo generate-lockfile",