Build and Test #1212
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: Build and Test | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
schedule: | |
- cron: "0 7 * * *" | |
jobs: | |
build_and_test: | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- stable | |
- nightly | |
name: ${{ matrix.version }} - x86_64-unknown-linux-gnu | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install ${{ matrix.version }} | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.version }}-x86_64-unknown-linux-gnu | |
profile: minimal | |
override: true | |
- name: Generate Cargo.lock | |
uses: actions-rs/cargo@v1 | |
with: | |
command: generate-lockfile | |
- name: Cache cargo registry | |
uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/registry | |
key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
- name: Cache cargo index | |
uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/git | |
key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
- name: Cache cargo build | |
uses: actions/cache@v1 | |
with: | |
path: target | |
key: ${{ matrix.version }}-x86_64-unknown-linux-gnu-cargo-build-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
- name: Init submodule | |
run: | | |
git submodule update --init --recursive | |
- name: Build actix features | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 10 | |
with: | |
command: build | |
args: --all --features "actix4 cli chrono url uuid swagger-ui rapidoc v3 actix4-validator" | |
- name: Build actix3 features | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 10 | |
with: | |
command: build | |
args: --all --features "actix3 cli chrono url uuid swagger-ui rapidoc v3 actix3-validator" | |
- name: Build actix2 features | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 10 | |
with: | |
command: build | |
args: --all --features "actix2 cli chrono url uuid swagger-ui rapidoc v3" | |
- name: Run actix tests | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 20 | |
with: | |
command: test | |
args: --all --features "actix4 cli chrono url uuid swagger-ui rapidoc v3 actix4-validator" | |
- name: Run actix3 tests | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 20 | |
with: | |
command: test | |
args: --all --features "actix3 cli chrono url uuid swagger-ui rapidoc v3 actix3-validator" | |
- name: Run actix2 tests | |
uses: actions-rs/cargo@v1 | |
timeout-minutes: 20 | |
with: | |
command: test | |
args: --all --features "actix2 cli chrono url uuid swagger-ui rapidoc v3" | |
- name: Install cargo-cache | |
continue-on-error: true | |
run: | | |
cargo install cargo-cache --no-default-features --features ci-autoclean | |
- name: Run the cargo cache | |
run: | | |
cargo-cache |