diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0476aed --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: ci + +on: + pull_request: + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + name: Build and run tests + runs-on: ubuntu-latest + strategy: + matrix: + toolchain: + - "1.56" + - stable + steps: + - name: "Checkout repo" + uses: actions/checkout@v3 + - name: "Setup toolchain" + run: | + rustup update ${{ matrix.toolchain }} + rustup default ${{ matrix.toolchain }} + - name: "Build" + run: | + make all + cargo build --workspace --no-default-features + - name: "Run tests" + env: + RUSTDOCFLAGS: -D warnings + run: | + make check + suite: + name: Build and run external tests + runs-on: ubuntu-latest + steps: + - name: "Checkout repo" + uses: actions/checkout@v3 + - name: "Setup toolchain" + run: | + rustup update 1.56 + rustup default 1.56 + - name: "Run unit tests" + run: make suite + - name: "Setup node" + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: "Compare benchmark files" + run: make suite_bench + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: "Checkout" + uses: actions/checkout@v3 + - name: "Setup toolchain" + run: | + rustup update 1.56 + rustup default 1.56 + rustup component add rustfmt + rustup component add clippy + - name: "Check linting" + run: make lint