mirror of https://github.com/yewstack/yew
173 lines
4.5 KiB
YAML
173 lines
4.5 KiB
YAML
name: Main Checks
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- ".github/workflows/main-checks.yml"
|
|
- "ci/**"
|
|
- "packages/**/*"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
spell_check:
|
|
name: spellcheck
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check spelling
|
|
run: |
|
|
sudo apt-get install aspell
|
|
ci/spellcheck.sh list
|
|
|
|
doc_tests:
|
|
name: Documentation Tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: yew-packages
|
|
|
|
# for wasm-bindgen-cli, always use stable rust
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: stable
|
|
|
|
- name: Install wasm-bindgen-cli
|
|
shell: bash
|
|
run: ./ci/install-wasm-bindgen-cli.sh
|
|
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: nightly
|
|
targets: wasm32-unknown-unknown
|
|
|
|
- uses: browser-actions/setup-geckodriver@latest
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
- uses: nanasess/setup-chromedriver@v2
|
|
|
|
- name: Run doctest
|
|
run: |
|
|
ls packages | xargs -I {} \
|
|
cargo test \
|
|
-p {} \
|
|
--doc \
|
|
--all-features \
|
|
--target wasm32-unknown-unknown
|
|
|
|
integration_tests:
|
|
name: Integration Tests on ${{ matrix.toolchain }}
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain:
|
|
- 1.76.0
|
|
- stable
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: yew-packages
|
|
|
|
# for wasm-bindgen-cli, always use stable rust
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: stable
|
|
|
|
- name: Install wasm-bindgen-cli
|
|
shell: bash
|
|
run: ./ci/install-wasm-bindgen-cli.sh
|
|
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
targets: wasm32-unknown-unknown
|
|
|
|
- uses: browser-actions/setup-geckodriver@latest
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- uses: nanasess/setup-chromedriver@v2
|
|
|
|
- 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:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain:
|
|
- 1.76.0
|
|
- stable
|
|
- nightly
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: yew-packages
|
|
|
|
- name: Run native tests
|
|
env:
|
|
# workaround for lack of ternary operator
|
|
# see https://github.com/orgs/community/discussions/25725
|
|
RUSTFLAGS: ${{ matrix.toolchain == 'nightly' && '--cfg nightly_yew' || '' }}
|
|
run: ls packages | grep -v "^yew$" | xargs -I {} cargo test --all-targets -p {}
|
|
|
|
- name: Run native tests for yew
|
|
env:
|
|
# workaround for lack of ternary operator
|
|
# see https://github.com/orgs/community/discussions/25725
|
|
RUSTFLAGS: ${{ matrix.toolchain == 'nightly' && '--cfg nightly_yew' || '' }}
|
|
run: cargo test -p yew --all-features
|
|
|
|
test-lints:
|
|
name: Test lints on nightly
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: nightly
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
shared-key: yew-packages
|
|
|
|
- name: Run tests
|
|
env:
|
|
RUSTFLAGS: --cfg nightly_yew --cfg yew_lints
|
|
run: cargo test -p yew-macro test_html_lints
|