Skip to content

Commit

Permalink
Enable codecov and generate metadata file as artifact (#1320)
Browse files Browse the repository at this point in the history
  • Loading branch information
taylanisikdemir authored Mar 15, 2024
1 parent 0d1f929 commit 00ff688
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
7 changes: 6 additions & 1 deletion .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,18 @@ steps:
queue: "init"
docker: "*"
command: ".buildkite/scripts/fossa.sh"

- label: ":golang: unit-test"
agents:
queue: "workers"
docker: "*"
command: "make unit_test"
commands:
- "make unit_test"
- ".buildkite/scripts/gen_coverage_metadata.sh .build/metadata.txt"
artifact_paths:
- ".build/*/coverage/*.out"
- ".build/cover.out"
- ".build/metadata.txt"
plugins:
- docker-compose#v3.0.0:
run: unit-test
Expand Down
17 changes: 17 additions & 0 deletions .buildkite/scripts/gen_coverage_metadata.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh

set -ex

# This script generates coverage metadata for the coverage report.
# Output is used by SonarQube integration in Uber and not used by OS repo coverage tool itself.

# Example output:
# commit-sha: 6953daa563e8e44512bc349c9608484cfd4ec4ff
# timestamp: 2024-03-04T19:29:16Z

output_path="$1"

echo "commit-sha: $(git rev-parse HEAD)" > "$output_path"
echo "timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$output_path"

echo "Coverage metadata written to $output_path"
30 changes: 30 additions & 0 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Workflow for Codecov integration
on: [push, pull_request]
jobs:
codecov:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.22.x
cache: false

- name: Download dependencies
run: go mod download

- name: Test and generate coverage report
run: make unit_test

- name: Upload coverage reports to Codecov
uses: codecov/[email protected] # https://github.com/codecov/codecov-action
with:
file: .build/cover.out
exclude: ./
token: ${{ secrets.CODECOV_TOKEN }}
slug: uber-go/cadence-client
40 changes: 40 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Refs:
# - https://docs.codecov.com/docs/common-recipe-list
# - https://docs.codecov.com/docs/codecovyml-reference
#
# After making changes, run below command to validate
# curl --data-binary @codecov.yml https://codecov.io/validate
coverage:
range: 80...100
round: down
precision: 2
status:
project: # measuring the overall project coverage
default: # context, you can create multiple ones with custom titles
informational: true
target: 85% # specify the target coverage for each commit status
# option: "auto" (compare against parent commit or pull request base)
# option: "X%" a static target percentage to hit
threshold: 0% # allow the coverage drop by x% before marking as failure
if_ci_failed: ignore # require the CI to pass before setting the status
patch:
default:
informational: true
comment:
layout: "header, files, footer"
hide_project_coverage: false
codecov:
require_ci_to_pass: false
ignore:
- "**/*_generated.go"
- "**/*_mock.go"
- "**/testdata/**"
- "**/*_test.go"
- "**/*_testsuite.go"
- "compatibility/**"
- "idls/**"
- "internal/compatibility/**"
- "internal/tools/**"
- "mocks/**"
- "test/**"
- "testsuite/**"

0 comments on commit 00ff688

Please sign in to comment.