diff --git a/.github/workflows/check-and-build-and-test.yml b/.github/workflows/check-and-build-and-test.yml new file mode 100644 index 0000000..8f914fc --- /dev/null +++ b/.github/workflows/check-and-build-and-test.yml @@ -0,0 +1,60 @@ +name: Check, build, and test + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +env: + CARGO_TERM_COLOR: always + +jobs: + check: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - uses: Swatinem/rust-cache@v2 + + - name: Check + run: cargo check --verbose + + build: + needs: check + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - uses: Swatinem/rust-cache@v2 + + - name: Build + run: cargo build --verbose + + test: + needs: build + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Install Nextest + uses: taiki-e/install-action@cargo-nextest + + - uses: Swatinem/rust-cache@v2 + + - name: Run tests + run: cargo nextest run