xref: /tonic/.github/workflows/CI.yml (revision ea7fe66b)
1name: CI
2
3on:
4  push:
5    branches:
6    - master
7  pull_request: {}
8
9jobs:
10  check:
11    runs-on: ${{ matrix.os }}
12    strategy:
13      matrix:
14        os: [ubuntu-latest, macOS-latest, windows-latest]
15        rust: [stable]
16
17    env:
18      RUSTFLAGS: "-D warnings"
19
20    steps:
21    - uses: hecrj/setup-rust-action@master
22      with:
23        rust-version: ${{ matrix.rust }}
24    - uses: actions/checkout@master
25    - name: Install rustfmt
26      run: rustup component add rustfmt
27    - name: Install cargo-hack
28      run: cargo install cargo-hack
29    - name: Check fmt
30      run: cargo fmt -- --check
31    - name: Check features
32      run: cargo hack check --all --ignore-private --each-feature --no-dev-deps
33    - name: Check all targets
34      run: cargo check --all --all-targets --all-features
35
36  deny-check:
37    name: cargo-deny check
38    runs-on: ubuntu-latest
39    steps:
40    - uses: actions/checkout@v1
41    - uses: EmbarkStudios/cargo-deny-action@v1
42
43  test:
44    runs-on: ${{ matrix.os }}
45    strategy:
46      matrix:
47        os: [ubuntu-latest, macOS-latest, windows-latest]
48        rust: [stable]
49
50    env:
51      RUSTFLAGS: "-D warnings"
52
53    steps:
54    - uses: hecrj/setup-rust-action@master
55      with:
56        rust-version: ${{ matrix.rust }}
57    - name: Install rustfmt
58      run: rustup component add rustfmt
59    - uses: actions/checkout@master
60    - name: Run tests
61      run: cargo test --all --all-features
62
63  interop:
64    name: Interop Tests
65    runs-on: ${{ matrix.os }}
66    strategy:
67      matrix:
68        os: [ubuntu-latest, macOS-latest, windows-latest]
69        rust: [stable]
70
71    env:
72      RUSTFLAGS: "-D warnings"
73
74    steps:
75    - uses: hecrj/setup-rust-action@master
76      with:
77        rust-version: ${{ matrix.rust }}
78    - name: Install rustfmt
79      run: rustup component add rustfmt
80    - uses: actions/checkout@master
81    - name: Run interop tests
82      run: ./interop/test.sh
83      shell: bash
84    - name: Run interop tests with Rustls
85      run: ./interop/test.sh --use_tls tls_rustls
86      shell: bash
87