yew/.github/workflows/main-checks.yml
2022-06-19 18:45:52 +05:00

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