on: [push, pull_request] name: CI jobs: check: name: Check runs-on: ubuntu-latest strategy: matrix: rust: - 1.63.0 - stable steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - uses: actions-rs/cargo@v1 with: command: check fmt: name: format needs: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: 1.63.0 - run: rustup component add rustfmt - name: cargo-fmt uses: actions-rs/cargo@v1 with: command: fmt args: -- --check test: name: Test Suite runs-on: ubuntu-latest strategy: matrix: rust: - 1.63.0 - stable steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - run: sudo apt-get update && sudo apt-get install -y taskwarrior - uses: actions-rs/cargo@v1 with: command: test - run: | # prepare taskwarrior, initial setup task rc.confirmation=off || echo 0 cargo run --example create_task | tee /tmp/create_task task import /tmp/create_task || exit 1 cat /tmp/create_task | cargo run --example import_task || exit 1 clippy: needs: check name: clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@master with: toolchain: 1.63.0 - uses: swatinem/rust-cache@v2 - run: rustup component add clippy - name: cargo-clippy run: cargo clippy --all --all-targets --all-features -- -D warnings ci: name: CI if: ${{ success() }} needs: - check - clippy - test runs-on: ubuntu-latest steps: - name: CI succeeded run: exit 0