name: ci on: pull_request: push: branches: - master schedule: - cron: '00 01 * * *' jobs: test: name: test runs-on: ${{ matrix.os }} strategy: matrix: build: - pinned - pinned-win - stable - beta - nightly - macos - win-msvc - win-gnu include: - build: pinned os: ubuntu-18.04 rust: 1.34.0 - build: pinned-win os: windows-2019 rust: 1.34.0 - build: stable os: ubuntu-18.04 rust: stable - build: beta os: ubuntu-18.04 rust: beta - build: nightly os: ubuntu-18.04 rust: nightly - build: macos os: macos-latest rust: stable - build: win-msvc os: windows-2019 rust: stable - build: win-gnu os: windows-2019 rust: stable-x86_64-gnu steps: - name: Checkout repository uses: actions/checkout@v1 with: fetch-depth: 1 - name: Install Rust uses: hecrj/setup-rust-action@v1 with: rust-version: ${{ matrix.rust }} - run: cargo build --verbose - run: cargo doc --verbose - if: startsWith(matrix.build, 'pinned-') == false run: cargo test --verbose - if: matrix.build == 'nightly' run: | set -x cargo generate-lockfile -Z minimal-versions cargo build --verbose cargo test --verbose # TODO: Switch to rustfmt for walkdir 3. walkdir 3 is in a # half-finished state, and applying rustfmt now would wreak havoc. # rustfmt: # name: rustfmt # runs-on: ubuntu-18.04 # steps: # - name: Checkout repository # uses: actions/checkout@v1 # with: # fetch-depth: 1 # - name: Install Rust # uses: hecrj/setup-rust-action@v1 # with: # rust-version: stable # - name: Install rustfmt # run: rustup component add rustfmt # - name: Check formatting # run: | # cargo fmt --all -- --check