Skip to content

Commit 9e889ac

Browse files
authored
Merge pull request #1194 from metacpan/oalders/devel-cover
Enable code coverage
2 parents 29aef23 + 74eb5a4 commit 9e889ac

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

.circleci/config.yml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/2.0/configuration-reference
1+
---
2+
# Use the latest 2.1 version of CircleCI pipeline process engine. See:
3+
# https://circleci.com/docs/2.0/configuration-reference
24
version: 2.1
35
# Orchestrate or schedule a set of jobs
46
workflows:
@@ -44,10 +46,34 @@ jobs:
4446
pushd metacpan-docker
4547
./src/metacpan-api/wait-for-es.sh http://localhost:9200 elasticsearch_test --
4648
name: wait for ES
49+
# We are running coverage inside the container, but creating the report
50+
# from outside of the container, so Devel::Cover is installed twice. We
51+
# are relying on environment variables from the host to be available when
52+
# we publish the report, so we publish from the host rather than trying
53+
# to propagate env variables to the container. There is a CircleCI orb
54+
# that can publish the report for us, but it is hard to debug. I had to
55+
# set up the following config in order to debug the orb, so we may as
56+
# well keep it around for now.
4757
- run:
4858
command: |
4959
pushd metacpan-docker
50-
docker-compose exec -T api_test prove -lr --jobs 2 t
60+
docker-compose exec -T api_test cpm install -g Devel::Cover
61+
name: install Devel::Cover
62+
- run:
63+
command: |
64+
pushd metacpan-docker
65+
docker-compose exec -T api_test env HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,^t/|^test-data/|^etc/" prove -lr --jobs 2 t
66+
name: run tests with coverage
67+
# The report ends up being owned by root. We need to chown it so that
68+
# the cover command can make changes to it.
69+
- run:
70+
command: |
71+
pushd metacpan-docker/src/metacpan-api
72+
sudo apt install cpanminus
73+
sudo cpanm --notest Devel::Cover Devel::Cover::Report::Codecov Devel::Cover::Report::Codecovbash
74+
sudo chown -R circleci.circleci cover_db
75+
cover -report codecov
76+
name: upload coverage report
5177
- run:
5278
command: |
5379
pushd metacpan-docker

0 commit comments

Comments
 (0)