# Test pre-releases on a larger scope (platforms & versions) to avoid bad surprises. name: Large scope on: push: branches: - staging jobs: test-versions: name: Tests on Linux runs-on: ubuntu-latest strategy: matrix: rust: [1.64.0, beta, nightly] steps: - name: Rust install uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} components: rustfmt, clippy - name: Checkout uses: actions/checkout@v3 - name: Cache crates from crates.io uses: actions/cache@v3 continue-on-error: false with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}' - name: Quality - cargo fmt run: | cargo fmt --all -- --check - name: Quality - cargo clippy run: | cargo clippy -- -D warnings # - name: Quality - convco check # run: | # git show-ref # curl -sSfLO https://github.com/convco/convco/releases/latest/download/convco-ubuntu.zip # unzip convco-ubuntu.zip # chmod +x convco # ./convco check # rm convco # - name: Quality - cargo deny check # run: | # curl -sSfL https://github.com/EmbarkStudios/cargo-deny/releases/download/0.12.2/cargo-deny-0.12.2-x86_64-unknown-linux-musl.tar.gz | tar zx --no-anchored cargo-deny --strip-components=1 # chmod +x cargo-deny # mv cargo-deny ~/.cargo/bin/ # cargo deny check # - name: Quality - cargo audit check # run: | # curl -sSfL https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.17.3/cargo-audit-x86_64-unknown-linux-musl-v0.17.3.tgz | tar zx --no-anchored cargo-audit --strip-components=1 # chmod +x cargo-audit # mv cargo-audit ~/.cargo/bin/ # rm -rf ~/.cargo/advisory-db/ # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 # - name: Quality - cargo outdated # timeout-minutes: 20 # run: | # cargo install --locked cargo-outdated || true # rm -rf ~/.cargo/advisory-db # cargo outdated --exit-code 1 # - name: Quality - cargo udeps (needs nightly) # run: | # cargo install --locked cargo-udeps || true # cargo udeps # - name: Quality - cargo pants # run: | # cargo install --locked cargo-pants || true # cargo pants - name: Build (dev) run: cargo build --all-features - name: Build (release) run: cargo build --all-features --release - name: Test run: ./ci/test_full.sh test-other-platforms: name: Tests on runs-on: '${{ matrix.os }}' strategy: matrix: include: - os: macos-latest target: x86_64-apple-darwin type: unix toolchain: stable - os: macos-latest target: aarch64-apple-darwin type: unix toolchain: stable steps: - name: Rust install uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.toolchain }} targets: ${{ matrix.target }} components: rustfmt, clippy - name: Checkout uses: actions/checkout@v3 - name: Cache crates from crates.io uses: actions/cache@v3 continue-on-error: false with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: '${{ runner.os }}-${{ matrix.target }}-cargo-stable-${{ hashFiles(''**/Cargo.lock'') }}' # - name: Quality - cargo fmt # run: | # cargo fmt --all -- --check # - name: Quality - cargo clippy # run: | # cargo clippy -- -D warnings # - name: Quality - convco check # run: | # git show-ref # curl -sSfLO https://github.com/convco/convco/releases/latest/download/convco-ubuntu.zip # unzip convco-ubuntu.zip # chmod +x convco # ./convco check # rm convco # - name: Quality - cargo deny check # run: | # curl -sSfL https://github.com/EmbarkStudios/cargo-deny/releases/download/0.12.2/cargo-deny-0.12.2-x86_64-unknown-linux-musl.tar.gz | tar zx --no-anchored cargo-deny --strip-components=1 # chmod +x cargo-deny # mv cargo-deny ~/.cargo/bin/ # cargo deny check # - name: Quality - cargo audit check # run: | # curl -sSfL https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.17.3/cargo-audit-x86_64-unknown-linux-musl-v0.17.3.tgz | tar zx --no-anchored cargo-audit --strip-components=1 # chmod +x cargo-audit # mv cargo-audit ~/.cargo/bin/ # rm -rf ~/.cargo/advisory-db/ # cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602 # - name: Quality - cargo outdated # timeout-minutes: 20 # run: | # cargo install --locked cargo-outdated || true # rm -rf ~/.cargo/advisory-db # cargo outdated --exit-code 1 # - name: Quality - cargo udeps (needs nightly) # run: | # cargo install --locked cargo-udeps || true # cargo udeps # - name: Quality - cargo pants # run: | # cargo install --locked cargo-pants || true # cargo pants - name: Build (dev) run: cargo build --all-features - name: Build (release) run: cargo build --all-features --release - name: Test run: ./ci/test_full.sh