diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 000000000000..2e40411a1a55 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,63 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Coverage + +# Trigger only on pushes to master, not pull requests +on: + push: + branches: + - master + +jobs: + + coverage: + name: Coverage + runs-on: ubuntu-latest + # Note runs outside of a container + # otherwise we get this error: + # Failed to run tests: ASLR disable failed: EPERM: Operation not permitted + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Setup Rust toolchain + run: | + rustup toolchain install stable + rustup default stable + - name: Install protobuf compiler in /protoc + run: | + sudo mkdir /protoc + sudo chmod a+rwx /protoc + cd /protoc + curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-linux-x86_64.zip + unzip protoc-21.4-linux-x86_64.zip + - name: Cache Cargo + uses: actions/cache@v3 + with: + path: /home/runner/.cargo + key: cargo-coverage-cache3- + - name: Run coverage + run: | + export PATH=$PATH:/protoc/bin + rustup toolchain install stable + rustup default stable + cargo install --version 0.18.2 cargo-tarpaulin + cargo tarpaulin --all --out Xml + - name: Report coverage + continue-on-error: true + run: bash <(curl -s https://codecov.io/bash) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 4a54c22b3545..8f6682cc5f73 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -98,41 +98,3 @@ jobs: rustup component add rustfmt - name: Run run: cargo fmt --all -- --check - - - coverage: - name: Coverage - runs-on: ubuntu-latest - # Note runs outside of a container - # otherwise we get this error: - # Failed to run tests: ASLR disable failed: EPERM: Operation not permitted - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - name: Setup Rust toolchain - run: | - rustup toolchain install stable - rustup default stable - - name: Install protobuf compiler in /protoc - run: | - sudo mkdir /protoc - sudo chmod a+rwx /protoc - cd /protoc - curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-linux-x86_64.zip - unzip protoc-21.4-linux-x86_64.zip - - name: Cache Cargo - uses: actions/cache@v3 - with: - path: /home/runner/.cargo - key: cargo-coverage-cache3- - - name: Run coverage - run: | - export PATH=$PATH:/protoc/bin - rustup toolchain install stable - rustup default stable - cargo install --version 0.18.2 cargo-tarpaulin - cargo tarpaulin --all --out Xml - - name: Report coverage - continue-on-error: true - run: bash <(curl -s https://codecov.io/bash)