|
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 |
2 | 4 | version: 2.1
|
3 | 5 | # Orchestrate or schedule a set of jobs
|
4 | 6 | workflows:
|
@@ -44,10 +46,34 @@ jobs:
|
44 | 46 | pushd metacpan-docker
|
45 | 47 | ./src/metacpan-api/wait-for-es.sh http://localhost:9200 elasticsearch_test --
|
46 | 48 | 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. |
47 | 57 | - run:
|
48 | 58 | command: |
|
49 | 59 | 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 |
51 | 77 | - run:
|
52 | 78 | command: |
|
53 | 79 | pushd metacpan-docker
|
|
0 commit comments