mirror of
https://github.com/yewstack/yew.git
synced 2025-12-08 21:26:25 +00:00
225 lines
6.2 KiB
YAML
225 lines
6.2 KiB
YAML
name: Main Checks
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
|
|
clippy:
|
|
name: Clippy
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
components: clippy
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Run clippy
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --all-targets --all-features -- -D warnings
|
|
|
|
- name: Lint feature soundness
|
|
run: |
|
|
cargo clippy -- --deny=warnings
|
|
cargo clippy --features=ssr -- --deny=warnings
|
|
cargo clippy --features=csr -- --deny=warnings
|
|
cargo clippy --features=hydration -- --deny=warnings
|
|
cargo clippy --all-features --all-targets -- --deny=warnings
|
|
working-directory: packages/yew
|
|
|
|
|
|
clippy-release:
|
|
name: Clippy on release profile
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
components: clippy
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Run clippy
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --all-targets --all-features --release -- -D warnings
|
|
|
|
- name: Lint feature soundness
|
|
run: |
|
|
cargo clippy --release -- --deny=warnings
|
|
cargo clippy --release --features=ssr -- --deny=warnings
|
|
cargo clippy --release --features=csr -- --deny=warnings
|
|
cargo clippy --release --features=hydration -- --deny=warnings
|
|
cargo clippy --release --all-features --all-targets -- --deny=warnings
|
|
working-directory: packages/yew
|
|
|
|
spell_check:
|
|
name: spellcheck
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Check spelling
|
|
run: |
|
|
sudo apt-get install aspell
|
|
ci/spellcheck.sh list
|
|
|
|
doc_tests:
|
|
name: Documentation Tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
|
|
- name: Install wasm-bindgen-test-runner
|
|
run: cargo install --git https://github.com/hamza1311/wasm-bindgen --branch respect-rustdoc-tmp-paths wasm-bindgen-cli
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
profile: minimal
|
|
|
|
- uses: browser-actions/setup-geckodriver@latest
|
|
- uses: nanasess/setup-chromedriver@v1
|
|
|
|
- name: Run doctest
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --doc --workspace --exclude yew --exclude changelog --exclude website-test --exclude ssr_router --exclude simple_ssr --target wasm32-unknown-unknown
|
|
|
|
- name: Run website code snippet tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: -p website-test --target wasm32-unknown-unknown
|
|
|
|
- name: Run doctest - yew with features
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: -p yew --doc --all-features --target wasm32-unknown-unknown
|
|
|
|
integration_tests:
|
|
name: Integration Tests on ${{ matrix.toolchain }}
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
# anyway to dynamically grep the MSRV from Cargo.toml?
|
|
- 1.56.1 # MSRV
|
|
- stable
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
profile: minimal
|
|
|
|
- uses: browser-actions/setup-geckodriver@latest
|
|
- uses: nanasess/setup-chromedriver@v1
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Install wasm-bindgen-cli
|
|
shell: bash
|
|
run: |
|
|
if [ ! -f "Cargo.lock" ]; then
|
|
cargo fetch
|
|
fi
|
|
VERSION=`cargo pkgid --frozen wasm-bindgen | cut -d ":" -f 3`
|
|
cargo install --version $VERSION wasm-bindgen-cli
|
|
|
|
- name: Run tests - yew
|
|
run: |
|
|
cd packages/yew
|
|
CHROMEDRIVER=$(which chromedriver) cargo test --features csr,hydration,ssr --target wasm32-unknown-unknown
|
|
GECKODRIVER=$(which geckodriver) cargo test --features csr,hydration,ssr --target wasm32-unknown-unknown
|
|
|
|
- name: Run tests - yew-router
|
|
run: |
|
|
cd packages/yew-router
|
|
CHROMEDRIVER=$(which chromedriver) cargo test --target wasm32-unknown-unknown
|
|
GECKODRIVER=$(which geckodriver) cargo test --target wasm32-unknown-unknown
|
|
|
|
unit_tests:
|
|
name: Unit Tests on ${{ matrix.toolchain }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
# anyway to dynamically grep the MSRV from Cargo.toml?
|
|
- 1.56.1 # MSRV
|
|
- stable
|
|
- nightly
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
override: true
|
|
profile: minimal
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Run native tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --all-targets --workspace --exclude yew --exclude website-test --exclude ssr_router --exclude simple_ssr
|
|
|
|
- name: Run native tests for yew
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: -p yew --features "csr,ssr,hydration,tokio"
|
|
|
|
test-lints:
|
|
name: Test lints on nightly
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
override: true
|
|
profile: minimal
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Run tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: -p yew-macro test_html_lints --features lints
|