name: Release on: push: tags: - "v*" jobs: check: name: Check strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: sudo apt-get update; sudo apt-get install -y libspeechd-dev if: ${{ runner.os == 'Linux' }} - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable components: rustfmt, clippy override: true - uses: actions-rs/cargo@v1 with: command: check args: --all-features --examples - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-features check_web: name: Check Web runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - uses: actions-rs/toolchain@v1 with: target: wasm32-unknown-unknown profile: minimal toolchain: stable components: rustfmt, clippy override: true - uses: actions-rs/cargo@v1 with: command: check args: --all-features --examples --target wasm32-unknown-unknown - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-features --target wasm32-unknown-unknown publish: name: Publish runs-on: ubuntu-latest needs: [check, check_web] env: CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }} steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - uses: actions-rs/toolchain@v1 with: target: wasm32-unknown-unknown profile: minimal toolchain: stable override: true - run: | sudo apt-get update sudo apt-get install -y libspeechd-dev cargo login $CARGO_TOKEN cargo publish