@@ -15,64 +15,24 @@ jobs:
15
15
resource_class : large
16
16
steps :
17
17
- run :
18
- name : docker-compose version
19
- command : docker-compose --version
18
+ name : docker compose version
19
+ command : docker compose version
20
+ - checkout
20
21
- run :
22
+ name : create coverage directory
21
23
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
27
26
- run :
27
+ name : docker compose build
28
28
command : |
29
- pushd metacpan-docker
30
- ./bin/metacpan-docker init
31
- name : clone missing repositories
29
+ docker compose --profile test build api-test
32
30
- 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
60
31
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'
61
34
# We are relying on environment variables from the host to be available when
62
35
# we publish the report, so we publish from the host rather than trying
63
36
# 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
69
37
- 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