Continuous integration #977
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: Continuous integration | |
on: | |
schedule: | |
- cron: '0 16 * * *' | |
push: | |
jobs: | |
build-and-test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
- beta | |
- 1.40.0 # MSRV (Minimum supported Rust version) | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install ${{ matrix.rust }} toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Install nightly toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
# Using -Z minimal-versions is less work than manually maintained Cargo.lock | |
# file for testing minimal versions. However, dev-dependencies can cause issues | |
# with this approach so we're keeping them in separate crate. | |
# See https://github.com/rust-lang/api-guidelines/pull/227#discussion_r527081699 | |
- name: Update to minimal versions | |
run: cargo +nightly update -Z minimal-versions | |
- name: 'Build' | |
run: cargo build --manifest-path vk-parse/Cargo.toml --features "" | |
- name: 'Build (features: serialize)' | |
run: cargo build --manifest-path vk-parse/Cargo.toml --features "serialize" | |
- name: 'Build (features: vkxml-convert)' | |
run: cargo build --manifest-path vk-parse/Cargo.toml --features "vkxml-convert" | |
- name: 'Build (features: serialize,vkxml-convert)' | |
run: cargo build --manifest-path vk-parse/Cargo.toml --features "serialize,vkxml-convert" | |
- name: 'Build all' | |
run: cargo build --all | |
- name: 'Test all' | |
run: cargo test --all |