Skip to content

fix: if there's not required version, we accept any #160

fix: if there's not required version, we accept any

fix: if there's not required version, we accept any #160

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-lint-${{ hashFiles('**/Cargo.lock') }}
- 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
check:
runs-on: ubuntu-latest
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-check-${{ hashFiles('**/Cargo.lock') }}
- name: Setup | Rust
run: |
rustup toolchain install stable
rustup default stable
- name: Build | Check
run: cargo check --all
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
- os: macos-latest
binPath: target/debug/trunk
- os: windows-latest
binPath: target/debug/trunk.exe
runs-on: ${{ matrix.os }}
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Setup | Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-test-${{ hashFiles('**/Cargo.lock') }}
- 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:
- cdylib
- no-rust
- proxy
- seed
- vanilla
- webworker
- webworker-gloo
- webworker-module
- yew
- yew-tailwindcss
- yew-tls
runs-on: ${{ matrix.os }}
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- 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/bin/
~/.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
run: $GITHUB_WORKSPACE/trunk --config=examples/${{ matrix.example }}/Trunk.toml 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