diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 01ed42c..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,74 +0,0 @@ -version: 2.1 - -executors: - default: - docker: - - image: cimg/rust:1.70 - resource_class: small - gpu: - machine: - image: linux-cuda-12:2023.05.1 - resource_class: gpu.nvidia.small - -jobs: - test: - executor: gpu - steps: - - checkout - - run: - name: Install OpenCL - command: | - sudo apt update - sudo apt install ocl-icd-opencl-dev --no-install-recommends --yes - - run: - name: Install Rust - command: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain $(cat rust-toolchain) --profile minimal -y - - run: - name: Run tests - command: cargo test - - run: - name: Run `add` example - command: cargo run --example add - - rustfmt: - executor: default - steps: - - checkout - - run: - name: Run cargo fmt - command: cargo fmt --all -- --check - - clippy: - executor: default - steps: - - checkout - - run: - name: Run cargo clippy - command: cargo clippy --all-features --all-targets -- -D warnings - - build: - executor: default - steps: - - checkout - - run: - name: Run cargo release build - command: cargo build --release - - rustdoc: - executor: default - steps: - - checkout - - run: - name: Run rustdoc - command: cargo rustdoc --all-features -- -D warnings - -workflows: - version: 2.1 - - test: - jobs: - - rustfmt - - clippy - - test - - build - - rustdoc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d5fd8ea --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: CI + +on: [pull_request, push] + +# Cancel a job if there's a new on on the same branch started. +# Based on https://stackoverflow.com/questions/58895283/stop-already-running-workflow-job-in-github-actions/67223051#67223051 +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +env: + CARGO_INCREMENTAL: 0 + RUST_BACKTRACE: 1 + # Faster crates.io index checkout. + CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse + RUST_LOG: debug + +jobs: + check_clippy: + runs-on: ubuntu-24.04 + name: Clippy + steps: + - uses: actions/checkout@v4 + - name: Run cargo clippy + run: cargo clippy --all-targets --workspace --all-features -- -D warnings + + check_fmt: + runs-on: ubuntu-24.04 + name: Checking fmt + steps: + - uses: actions/checkout@v4 + - name: Run cargo fmt + run: cargo fmt --all -- --check + + rustdoc: + runs-on: ubuntu-24.04 + name: Rustdoc + steps: + - uses: actions/checkout@v4 + - name: Run rustdoc + run: cargo rustdoc --all-features -- -D warnings + + build: + runs-on: ubuntu-24.04 + name: Release build + steps: + - uses: actions/checkout@v4 + - name: Run cargo release build + run: cargo build --release + + # Enable these tests once there's a runner with a GPU. + #test_gpu: + # runs-on: ubuntu-24.04 + # name: Test + # steps: + # - uses: actions/checkout@v4 + # - name: Install required packages + # run: sudo apt install --no-install-recommends --yes libhwloc-dev nvidia-cuda-toolkit ocl-icd-opencl-dev + # - name: Run tests + # run: cargo test + # - name: Run `add` example + # run: cargo run --example add