diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64ee277..8411da8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,9 +27,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3.0.2 + - uses: actions/checkout@v3 - - uses: actions-rs/toolchain@v1.0.7 + - uses: arduino/setup-task@v1 + + - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly @@ -40,7 +42,7 @@ jobs: with: key: build - - run: cargo build --all-features --locked --release + - run: task build:release - name: Upload artifacts uses: actions/upload-artifact@v3 @@ -58,9 +60,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3.0.2 + - uses: actions/checkout@v3 + + - uses: arduino/setup-task@v1 - - uses: actions-rs/toolchain@v1.0.7 + - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly @@ -71,24 +75,25 @@ jobs: with: key: test - - run: cargo test --all-features -- --nocapture + - run: task test -- --nocapture clippy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3.0.2 + - uses: actions/checkout@v3 + + - uses: arduino/setup-task@v1 - - uses: actions-rs/toolchain@v1.0.7 + - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt, clippy - - run: cargo fmt --all -- --check + - run: task format -- --check - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - args: --all-features diff --git a/.gitignore b/.gitignore index db2327a..a19cb05 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea +.task /target integration diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..0931417 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,46 @@ +version: 3 + +tasks: + lint: + desc: Lint code + cmds: + - cargo clippy + lint:fix: + desc: Lint code + cmds: + - cargo clippy --fix --allow-staged --allow-dirty + + format: + desc: Format code + cmds: + - cargo fmt --all + + test: + desc: Run tests + sources: + - Cargo.* + - src/** + - test-data/** + - tests/** + cmds: + - cargo test + + build: + desc: Build debug artifacts + sources: + - Cargo.* + - src/** + generates: + - target/debug/** + cmds: + - cargo build + + build:release: + desc: Build release artifacts + sources: + - Cargo.* + - src/** + generates: + - target/release/** + cmds: + - cargo build --release --locked