Skip to content

yew-macro: silence non-normalised element name warnings for SVG elements #2651

yew-macro: silence non-normalised element name warnings for SVG elements

yew-macro: silence non-normalised element name warnings for SVG elements #2651

Workflow file for this run

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
unit_tests_wasi:
name: Unit Tests (WASI) on ${{ matrix.toolchain }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain:
- stable
- nightly
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
target: wasm32-wasip1
- name: Install wasmtime
run: |
wget https://github.com/bytecodealliance/wasmtime/releases/download/v24.0.0/wasmtime-v24.0.0-x86_64-linux.tar.xz
tar xf wasmtime-v24.0.0-x86_64-linux.tar.xz
mv wasmtime-v24.0.0-x86_64-linux/wasmtime ~/wasmtime
rm -rf wasmtime-v24.0.0-x86_64-linux.tar.xz wasmtime-v24.0.0-x86_64-linux
chmod +x ~/wasmtime
mv ~/wasmtime /usr/local/bin
source ~/.bashrc
- uses: Swatinem/rust-cache@v2
- name: Run WASI tests for yew
run: |
RUST_LOG=info
cargo test --features ssr,hydration --target wasm32-wasip1 -p yew
example-runnable-tests-on-wasi:
name: Example Runnable Tests on WASI
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package:
- wasi_ssr_module
toolchain:
- stable
- nightly
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
target: wasm32-wasip1
- name: Install wasmtime
run: |
wget https://github.com/bytecodealliance/wasmtime/releases/download/v24.0.0/wasmtime-v24.0.0-x86_64-linux.tar.xz
tar xf wasmtime-v24.0.0-x86_64-linux.tar.xz
mv wasmtime-v24.0.0-x86_64-linux/wasmtime ~/wasmtime
rm -rf wasmtime-v24.0.0-x86_64-linux.tar.xz wasmtime-v24.0.0-x86_64-linux
chmod +x ~/wasmtime
mv ~/wasmtime /usr/local/bin
source ~/.bashrc
- uses: Swatinem/rust-cache@v2
- name: Build and run ${{ matrix.package }}
run: |
cargo build --target wasm32-wasip1 -p ${{ matrix.package }}
wasmtime -W unknown-imports-trap=y target/wasm32-wasip1/debug/${{ matrix.package }}.wasm