on: [pull_request] name: CI jobs: check: name: Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: check test: name: Test Suite runs-on: ubuntu-latest env: TASKRC: taskwarrior-testdata/.taskrc TASKDATA: taskwarrior-testdata/.task steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: sudo apt-get update && sudo apt-get install -y taskwarrior taskd - uses: actions/checkout@v2 with: repository: kdheepak/taskwarrior-testdata path: taskwarrior-testdata - run: | # prepare taskwarrior, initial setup task rc.confirmation=off || echo 0 - uses: actions-rs/cargo@v1 with: command: test fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: rustup component add rustfmt - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: rustup component add clippy - uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings grcov: runs-on: ubuntu-latest env: TASKRC: taskwarrior-testdata/.taskrc TASKDATA: taskwarrior-testdata/.task steps: - uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true profile: minimal - run: sudo apt-get update && sudo apt-get install -y taskwarrior taskd - uses: actions/checkout@v2 with: repository: kdheepak/taskwarrior-testdata path: taskwarrior-testdata - run: | # prepare taskwarrior, initial setup task rc.confirmation=off || echo 0 - name: Execute tests uses: actions-rs/cargo@v1 with: command: test args: --all env: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests" # Note that `actions-rs/grcov` Action can install `grcov` too, # but can't use faster installation methods yet. # As a temporary experiment `actions-rs/install` Action plugged in here. # Consider **NOT** to copy that into your workflow, # but use `actions-rs/grcov` only - name: Pre-installing grcov uses: actions-rs/install@v0.1 with: crate: grcov use-tool-cache: true - name: Gather coverage data id: coverage uses: actions-rs/grcov@v0.1 with: coveralls-token: ${{ secrets.COVERALLS_TOKEN }} - name: Coveralls upload uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel: true path-to-lcov: ${{ steps.coverage.outputs.report }} grcov_finalize: runs-on: ubuntu-latest needs: grcov steps: - name: Coveralls finalization uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true