diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml deleted file mode 100644 index c6f22ba..0000000 --- a/.github/workflows/audit.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Audit -on: - schedule: - - cron: '0 0 * * *' - push: - branches: [ main ] - paths: - - '**/Cargo.toml' - - '**/Cargo.lock' - pull_request: - branches: [ main ] - paths: - - '**/Cargo.toml' - - '**/Cargo.lock' -jobs: - security_audit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions-rs/audit-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bb4713b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,88 @@ +name: CI + +on: + push: + branches: [ main ] + paths: + - '**.rs' + - '**.toml' + - '.github/workflows/**' + pull_request: + branches: [ main ] + paths: + - '**.rs' + - '**.toml' + - '.github/workflows/**' + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + rust: [stable] + runs-on: ${{ matrix.os }} + + steps: + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Build code + uses: actions-rs/cargo@v1 + with: + command: build + args: --all --all-features + + - name: Test code + uses: actions-rs/cargo@v1 + with: + command: test + args: --all --all-features + + audit: + needs: test + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Audit dependencies + uses: EmbarkStudios/cargo-deny-action@v1 + + lint: + needs: test + runs-on: ubuntu-latest + + steps: + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: clippy + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Check code formatting + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check --config imports_granularity=Crate,group_imports=StdExternalCrate + + - name: Check for common mistakes and missed improvements + uses: actions-rs/clippy-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: --all-features diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml deleted file mode 100644 index 13be55d..0000000 --- a/.github/workflows/rust.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Rust - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -env: - CARGO_TERM_COLOR: always - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Build - run: cargo build --verbose - - name: Test - run: cargo test --verbose - - name: Fmt - run: cargo fmt -- --check --config imports_granularity=Crate,group_imports=StdExternalCrate - - name: Clippy - run: cargo clippy diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml new file mode 100644 index 0000000..d6ac043 --- /dev/null +++ b/.github/workflows/scheduled.yml @@ -0,0 +1,12 @@ +name: Scheduled +on: + schedule: + - cron: '0 0 * * *' + +jobs: + audit: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: EmbarkStudios/cargo-deny-action@v1 diff --git a/README.md b/README.md index 25bdd3d..31837cf 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +![CI](https://github.com/duesee/smtp-codec/actions/workflows/ci.yml/badge.svg) +![Scheduled](https://github.com/duesee/smtp-codec/actions/workflows/scheduled.yml/badge.svg) + # SMTP Protocol This crate provides some types and many parsers for SMTP. Many things are there, but it is still in a very rough state. diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..687bbbc --- /dev/null +++ b/deny.toml @@ -0,0 +1,9 @@ +[bans] +multiple-versions = "deny" + +[sources] +unknown-registry = "deny" +unknown-git = "deny" + +[licenses] +allow = [ "Apache-2.0", "MIT" ]