cargo-component 0.21.1

A cargo extension for authoring WebAssembly components
Documentation
name: CI
on:
  push:
    branches: [main, 'release-*']
    tags: ['[0-9]*']
  pull_request:
    branches: [main, 'release-*']

jobs:
  test:
    name: Run tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    steps:
    - uses: actions/checkout@v4
    - name: Configure sccache
      run: |
        echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
        echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
    - name: Run sccache-cache
      uses: mozilla-actions/sccache-action@v0.0.4
    - name: Install Rust
      run: |
        rustup set profile minimal
        rustup update stable --no-self-update
        rustup update nightly --no-self-update
        rustup default stable
        rustup target add wasm32-wasip1
        rustup target add wasm32-wasip1 --toolchain nightly
        rustup target add wasm32-unknown-unknown
        rustup component add rustfmt
        rustup component add rustfmt --toolchain nightly
      shell: bash
    - name: Install `wasmtime`
      uses: bytecodealliance/actions/wasmtime/setup@v1
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        version: "v29.0.1"
    - name: Run all tests
      run: cargo test --all

  example:
    name: Build example component
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Install Rust
      run: rustup update stable --no-self-update && rustup default stable && rustup target add wasm32-wasip1 && rustup target add wasm32-unknown-unknown
    - name: Install cargo-component (debug)
      run: cargo install --locked --debug --path .
    - name: Build the example component
      run: (cd example && cargo component build --release -v)

  install:
    name: Install cargo-component
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Install Rust
      run: rustup update stable --no-self-update && rustup default stable
    - name: Install cargo-component
      run: cargo install --locked --path .

  rustfmt:
    name: Format source code
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Install Rust
      run: rustup update stable && rustup default stable && rustup component add rustfmt
    - name: Run `cargo fmt`
      run: cargo fmt -- --check