@@ -15,64 +15,24 @@ jobs:
1515 resource_class : large
1616 steps :
1717 - run :
18- name : docker-compose version
19- command : docker-compose --version
18+ name : 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
25+ chmod o+w cover_db
2726 - run :
27+ name : docker compose build
2828 command : |
29- pushd metacpan-docker
30- ./bin/metacpan-docker init
31- name : clone missing repositories
29+ docker compose --profile test build api-test
3230 - 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
6031 name : run tests with coverage
32+ command : |
33+ 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'
6134 # We are relying on environment variables from the host to be available when
6235 # we publish the report, so we publish from the host rather than trying
6336 # 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
6937 - codecov/upload :
70- 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
38+ file : cover_db/cover.json
0 commit comments