async-graphql/.github/workflows/ci.yml

161 lines
4.5 KiB
YAML
Raw Normal View History

2020-03-01 13:56:14 +00:00
name: CI
on:
push:
branches:
- master
2020-04-15 03:15:30 +00:00
pull_request:
branches:
- master
2020-03-01 13:56:14 +00:00
jobs:
tests:
name: Run tests - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { rust: stable, os: ubuntu-latest }
- { rust: 1.59.0, os: ubuntu-latest }
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Build with all features
run: cargo build --all-features
- name: Build
run: cargo build --workspace --verbose
- name: Run tests
run: cargo test --workspace --all-features
- name: Clean
run: cargo clean
2022-06-10 11:03:34 +00:00
tests_min_compat:
name: Run min rust version tests - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
2022-08-29 05:54:36 +00:00
- { rust: 1.59.0, os: ubuntu-latest }
2020-03-01 13:56:14 +00:00
steps:
2020-10-16 01:35:17 +00:00
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
2020-09-06 10:29:46 +00:00
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
2020-09-06 10:29:46 +00:00
override: true
# We exclude async-graphql-tide since it indirectly depends on async-global-executor which requires rust 1.59+
- name: Build with all features
run: cargo build --all-features
2020-03-20 15:32:02 +00:00
- name: Build
run: cargo build --workspace --exclude async-graphql-tide --verbose
2020-03-01 13:56:14 +00:00
- name: Run tests
run: cargo test --workspace --exclude async-graphql-tide --all-features
2021-03-23 03:58:45 +00:00
- name: Clean
run: cargo clean
2020-10-04 23:05:32 +00:00
rustfmt:
name: Run rustfmt - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { rust: nightly-2022-06-29, os: ubuntu-latest }
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
components: rustfmt
- name: Check format
run: cargo +${{ matrix.rust }} fmt --all -- --check
2022-09-01 15:20:53 +00:00
- name: Check examples format
working-directory: ./examples
run: cargo +${{ matrix.rust }} fmt --all -- --check
clippy:
name: Run clippy - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { rust: stable, os: ubuntu-latest }
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
components: clippy
- name: Check with clippy
run: cargo clippy --all
book_examples:
name: Test book examples
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Install mdBook
uses: peaceiris/actions-mdbook@v1
- name: Build with all features
run: cargo build --workspace --all-features
- name: Run book tests for en language
run: mdbook test -L target/debug/deps ./docs/en
- name: Run book tests for zh-CN language
run: mdbook test -L target/debug/deps ./docs/zh-CN
- name: Clean
run: cargo clean
examples:
name: Build examples - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
2022-09-01 15:04:40 +00:00
- { rust: stable, os: ubuntu-latest }
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
2022-05-01 02:00:56 +00:00
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
components: clippy, rustfmt
2020-10-16 01:35:17 +00:00
- name: Check examples with clippy
run: cargo clippy --all
working-directory: ./examples
2020-10-16 02:45:27 +00:00
- name: Build examples
run: cargo build --workspace --verbose
2020-10-16 01:35:17 +00:00
working-directory: ./examples
2021-03-23 03:58:45 +00:00
- name: Clean examples
run: cargo clean
working-directory: ./examples