Skip to content

docs: Add example for wasm_threads usage (#841) #1736

docs: Add example for wasm_threads usage (#841)

docs: Add example for wasm_threads usage (#841) #1736

Workflow file for this run

name: CI
on:
push:
branches:
- main
- release/*
pull_request:
branches:
- main
- release/*
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-lint-${{ hashFiles('**/Cargo.lock') }}
- name: Setup | Disable rustup self-update
# workaround for: https://github.com/rust-lang/rustup/issues/3709
run: |
rustup set auto-self-update disable
- name: Setup | Toolchain (clippy)
run: |
rustup toolchain install stable --component clippy
rustup default stable
- name: Build | Clippy
run: |
cargo clippy --all-targets --all-features -- -D warnings
- name: Build | Rustfmt
run: cargo fmt -- --check
docs:
uses: ./.github/workflows/docs.yaml
check:
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- 1.75.0 # MSRV
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-check-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
- name: Setup | Disable rustup self-update
# workaround for: https://github.com/rust-lang/rustup/issues/3709
run: |
rustup set auto-self-update disable
- name: Setup | Rust
run: |
rustup toolchain install ${{ matrix.rust }}
rustup default ${{ matrix.rust }}
- name: Build | Check
run: cargo check --all
- name: Setup | binstall
run: |
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
- name: Setup | check-all-features
run: |
cargo binstall -y cargo-all-features
- name: Build | Check all features
run: |
cargo check-all-features
test:
needs: check # Ensure check is run first.
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
include:
- os: ubuntu-latest
binPath: target/debug/trunk
install: |
sudo apt install -y libssl-dev
- os: macos-latest
binPath: target/debug/trunk
- os: windows-latest
binPath: target/debug/trunk.exe
install: |
echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append
vcpkg install openssl:x64-windows-static-md
runs-on: ${{ matrix.os }}
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-test-${{ hashFiles('**/Cargo.lock') }}
- name: Setup | Export GitHub Actions cache environment variables
uses: actions/github-script@v7
if: runner.os == 'Windows'
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite');
- name: Setup | Install dependencies
run: ${{ matrix.install }}
- name: Build | Test
run: cargo test
# Run the CLI to ensure we don't have any subtle runtime issues.
- name: Build | Run
run: cargo run -- -h
# Upload the debug binary for testing examples later
- name: Upload | For testing
uses: actions/upload-artifact@v4
with:
name: test-cli-${{ matrix.os }}
path: ${{ matrix.binPath }}
if-no-files-found: error
test-examples:
needs: test # Ensure test is run first.
strategy:
fail-fast: false
max-parallel: 32
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
example:
- cargo-manifest
- cdylib
- hooks
- initializer
- leptos
- no-rust
- proxy
- seed
- target-path
- vanilla
- webworker
- webworker-gloo
- webworker-module
- wasm_threads
- yew
- yew-tailwindcss
- yew-tls
runs-on: ${{ matrix.os }}
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Disable rustup self-update
# workaround for: https://github.com/rust-lang/rustup/issues/3709
run: |
rustup set auto-self-update disable
- name: Setup | Rust
run: |
rustup toolchain install stable --target wasm32-unknown-unknown
rustup default stable
- name: Setup | Download CLI
uses: actions/download-artifact@v4
with:
name: test-cli-${{ matrix.os }}
- name: Setup | Make executable
if: ${{ !contains(matrix.os, 'windows') }}
run: chmod a+x $GITHUB_WORKSPACE/trunk
- name: Setup | Cache | Example ${{ matrix.example }} on ${{ matrix.os }}
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
examples/${{ matrix.example }}/target
key: wasm32-example-${{ matrix.example }}-${{ matrix.os }}-${{ hashFiles('**/Cargo.lock') }}
- name: Build | Examples | ${{ matrix.example }} on ${{ matrix.os }}
shell: bash
env:
# for the CI we need to disable those checks, as we may run with a pre-release version, which would force us to
# replace all version requirements with pre-release requirements for this version.
TRUNK_REQUIRED_VERSION: '*'
run: |
$GITHUB_WORKSPACE/trunk --config=examples/${{ matrix.example }} build
examples:
runs-on: ubuntu-22.04
needs:
- test-examples
if: always()
steps:
- name: Success
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Failure
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1
uncommitted:
runs-on: ubuntu-22.04
needs:
- test
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Download CLI
uses: actions/download-artifact@v4
with:
name: test-cli-ubuntu-latest
- name: Setup | Make executable
run: chmod a+x $GITHUB_WORKSPACE/trunk
- name: Generate | Config Schema
run: |
$GITHUB_WORKSPACE/trunk config generate-schema schemas/config.json
- name: Diff | Config Schema
run: |
git diff --quiet schemas/config.json
if [ $? -gt 0 ]; then
echo "::error::Uncommitted changes for schemas/config.json (run `cargo run -- config generate-schema schemas/config.json` after making changes to the configuration model)"
exit 1
fi