Release only if changes exist #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pull request | |
on: | |
pull_request: | |
# We require PRs to be up to date before merging so technically it is not needed run the rust job | |
# on main. However for the cache to be usable in PRs we do need the job on main. | |
push: | |
branches: [main] | |
jobs: | |
lint: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: Swatinem/rust-cache@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
components: rustfmt | |
- run: | | |
rustup --version | |
rustup show | |
cargo --version | |
cargo +nightly fmt --version | |
cargo clippy --version | |
- run: cargo +nightly fmt --all -- --check | |
- run: cargo clippy --locked --workspace --all-features --all-targets -- -D warnings | |
unit-tests: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
env: | |
# Shrink artifact size by not including debug info. Makes build faster and shrinks cache. | |
CARGO_PROFILE_DEV_DEBUG: 0 | |
CARGO_PROFILE_TEST_DEBUG: 0 | |
CARGO_TERM_COLOR: always | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: Swatinem/rust-cache@v2 | |
- uses: taiki-e/install-action@nextest | |
- run: cargo build --tests | |
- run: cargo nextest run | |
openapi: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: npm install @apidevtools/swagger-cli | |
- run: node_modules/.bin/swagger-cli validate openapi.yml |