name: build
on: [push]
jobs:
test:
strategy:
matrix:
toolchain: [stable, beta, nightly]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
components: rustfmt, clippy
override: true
- name: Rustfmt
run: cargo fmt -- --check
- name: Clippy
run: cargo clippy --workspace -- -D warnings
- name: Test
run: cargo test
publish:
if: startsWith(github.event.ref, 'refs/tags')
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check tag against package version
run: |
[ "${GITHUB_REF#refs/tags/}" = "$(grep 'version' Cargo.toml | awk -F'"' '{print $2}')" ]
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Publish
run: cargo publish --token "${{ secrets.CRATES_IO_TOKEN }}"