diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..e8d486a --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "cargo" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e3da6f4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,88 @@ +on: + pull_request: + branches: [main] + push: + branches: [main] + +name: CI + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + toolchain: + - stable + - nightly + - beta + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.toolchain }} + - name: Run cargo build + run: cargo build --release --target ${{ matrix.target }} + + test: + name: Tests + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + + - name: Build cargo tests + run: cargo test --all-features --no-run + + - name: Run cargo test + run: cargo test --all-features + + lints: + name: Lints + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: rustfmt, clippy + + - name: Run cargo fmt + run: cargo fmt --all -- --check + + - name: Run cargo clippy + uses: actions-rs/clippy-check@v1 + if: github.repository_owner == 'alexrudy' + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: --all-features -- -D warnings + + docs: + name: Docs + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: rustfmt, clippy + + - name: cargo doc + env: + RUSTDOCFLAGS: "-Dwarnings" + run: cargo doc --all-features --no-deps