diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..213ef14 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,54 @@ +on: + pull_request: + push: + branches: + - master + +name: CI + +jobs: + ci: + runs-on: [ubuntu-latest, windows-latest, macOS-latest] + + steps: + - uses: actions/checkout@v3 + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + components: rustfmt, clippy + + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + - uses: actions-rs/install@v0.1 + with: + crate: cargo-hack + version: latest + use-tool-cache: true + + - uses: actions-rs/cargo@v1 + with: + command: hack + args: check --workspace --ignore-private --each-feature --no-dev-deps + + - uses: actions-rs/cargo@v1 + with: + command: check + args: --workspace --all-targets --all-features + + - uses: actions-rs/cargo@v1 + with: + command: test + + - uses: actions-rs/clippy-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: --all-features + + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4193296..0000000 --- a/.travis.yml +++ /dev/null @@ -1,64 +0,0 @@ -sudo: false - -language: rust -cache: cargo -matrix: - fast_finish: true - include: - - env: - - NAME="stable" - # Link dead code to improve code coverage. - - RUSTFLAGS="-C link-dead-code" - rust: stable - # Required for code coverage, see Travis issue #9601. - sudo: required - addons: - apt: - packages: - - libcurl4-openssl-dev - - libelf-dev - - libdw-dev - - cmake - - gcc - - binutils-dev - - libiberty-dev - after_success: | - wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && - tar xzf master.tar.gz && - cd kcov-master && - mkdir build && - cd build && - cmake .. && - make && - make install DESTDIR=../../kcov-build && - cd ../.. && - rm -rf kcov-master && - for file in target/debug/lru-*[^\.d]; do mkdir -p "target/cov/$(basename $file)"; ./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; done && - bash <(curl -s https://codecov.io/bash) && - echo "Uploaded code coverage" - - env: NAME="msrv" - rust: 1.36.0 - - env: NAME="beta" - rust: beta - - env: NAME="nightly" - rust: nightly - - env: NAME="format" - rust: stable - install: - - rustup component add rustfmt - script: - - cargo fmt --all -- --check - - env: NAME="lint" - rust: stable - install: - - rustup component add clippy - script: - - cargo clippy - - env: NAME="no-hashbrown" - rust: stable - script: - - cargo test --no-default-features - - env: NAME="nightly-feature" - rust: nightly - script: - - cargo test --features nightly