Skip to content

Commit 7ed98d0

Browse files
Merge pull request #157 from codacy/jose-melo/feat/circleci-orbs
Add coverage reporter orb
2 parents 6975d14 + ea3d74f commit 7ed98d0

File tree

5 files changed

+111
-4
lines changed

5 files changed

+111
-4
lines changed

.circleci/config.yml

Lines changed: 66 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
version: 2.1
22

33
orbs:
4-
codacy: codacy/base@1.0.2
4+
codacy: codacy/base@2.4.1
5+
6+
references:
7+
circleci_job: &circleci_job
8+
docker:
9+
- image: circleci/circleci-cli:0.1.5879
10+
working_directory: ~/workdir
511

612
jobs:
713
publish_circleci_artifacts:
@@ -13,12 +19,54 @@ jobs:
1319
- store_artifacts:
1420
path: ~/workdir/artifacts/
1521

22+
pack_and_validate:
23+
<<: *circleci_job
24+
steps:
25+
- attach_workspace:
26+
at: ~/workdir
27+
- run:
28+
name: Pack orb
29+
command: |
30+
echo "" >> orbs/examples/codacy-coverage-report.yml
31+
echo " orbs:" >> orbs/examples/codacy-coverage-report.yml
32+
echo " coverage-reporter: codacy/coverage-reporter@$(cat .version)" >> orbs/examples/codacy-coverage-report.yml
33+
circleci config pack orbs > orb.yml
34+
- run:
35+
name: Validate orb
36+
command: circleci orb validate orb.yml
37+
- persist_to_workspace:
38+
root: ~/workdir
39+
paths:
40+
- "orb.yml"
41+
42+
publish_dev:
43+
<<: *circleci_job
44+
steps:
45+
- attach_workspace:
46+
at: ~/workdir
47+
- deploy:
48+
name: Publish orb as dev (deleted after 90 days)
49+
command: circleci orb publish orb.yml codacy/coverage-reporter@dev:$(cat .version) --token $CIRCLE_TOKEN
50+
51+
publish_prod:
52+
<<: *circleci_job
53+
steps:
54+
- attach_workspace:
55+
at: ~/workdir
56+
- deploy:
57+
name: Publish final orb
58+
command: circleci orb publish orb.yml codacy/coverage-reporter@$(cat .version) --token $CIRCLE_TOKEN
59+
1660
workflows:
1761
version: 2
1862
compile_test_deploy:
1963
jobs:
2064
- codacy/checkout_and_version:
2165
write_sbt_version: true
66+
- pack_and_validate:
67+
context: CodacyCircleCI
68+
requires:
69+
- codacy/checkout_and_version
2270
- codacy/sbt:
2371
name: populate_cache
2472
cmd: sbt ";set scalafmtUseIvy in ThisBuild := false;update"
@@ -83,10 +131,24 @@ workflows:
83131
- codacy/publish_ghr:
84132
name: publish_ghr
85133
path: ~/workdir/artifacts/
134+
context: CodacyGitHub
135+
requires:
136+
- publish
137+
- publish_dev:
138+
context: CodacyCircleCI
139+
requires:
140+
- publish_ghr
141+
- pack_and_validate
142+
filters:
143+
branches:
144+
ignore:
145+
- master
146+
- publish_prod:
147+
context: CodacyCircleCI
148+
requires:
149+
- publish_ghr
150+
- pack_and_validate
86151
filters:
87152
branches:
88153
only:
89154
- master
90-
context: CodacyGitHub
91-
requires:
92-
- publish

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,24 @@ after_success:
299299
300300
Make sure you have set `CODACY_PROJECT_TOKEN` as an environment variable in your travis job!
301301

302+
## CircleCI
303+
304+
If you want to use codacy with Circle CI and report coverage generated from your tests run in CircleCI, you can use our [coverage reporter orb](https://circleci.com/orbs/registry/orb/codacy/coverage-reporter):
305+
306+
Example:
307+
308+
jobs:
309+
send-coverage-report:
310+
steps:
311+
- checkout
312+
- "run commands to generate the coverage result"
313+
- coverage-reporter/send_report
314+
workflows:
315+
version: 2
316+
coverage-example:
317+
jobs:
318+
- send-coverage-report
319+
302320
## Troubleshooting
303321

304322
### `Failed to upload report: Not Found`

orbs/@orb.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
version: 2.1
2+
3+
description: >
4+
Orb to send Codacy coverage reports

orbs/commands/send_report.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
description: "Download Codacy's coverage reporter and run it"
2+
3+
parameters:
4+
tool_version:
5+
type: string
6+
default: latest
7+
description: "Specify Codacy's coverage reporter tool version"
8+
steps:
9+
- run:
10+
command: |
11+
export CODACY_REPORTER_VERSION=<< parameters.tool_version >>
12+
bash <(curl -Ls https://coverage.codacy.com/get.sh)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
description: Send coverage report to Codacy
2+
usage:
3+
jobs:
4+
codacy-coverage-report:
5+
docker:
6+
- image: circleci/openjdk:8-jdk
7+
steps:
8+
- checkout
9+
- "run commands to generate the coverage result"
10+
- coverage-reporter/send_report
11+
version: 2.1

0 commit comments

Comments
 (0)