Build and Test #1724
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@v4 | |
- 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@v4 | |
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@v4 | |
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@v4 | |
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 cli-ng" | |
- 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 cli-ng" | |
# - 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 cli-ng" | |
- 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 cli-ng" | |
# - 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 |