Skip to content

Fix warning

Fix warning #450

Workflow file for this run

name: Check & Deploy
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
changes:
runs-on: ubuntu-latest
outputs:
code: ${{ steps.filter.outputs.code }}
deploy: ${{ steps.filter.outputs.deploy }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
code:
- 'src/**'
- 'tests/**'
- 'Cargo.toml'
- '.github/**'
deploy:
- 'bunny_demo/**'
- 'guide/**'
- 'square_eater/**'
- 'visualizer/**'
- '.github/**'
- 'Cargo.toml'
fmt:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.code == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt -- --check
miri:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.code == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- run: cargo miri test --tests --lib --no-default-features --features=std
clippy:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.code == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- run: cargo clippy
env:
RUSTFLAGS: -D warnings
all-features:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.code == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- run: cargo test --all-features
guide_master:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: download mdbook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: "0.4.34"
- run: cargo install mdbook-linkcheck
- run: mdbook build -d guide_master
working-directory: ./guide/master
- name: save guide master
uses: actions/upload-artifact@v2
with:
name: guide_master
path: guide/master/guide_master/html
guide_0_5_0:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: download mdbook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: "0.4.34"
- run: cargo install mdbook-linkcheck
- run: mdbook build -d guide_0_5_0
working-directory: ./guide/0.5.0
- name: save guide 0.5.0
uses: actions/upload-artifact@v2
with:
name: guide_0_5_0
path: guide/0.5.0/guide_0_5_0/html
guide_0_6:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: download mdbook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: "0.4.34"
- run: cargo install mdbook-linkcheck
- run: mdbook build -d guide_0_6
working-directory: ./guide/0.6
- name: save guide 0.6
uses: actions/upload-artifact@v2
with:
name: guide_0_6
path: guide/0.6/guide_0_6/html
guide_0_7:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: download mdbook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: "0.4.34"
- run: cargo install mdbook-linkcheck
- run: mdbook build -d guide_0_7
working-directory: ./guide/0.7
- name: save guide 0.7
uses: actions/upload-artifact@v2
with:
name: guide_0_7
path: guide/0.7/guide_0_7/html
bunny_demo:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
target: wasm32-unknown-unknown
- name: install wasm-pack
# https://github.com/rustwasm/wasm-pack/issues/823#issuecomment-1242611318
run: cargo install --git https://github.com/frewsxcv/wasm-pack.git --branch patch-2
- run: wasm-pack build bunny_demo --target web --release --out-dir public/wasm
- run: rm bunny_demo/public/wasm/.gitignore
- name: save bunny_demo
uses: actions/upload-artifact@v2
with:
name: bunny_demo
path: bunny_demo/public
square_eater:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
target: wasm32-unknown-unknown
- run: cargo build --release --package square_eater --target wasm32-unknown-unknown --manifest-path=square_eater/Cargo.toml
- run: mv ./target/wasm32-unknown-unknown/release/square_eater.wasm ./square_eater/public
- name: save square_eater
uses: actions/upload-artifact@v2
with:
name: square_eater
path: square_eater/public
visualizer:
runs-on: ubuntu-latest
needs: changes
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
target: wasm32-unknown-unknown
- uses: jetli/[email protected]
# GH pages doesn't use the same url naming as trunk's default
# https://github.com/thedodd/trunk/issues/268
- run: trunk build --public-url "shipyard/visualizer/" --release visualizer/index.html
- name: save visualizer
uses: actions/upload-artifact@v2
with:
name: visualizer
path: visualizer/dist
deploy:
runs-on: ubuntu-latest
needs: [changes, guide_master, guide_0_6, guide_0_5_0, bunny_demo, square_eater, visualizer]
if: github.event_name == 'push' && needs.changes.outputs.deploy == 'true'
steps:
- name: load guide master
uses: actions/download-artifact@v2
with:
name: guide_master
path: dist/guide/master
- name: load guide 0.5.0
uses: actions/download-artifact@v2
with:
name: guide_0_5_0
path: dist/guide/0.5.0
- name: load guide 0.6
uses: actions/download-artifact@v2
with:
name: guide_0_6
path: dist/guide/0.6
- name: load guide 0.7
uses: actions/download-artifact@v2
with:
name: guide_0_7
path: dist/guide/0.7
- name: load bunny_demo
uses: actions/download-artifact@v2
with:
name: bunny_demo
path: dist/bunny_demo
- name: load square_eater
uses: actions/download-artifact@v2
with:
name: square_eater
path: dist/square_eater
- name: load visualizer
uses: actions/download-artifact@v2
with:
name: visualizer
path: dist/visualizer
- name: deploy to gh pages
uses: maxheld83/ghpages@master
env:
BUILD_DIR: "dist/"
GH_PAT: ${{ secrets.GH_PAT }}