feat(rust): implement true anyOf support with OR semantics #13
Workflow file for this run
This file contains hidden or 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: Samples Rust Clients | |
on: | |
push: | |
paths: | |
- "samples/client/others/rust/**" | |
- "samples/client/petstore/rust-server/**" | |
pull_request: | |
paths: | |
- "samples/client/others/rust/**" | |
- "samples/client/petstore/rust/**" | |
jobs: | |
build: | |
name: Build Rust | |
runs-on: ubuntu-latest | |
services: | |
petstore-api: | |
image: swaggerapi/petstore | |
ports: | |
- 80:8080 | |
env: | |
SWAGGER_HOST: http://petstore.swagger.io | |
SWAGGER_BASE_PATH: /v2 | |
strategy: | |
fail-fast: false | |
matrix: | |
sample: | |
# these folders contain sub-projects of rust clients, servers | |
- samples/client/others/rust/ | |
- samples/client/petstore/rust/ | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
cache-targets: false # Don't cache workspace target directories as they don't exist | |
cache-directories: | |
${{ matrix.sample }}/target | |
workspaces: | | |
${{ matrix.sample }}/output/* | |
- name: Build | |
working-directory: ${{ matrix.sample }} | |
run: cargo build --all-targets --all-features | |
- name: Tests | |
working-directory: ${{ matrix.sample }} | |
run: | | |
set -e | |
# Iterate through each example and test various features | |
for package in $(find . -maxdepth 1 -mindepth 1 -type d) | |
do | |
# Not all versions have a client example | |
if test -f examples/client/main.rs; then | |
cargo build --example client --features="client" | |
fi | |
# Test the CLI works if present | |
if test -f bin/cli.rs; then | |
cargo build --bin ${package##*/} --features cli | |
target/debug/${package##*/} --help | |
fi | |
cargo fmt | |
cargo test | |
cargo clippy | |
cargo doc | |
done |