From 06cc358b7d4796fae2808548139dd4b0cf72a12b Mon Sep 17 00:00:00 2001 From: Diego Barrios Romero Date: Sat, 30 Jan 2021 17:04:24 +0100 Subject: [PATCH] Use GHA instead of Travis for CI --- .github/workflows/build.yml | 168 ++++++++++++++++++++++++++++++++++++ .travis.yml | 66 -------------- Cargo.toml | 4 - README.md | 2 +- 4 files changed, 169 insertions(+), 71 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..d0ccb55 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,168 @@ +on: + push: + pull_request: + schedule: + - cron: 0 0 * * 0 + +name: Build + +env: + RUSTFLAGS: '--deny warnings' + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + matrix: + rust: [stable, beta, nightly, 1.31.0] + TARGET: + - x86_64-unknown-linux-gnu + - x86_64-unknown-linux-musl + - arm-unknown-linux-gnueabi # Raspberry Pi 1 + - armv7-unknown-linux-gnueabihf # Raspberry Pi 2, 3, etc + # Bare metal + - thumbv6m-none-eabi + - thumbv7em-none-eabi + - thumbv7em-none-eabihf + - thumbv7m-none-eabi + + include: + # Test nightly but don't fail + - rust: nightly + experimental: true + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + target: ${{ matrix.TARGET }} + override: true + + - name: Checkout CI scripts + uses: actions/checkout@v2 + with: + repository: 'eldruin/rust-driver-ci-scripts' + ref: 'master' + path: 'ci' + + - run: ./ci/patch-no-std.sh + if: ${{ ! contains(matrix.TARGET, 'x86_64') }} + + - name: Build + uses: actions-rs/cargo@v1 + with: + command: build + args: --target=${{ matrix.TARGET }} + + checks: + name: Checks + runs-on: ubuntu-latest + strategy: + matrix: + rust: [stable, beta] + TARGET: + - x86_64-unknown-linux-gnu + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + target: ${{ matrix.TARGET }} + override: true + components: rustfmt + + - name: Doc + uses: actions-rs/cargo@v1 + with: + command: doc + + - name: Formatting + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + strategy: + matrix: + rust: [1.31.0] + TARGET: + - x86_64-unknown-linux-gnu + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + target: ${{ matrix.TARGET }} + override: true + components: clippy + + - name: Clippy + uses: actions-rs/clippy-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + test: + name: Tests + runs-on: ubuntu-latest + strategy: + matrix: + rust: [stable, beta, nightly] + TARGET: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl] + include: + - rust: nightly + experimental: true + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + target: ${{ matrix.TARGET }} + override: true + + - name: Test + uses: actions-rs/cargo@v1 + with: + command: test + args: --target=${{ matrix.TARGET }} + + - name: Build examples + uses: actions-rs/cargo@v1 + if: contains(matrix.TARGET, 'x86_64') + with: + command: build + args: --target=${{ matrix.TARGET }} --examples + + coverage: + name: Coverage + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - name: Run cargo-tarpaulin + uses: actions-rs/tarpaulin@v0.1 + with: + args: '--out Lcov -- --test-threads 1' + + - name: upload to Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: './lcov.info' \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d16c137..0000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -language: rust -dist: bionic # because of tarpaulin - -env: - global: - - RUSTFLAGS="-D warnings" - -before_install: - - git clone https://github.com/eldruin/rust-driver-ci-scripts ci - - bash ci/before_install.sh - -jobs: - include: - - env: TARGET=x86_64-unknown-linux-gnu - before_script: - - bash ci/coverage_before_script.sh - after_success: - - bash ci/coverage_after_success.sh - addons: - apt: - packages: - - libcurl4-openssl-dev - - libelf-dev - - libdw-dev - - binutils-dev - - cmake - - # Minimum Supported Rust Version - - env: TARGET=x86_64-unknown-linux-gnu - rust: 1.31.0 - - # Raspberry Pi 1 - - env: TARGET=arm-unknown-linux-gnueabi DISABLE_EXAMPLES=1 DISABLE_TESTS=1 - - # Raspberry Pi 2, 3, etc - - env: TARGET=armv7-unknown-linux-gnueabihf DISABLE_EXAMPLES=1 DISABLE_TESTS=1 - - # Bare metal - - env: TARGET=thumbv6m-none-eabi - - env: TARGET=thumbv7em-none-eabi - - env: TARGET=thumbv7em-none-eabihf - - env: TARGET=thumbv7m-none-eabi - - allow_failures: - - env: TARGET=x86_64-unknown-linux-gnu - rust: nightly - - - env: TARGET=x86_64-unknown-linux-musl - rust: nightly - -install: - bash ci/install.sh - -script: - bash ci/script.sh - -after_script: set +e - -cache: cargo - -before_cache: - bash ci/before_cache.sh - -notifications: - email: - on_success: never diff --git a/Cargo.toml b/Cargo.toml index ff5b87a..f552ca2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,10 +20,6 @@ include = [ ] edition = "2018" -[badges] -travis-ci = { repository = "eldruin/ds1307-rs", branch = "master" } -coveralls = { repository = "eldruin/ds1307-rs", branch = "master", service = "github" } - [dependencies] embedded-hal = "0.2" rtcc = "0.2" diff --git a/README.md b/README.md index 15de052..a6a77ce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![crates.io](https://img.shields.io/crates/v/ds1307.svg)](https://crates.io/crates/ds1307) [![Docs](https://docs.rs/ds1307/badge.svg)](https://docs.rs/ds1307) -[![Build Status](https://travis-ci.org/eldruin/ds1307-rs.svg?branch=master)](https://travis-ci.org/eldruin/ds1307-rs) +[![Build Status](https://github.com/eldruin/ds1307-rs/workflows/Build/badge.svg)](https://github.com/eldruin/ds1307-rs/actions?query=workflow%3ABuild) [![Coverage Status](https://coveralls.io/repos/eldruin/ds1307-rs/badge.svg?branch=master)](https://coveralls.io/r/eldruin/ds1307-rs?branch=master) This is a platform agnostic Rust driver for the DS1307 real-time clock,