|
@@ -31,22 +31,23 @@ concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
+env:
|
|
|
|
+ CARGO_TERM_COLOR: always
|
|
|
|
+ CARGO_INCREMENTAL: 0
|
|
|
|
+ SCCACHE_GHA_ENABLED: "true"
|
|
|
|
+ RUSTC_WRAPPER: "sccache"
|
|
|
|
+
|
|
jobs:
|
|
jobs:
|
|
check:
|
|
check:
|
|
if: github.event.pull_request.draft == false
|
|
if: github.event.pull_request.draft == false
|
|
name: Check
|
|
name: Check
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
- env:
|
|
|
|
- CARGO_TERM_COLOR: always
|
|
|
|
- CARGO_INCREMENTAL: 0
|
|
|
|
- SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- RUSTC_WRAPPER: "sccache"
|
|
|
|
steps:
|
|
steps:
|
|
|
|
+ - run: sudo apt-get update
|
|
|
|
+ - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: ilammy/setup-nasm@v1
|
|
- uses: ilammy/setup-nasm@v1
|
|
- - run: sudo apt-get update
|
|
|
|
- - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev
|
|
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/checkout@v4
|
|
- run: cargo check --all --examples --tests
|
|
- run: cargo check --all --examples --tests
|
|
|
|
|
|
@@ -54,17 +55,12 @@ jobs:
|
|
if: github.event.pull_request.draft == false
|
|
if: github.event.pull_request.draft == false
|
|
name: Test Suite
|
|
name: Test Suite
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
- env:
|
|
|
|
- CARGO_TERM_COLOR: always
|
|
|
|
- CARGO_INCREMENTAL: 0
|
|
|
|
- SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- RUSTC_WRAPPER: "sccache"
|
|
|
|
steps:
|
|
steps:
|
|
|
|
+ - run: sudo apt-get update
|
|
|
|
+ - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: ilammy/setup-nasm@v1
|
|
- uses: ilammy/setup-nasm@v1
|
|
- - run: sudo apt-get update
|
|
|
|
- - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev
|
|
|
|
- uses: davidB/rust-cargo-make@v1
|
|
- uses: davidB/rust-cargo-make@v1
|
|
- uses: browser-actions/setup-firefox@latest
|
|
- uses: browser-actions/setup-firefox@latest
|
|
- uses: jetli/wasm-pack-action@v0.4.0
|
|
- uses: jetli/wasm-pack-action@v0.4.0
|
|
@@ -75,11 +71,6 @@ jobs:
|
|
if: github.event.pull_request.draft == false
|
|
if: github.event.pull_request.draft == false
|
|
name: Rustfmt
|
|
name: Rustfmt
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
- env:
|
|
|
|
- CARGO_TERM_COLOR: always
|
|
|
|
- CARGO_INCREMENTAL: 0
|
|
|
|
- SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- RUSTC_WRAPPER: "sccache"
|
|
|
|
steps:
|
|
steps:
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
@@ -92,28 +83,95 @@ jobs:
|
|
if: github.event.pull_request.draft == false
|
|
if: github.event.pull_request.draft == false
|
|
name: Clippy
|
|
name: Clippy
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
- env:
|
|
|
|
- CARGO_TERM_COLOR: always
|
|
|
|
- CARGO_INCREMENTAL: 0
|
|
|
|
- SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- RUSTC_WRAPPER: "sccache"
|
|
|
|
steps:
|
|
steps:
|
|
|
|
+ - run: sudo apt-get update
|
|
|
|
+ - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: mozilla-actions/sccache-action@v0.0.3
|
|
- uses: ilammy/setup-nasm@v1
|
|
- uses: ilammy/setup-nasm@v1
|
|
- - run: sudo apt-get update
|
|
|
|
- - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev
|
|
|
|
- run: rustup component add clippy
|
|
- run: rustup component add clippy
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/checkout@v4
|
|
- run: cargo clippy --workspace --examples --tests -- -D warnings
|
|
- run: cargo clippy --workspace --examples --tests -- -D warnings
|
|
|
|
|
|
|
|
+ miri:
|
|
|
|
+ if: github.event.pull_request.draft == false
|
|
|
|
+ name: Miri
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
+ env:
|
|
|
|
+ CARGO_UNSTABLE_SPARSE_REGISTRY: 'true'
|
|
|
|
+ RUSTFLAGS: -Dwarnings
|
|
|
|
+ RUST_BACKTRACE: 1
|
|
|
|
+ MIRIFLAGS: -Zmiri-tag-gc=1
|
|
|
|
+ # Change to specific Rust release to pin
|
|
|
|
+ rust_stable: stable
|
|
|
|
+ rust_nightly: nightly-2023-11-16
|
|
|
|
+ rust_clippy: 1.70.0
|
|
|
|
+
|
|
|
|
+ steps:
|
|
|
|
+ - uses: actions/checkout@v4
|
|
|
|
+ - uses: ilammy/setup-nasm@v1
|
|
|
|
+ - name: Install Rust ${{ env.rust_nightly }}
|
|
|
|
+ uses: dtolnay/rust-toolchain@master
|
|
|
|
+ with:
|
|
|
|
+ toolchain: ${{ env.rust_nightly }}
|
|
|
|
+ components: miri
|
|
|
|
+ - uses: mozilla-actions/sccache-action@v0.0.3
|
|
|
|
+ - name: miri
|
|
|
|
+ # Many of tests in tokio/tests and doctests use #[tokio::test] or
|
|
|
|
+ # #[tokio::main] that calls epoll_create1 that Miri does not support.
|
|
|
|
+ # run: cargo miri test --features full --lib --no-fail-fast
|
|
|
|
+ run: |
|
|
|
|
+ cargo miri test --package dioxus-core -- --exact --nocapture
|
|
|
|
+ cargo miri test --package dioxus-native-core --test miri_native -- --exact --nocapture
|
|
|
|
+ env:
|
|
|
|
+ MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-retag-fields
|
|
|
|
+ PROPTEST_CASES: 10
|
|
|
|
+
|
|
|
|
+ playwright:
|
|
|
|
+ if: github.event.pull_request.draft == false
|
|
|
|
+ name: Playwright Tests
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
+ defaults:
|
|
|
|
+ run:
|
|
|
|
+ working-directory: ./playwright-tests
|
|
|
|
+ steps:
|
|
|
|
+ # Do our best to cache the toolchain and node install steps
|
|
|
|
+ - uses: actions/checkout@v4
|
|
|
|
+ - uses: ilammy/setup-nasm@v1
|
|
|
|
+ - uses: actions/setup-node@v4
|
|
|
|
+ with:
|
|
|
|
+ node-version: 16
|
|
|
|
+ - name: Install Rust
|
|
|
|
+ uses: dtolnay/rust-toolchain@master
|
|
|
|
+ with:
|
|
|
|
+ toolchain: stable
|
|
|
|
+ targets: x86_64-unknown-linux-gnu,wasm32-unknown-unknown
|
|
|
|
+ - uses: mozilla-actions/sccache-action@v0.0.3
|
|
|
|
+ - name: Install dependencies
|
|
|
|
+ run: npm ci
|
|
|
|
+ - name: Install Playwright
|
|
|
|
+ run: npm install -D @playwright/test
|
|
|
|
+ - name: Install Playwright Browsers
|
|
|
|
+ run: npx playwright install --with-deps
|
|
|
|
+ # Cache the CLI by using cargo run internally
|
|
|
|
+ # - name: Install Dioxus CLI
|
|
|
|
+ # uses: actions-rs/cargo@v1
|
|
|
|
+ # with:
|
|
|
|
+ # command: install
|
|
|
|
+ # args: --path packages/cli
|
|
|
|
+ - name: Run Playwright tests
|
|
|
|
+ run: npx playwright test
|
|
|
|
+ - uses: actions/upload-artifact@v4
|
|
|
|
+ if: always()
|
|
|
|
+ with:
|
|
|
|
+ name: playwright-report
|
|
|
|
+ path: playwright-report/
|
|
|
|
+ retention-days: 30
|
|
|
|
+
|
|
|
|
+
|
|
matrix_test:
|
|
matrix_test:
|
|
runs-on: ${{ matrix.platform.os }}
|
|
runs-on: ${{ matrix.platform.os }}
|
|
env:
|
|
env:
|
|
- CARGO_TERM_COLOR: always
|
|
|
|
- CARGO_INCREMENTAL: 0
|
|
|
|
- SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- RUSTC_WRAPPER: "sccache"
|
|
|
|
RUST_CARGO_COMMAND: ${{ matrix.platform.cross == true && 'cross' || 'cargo' }}
|
|
RUST_CARGO_COMMAND: ${{ matrix.platform.cross == true && 'cross' || 'cargo' }}
|
|
strategy:
|
|
strategy:
|
|
matrix:
|
|
matrix:
|