From ca3ba139a21337add76fbf48eee3b2b1b82adaef Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 18 Mar 2020 12:54:04 +0000 Subject: Setup CI to test with various toolchains --- .github/workflows/rust.yml | 13 +++++++++++++ README.md | 2 ++ rust-toolchain | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 2d78480..4c75d53 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -18,6 +18,7 @@ jobs: - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 with: + profile: minimal components: rustfmt - name: Run rustfmt uses: actions-rs/cargo@v1 @@ -36,6 +37,7 @@ jobs: - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 with: + profile: minimal components: clippy - name: Run clippy uses: actions-rs/cargo@v1 @@ -46,6 +48,13 @@ jobs: test: name: Run test suite runs-on: ubuntu-latest + strategy: + matrix: + rust: + - stable + - beta + - nightly + - 1.42.0 # Minimum supported version steps: - name: Checkout branch uses: actions/checkout@master @@ -53,6 +62,10 @@ jobs: submodules: true - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true - name: Run tests and gather coverage data uses: actions-rs/tarpaulin@v0.1 with: diff --git a/README.md b/README.md index 551aeb1..dc5a07e 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ expected_map.insert("y".to_string(), 2); assert_eq!(deserialized_map, expected_map); ``` +`dhall` requires Rust >= 1.42.0 + ## Standard-compliance This implementation currently supports most of the [Dhall diff --git a/rust-toolchain b/rust-toolchain index a50908c..2bf5ad0 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.42.0 +stable -- cgit v1.2.3 From a9153f0cd7980f7cd51e5376d7afdfa372973d6a Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 18 Mar 2020 13:01:11 +0000 Subject: Don't upload coverage for all toolchains --- .github/workflows/rust.yml | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 4c75d53..a9ba892 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -45,16 +45,13 @@ jobs: command: clippy args: -- -D warnings - test: - name: Run test suite + test_and_coverage: + name: Run tests and gather coverage data runs-on: ubuntu-latest strategy: matrix: rust: - stable - - beta - - nightly - - 1.42.0 # Minimum supported version steps: - name: Checkout branch uses: actions/checkout@master @@ -74,3 +71,28 @@ jobs: uses: codecov/codecov-action@v1.0.2 with: token: ${{secrets.CODECOV_TOKEN}} + + test: + name: Run tests + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - beta + - nightly + - 1.42.0 # Minimum supported version + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test -- cgit v1.2.3 From 9538d9c2b13ea24d3f9a83946f65ac62693ae9b0 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 18 Mar 2020 15:55:19 +0000 Subject: Reorganize CI workflows --- .github/workflows/coverage.yml | 27 ++++++++++++ .github/workflows/rust.yml | 98 ------------------------------------------ .github/workflows/style.yml | 46 ++++++++++++++++++++ .github/workflows/tests.yml | 58 +++++++++++++++++++++++++ 4 files changed, 131 insertions(+), 98 deletions(-) create mode 100644 .github/workflows/coverage.yml delete mode 100644 .github/workflows/rust.yml create mode 100644 .github/workflows/style.yml create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..946113a --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,27 @@ +name: Coverage + +on: + push: + branches: [ master ] + +jobs: + coverage: + name: Gather coverage data + runs-on: ubuntu-latest + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + - name: Run tests with tarpaulin + uses: actions-rs/tarpaulin@v0.1 + with: + args: '--all --exclude-files abnf_to_pest/* --exclude-files dhall_proc_macros/*' + - name: Upload coverage data to codecov.io + uses: codecov/codecov-action@v1.0.2 + with: + token: ${{secrets.CODECOV_TOKEN}} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml deleted file mode 100644 index a9ba892..0000000 --- a/.github/workflows/rust.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Test suite - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - fmt: - name: Check formatting - runs-on: ubuntu-latest - steps: - - name: Checkout branch - uses: actions/checkout@master - with: - submodules: true - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - components: rustfmt - - name: Run rustfmt - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all -- --check - - clippy: - name: Run clippy - runs-on: ubuntu-latest - steps: - - name: Checkout branch - uses: actions/checkout@master - with: - submodules: true - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - components: clippy - - name: Run clippy - uses: actions-rs/cargo@v1 - with: - command: clippy - args: -- -D warnings - - test_and_coverage: - name: Run tests and gather coverage data - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - stable - steps: - - name: Checkout branch - uses: actions/checkout@master - with: - submodules: true - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - - name: Run tests and gather coverage data - uses: actions-rs/tarpaulin@v0.1 - with: - args: '--release --all --exclude-files abnf_to_pest/* --exclude-files dhall_proc_macros/*' - - name: Upload coverage data to codecov.io - uses: codecov/codecov-action@v1.0.2 - with: - token: ${{secrets.CODECOV_TOKEN}} - - test: - name: Run tests - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - beta - - nightly - - 1.42.0 # Minimum supported version - steps: - - name: Checkout branch - uses: actions/checkout@master - with: - submodules: true - - name: Setup Rust toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - override: true - - name: Run tests - uses: actions-rs/cargo@v1 - with: - command: test diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml new file mode 100644 index 0000000..1b71ad7 --- /dev/null +++ b/.github/workflows/style.yml @@ -0,0 +1,46 @@ +name: Style checks + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + fmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + components: rustfmt + - name: Run rustfmt + uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + components: clippy + - name: Run clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: -- -D warnings diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..b257115 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,58 @@ +name: Test suite + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test_release: + name: Run tests (release) + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - stable + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test + args: --release + + tests_debug: + name: Run tests + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - beta + - nightly + - 1.42.0 # Minimum supported version + steps: + - name: Checkout branch + uses: actions/checkout@master + with: + submodules: true + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + - name: Run tests + uses: actions-rs/cargo@v1 + with: + command: test + -- cgit v1.2.3