Skip to content

Commit

Permalink
Add code coverage (#3)
Browse files Browse the repository at this point in the history
* Add codecov.yml

* add back codecov

* add codecov badge
  • Loading branch information
connortsui20 authored Jan 29, 2025
1 parent 3c7b549 commit e35765b
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 48 deletions.
23 changes: 23 additions & 0 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Taken from https://github.com/jonhoo/rust-ci-conf/blob/main/.github/codecov.yml

# ref: https://docs.codecov.com/docs/codecovyml-reference
coverage:
# Hold ourselves to a high bar
range: 85..100
round: down
precision: 1
status:
# ref: https://docs.codecov.com/docs/commit-status
project:
default:
# Avoid false negatives
threshold: 1%

# Test files aren't important for coverage
ignore:
- "tests"

# Make comments less noisy
comment:
layout: "files"
require_changes: true
95 changes: 47 additions & 48 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,51 +109,50 @@ jobs:
run: cargo generate-lockfile
- name: cargo test
run: cargo test --locked --all-features --all-targets
# # TODO: Setup code coverage.
# coverage:
# # use llvm-cov to build and collect coverage and outputs in a format that
# # is compatible with codecov.io
# #
# # note that codecov as of v4 requires that CODECOV_TOKEN from
# #
# # https://app.codecov.io/gh/<user or org>/<project>/settings
# #
# # is set in two places on your repo:
# #
# # - https://github.com/jonhoo/guardian/settings/secrets/actions
# # - https://github.com/jonhoo/guardian/settings/secrets/dependabot
# #
# # (the former is needed for codecov uploads to work with Dependabot PRs)
# #
# # PRs coming from forks of your repo will not have access to the token, but
# # for those, codecov allows uploading coverage reports without a token.
# # it's all a little weird and inconvenient. see
# #
# # https://github.com/codecov/feedback/issues/112
# #
# # for lots of more discussion
# runs-on: ubuntu-latest
# name: ubuntu / stable / coverage
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install stable
# uses: dtolnay/rust-toolchain@stable
# with:
# components: llvm-tools-preview
# - name: cargo install cargo-llvm-cov
# uses: taiki-e/install-action@cargo-llvm-cov
# - name: cargo generate-lockfile
# if: hashFiles('Cargo.lock') == ''
# run: cargo generate-lockfile
# - name: cargo llvm-cov
# run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
# - name: Record Rust version
# run: echo "RUST=$(rustc --version)" >> "$GITHUB_ENV"
# - name: Upload to codecov.io
# uses: codecov/codecov-action@v5
# with:
# fail_ci_if_error: true
# token: ${{ secrets.CODECOV_TOKEN }}
# env_vars: OS,RUST
coverage:
# use llvm-cov to build and collect coverage and outputs in a format that
# is compatible with codecov.io
#
# note that codecov as of v4 requires that CODECOV_TOKEN from
#
# https://app.codecov.io/gh/<user or org>/<project>/settings
#
# is set in two places on your repo:
#
# - https://github.com/jonhoo/guardian/settings/secrets/actions
# - https://github.com/jonhoo/guardian/settings/secrets/dependabot
#
# (the former is needed for codecov uploads to work with Dependabot PRs)
#
# PRs coming from forks of your repo will not have access to the token, but
# for those, codecov allows uploading coverage reports without a token.
# it's all a little weird and inconvenient. see
#
# https://github.com/codecov/feedback/issues/112
#
# for lots of more discussion
runs-on: ubuntu-latest
name: ubuntu / stable / coverage
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- name: cargo install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: cargo llvm-cov
run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
- name: Record Rust version
run: echo "RUST=$(rustc --version)" >> "$GITHUB_ENV"
- name: Upload to codecov.io
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
env_vars: OS,RUST
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
[![codecov](https://codecov.io/gh/cmu-db/optd/graph/badge.svg?token=FYM7I3R3GZ)](https://codecov.io/gh/cmu-db/optd)

# optd

Query Optimizer Service

## Documentation
Expand Down

0 comments on commit e35765b

Please sign in to comment.