diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d2ef7c4 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,30 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + + # Maintain dependencies for rust + - package-ecosystem: "cargo" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6c1ab7c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,88 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + +env: + CARGO_TERM_COLOR: always + CARGO_REGISTRIES_MY_REGISTRY_INDEX: https://github.com/rust-lang/crates.io-index + +jobs: + # 1 + check: + name: Rust project check + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install latest + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + components: rustfmt, clippy + + # `cargo check` command here will use installed `nightly` + # as it is set as an "override" for current directory + + - name: Run cargo clippy on tokio + uses: actions-rs/cargo@v1 + with: + command: check + args: --features "tokio, futures" + + - name: Run cargo clippy on monoio + uses: actions-rs/cargo@v1 + with: + command: check + args: --features "monoio, futures" + + - name: Run cargo build on tokio + uses: actions-rs/cargo@v1 + with: + command: build + args: --features "tokio, futures" + + - name: Run cargo build on monoio + uses: actions-rs/cargo@v1 + with: + command: build + args: --features "monoio, futures" + + - name: Run cargo test on tokio + uses: actions-rs/cargo@v1 + with: + command: test + args: --workspace --features "tokio, futures" + + - name: Run cargo test on monoio + uses: actions-rs/cargo@v1 + with: + command: test + args: --workspace --features "monoio, futures" + # 2 + fmt: + name: Rust fmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install latest nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + components: rustfmt, clippy + + # `cargo check` command here will use installed `nightly` + # as it is set as an "override" for current directory + + - name: Run cargo fmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: -- --check \ No newline at end of file