@@ -16,63 +16,22 @@ jobs:
1616 steps :
1717 - run :
1818 name : docker-compose version
19- command : docker-compose --version
19+ command : docker compose --version
20+ - checkout
2021 - run :
22+ name : create coverage directory
2123 command : |
22- git clone https://github.com/metacpan/metacpan-docker.git
23- cd metacpan-docker
24- name : metacpan-docker checkout
25- - checkout :
26- path : metacpan-docker/src/metacpan-api
24+ mkdir cover_db
2725 - run :
26+ name : docker compose build
2827 command : |
29- pushd metacpan-docker
30- ./bin/metacpan-docker init
31- name : clone missing repositories
28+ docker compose --profile test build api-test
3229 - run :
33- command : |
34- pushd metacpan-docker
35- docker-compose build --build-arg CPM_ARGS='--with-test' api_test
36- name : compose build
37- - run :
38- command : |
39- pushd metacpan-docker
40- ./bin/metacpan-docker init
41- docker-compose --verbose up -d api_test
42- name : compose up
43- - run :
44- command : |
45- pushd metacpan-docker
46- docker-compose exec -T api_test cpm install -g Devel::Cover
47- name : install Devel::Cover
48- # Since we're running docker-compose -d, we don't actually know if
49- # Elasticsearch is available at the time this build step begins. We
50- # probably need to wait for it here, so we'll add our own check.
51- - run :
52- command : |
53- pushd metacpan-docker
54- ./src/metacpan-api/wait-for-es.sh http://localhost:9200 elasticsearch_test
55- name : wait for ES
56- - run :
57- command : |
58- pushd metacpan-docker
59- docker-compose exec -T api_test env HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,^t/|^test-data/|^etc/" prove -lr --jobs 4 t
6030 name : run tests with coverage
31+ command : |
32+ docker compose --profile test run --env HARNESS_PERL_SWITCHES=-MDevel::Cover -v ./cover_db:/app/cover_db/ api-test bash -c 'prove -lr -j4 t && cover -report json'
6133 # We are relying on environment variables from the host to be available when
6234 # we publish the report, so we publish from the host rather than trying
6335 # to propagate env variables to the container.
64- - run :
65- command : |
66- pushd metacpan-docker
67- docker-compose exec -T api_test cover -report json
68- name : create coverage report
6936 - codecov/upload :
7037 file : metacpan-docker/src/metacpan-api/cover_db/cover.json
71- - run :
72- command : |
73- pushd metacpan-docker
74- docker-compose logs
75- docker stats --no-stream
76- docker ps -a | head
77- name : docker-compose logs
78- when : on_fail
0 commit comments