mirror of
https://github.com/yewstack/yew.git
synced 2025-12-08 21:26:25 +00:00
* `nightly_yew` compiler flag instead of `nightly` feature * update ci * update ci: 2 * fmt & nightly_yew for examples * update size-cmp too
223 lines
5.8 KiB
YAML
223 lines
5.8 KiB
YAML
name: Main Checks
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/main-checks.yml'
|
|
- 'ci/**'
|
|
- 'packages/**/*'
|
|
- 'Cargo.toml'
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
clippy:
|
|
name: Clippy
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
profile:
|
|
- dev
|
|
- release
|
|
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 --profile ${{ matrix.profile }} -- -D warnings
|
|
|
|
- name: Lint feature soundness
|
|
if: matrix.profile == 'dev'
|
|
run: bash ../../ci/feature-soundness.sh
|
|
working-directory: packages/yew
|
|
|
|
- name: Lint feature soundness
|
|
if: matrix.profile == 'release'
|
|
run: bash ../../ci/feature-soundness-release.sh
|
|
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: actions/checkout@v2
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
profile: minimal
|
|
|
|
# perhaps extract it into its own little action?
|
|
- uses: actions-rs/toolchain@v1
|
|
# for wasm-bindgen-cli, always use stable rust
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
|
|
- name: Install wasm-bindgen-cli
|
|
shell: bash
|
|
run: ./ci/install-wasm-bindgen-cli.sh
|
|
|
|
- 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 --target wasm32-unknown-unknown
|
|
|
|
- name: Run website code snippet tests
|
|
run: cargo test -p website-test --target wasm32-unknown-unknown
|
|
working-directory: tools
|
|
|
|
- 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:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain:
|
|
- 1.60.0
|
|
- stable
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
# for wasm-bindgen-cli, always use stable rust
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
|
|
- name: Install wasm-bindgen-cli
|
|
shell: bash
|
|
run: ./ci/install-wasm-bindgen-cli.sh
|
|
|
|
- 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
|
|
|
|
- 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.60.0
|
|
- 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
|
|
env:
|
|
# workaround for lack of ternary operator
|
|
# see https://github.com/orgs/community/discussions/25725
|
|
RUSTFLAGS: ${{ matrix.toolchain == 'nightly && '--cfg nightly_yew' || '' }}
|
|
with:
|
|
command: test
|
|
args: --all-targets --workspace --exclude yew
|
|
|
|
- name: Run native tests for yew
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
# workaround for lack of ternary operator
|
|
# see https://github.com/orgs/community/discussions/25725
|
|
RUSTFLAGS: ${{ matrix.toolchain == 'nightly && '--cfg nightly_yew' || '' }}
|
|
with:
|
|
command: test
|
|
args: -p yew --all-features
|
|
|
|
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
|
|
env:
|
|
RUSTFLAGS: --cfg nightly_yew
|
|
with:
|
|
command: test
|
|
args: -p yew-macro test_html_lints --features lints
|