diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f302fcd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,87 @@ +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.23.0 + - build: pinned-win + os: windows-2019 + rust: 1.23.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 |