Skip to content

Merge pull request #536 from mzeitlin11/expandable_into_id #989

Merge pull request #536 from mzeitlin11/expandable_into_id

Merge pull request #536 from mzeitlin11/expandable_into_id #989

Workflow file for this run

name: CI
on:
push:
branches:
- master
- next
pull_request:
branches:
- master
- next
env:
RUSTFLAGS: -Dwarnings
rust_min: 1.73
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Check formatting for workspace
run: cargo fmt --all -- --check
verify-codegen-crate:
runs-on: ubuntu-latest
defaults:
run:
working-directory: openapi
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Check formatting
run: cargo +nightly fmt -- --check
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Run clippy
run: cargo clippy
- name: Run codegen
run: cargo run --release -- --fetch current
- name: Ensure generated files unchanged
uses: tj-actions/verify-changed-files@v11.1
id: verify-changed-files
with:
files: |
**/*.rs
- name: Report changed files
if: steps.verify-changed-files.outputs.files_changed == 'true'
run: |
echo "Some files changed after code generation: ${{ steps.verify-changed-files.outputs.changed_files }}"
exit 1
clippy:
runs-on: ubuntu-latest
strategy:
matrix:
runtime:
[
async-std-surf,
tokio-hyper,
tokio-hyper-rustls,
tokio-hyper-rustls-webpki,
blocking,
blocking-rustls,
blocking-rustls-webpki,
]
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust_min }}
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Run clippy
run: cargo clippy --features "runtime-${{ matrix.runtime }} full serialize deserialize"
test:
runs-on: ubuntu-latest
strategy:
matrix:
runtime:
[
async-std-surf,
tokio-hyper,
tokio-hyper-rustls,
tokio-hyper-rustls-webpki,
blocking,
blocking-rustls,
blocking-rustls-webpki,
]
services:
stripe-mock:
image: stripe/stripe-mock
ports:
- 12111:12111
- 12112:12112
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust_min }}
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Test and gather coverage
run: cargo llvm-cov --lcov --output-path lcov.info --features "runtime-${{ matrix.runtime }} serialize deserialize"
- name: Upload to codecov.io
uses: codecov/codecov-action@v2.1.0
with:
token: ${{secrets.CODECOV_TOKEN}}
files: lcov.info
- name: Archive code coverage results
uses: actions/upload-artifact@v1
with:
name: code-coverage-report
path: lcov.info
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build Documentation
run: cargo doc --lib --no-deps --features "runtime-tokio-hyper full"
# Examples tested separately so that we can use crates which don't match our MSRV
examples:
name: Check Examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Check examples
run: cargo clippy --features "runtime-tokio-hyper-rustls" --workspace