Skip to content

Commit 5ae8467

Browse files
committed
update circleci config for new docker compose setup
This repo now has its own docker compose config, so it doesn't need to pull in a separate repo for testing. This simplifies the CI setup, and makes future updates easier as they don't have to coordinate across multiple repos.
1 parent 5282cdb commit 5ae8467

File tree

1 file changed

+8
-49
lines changed

1 file changed

+8
-49
lines changed

.circleci/config.yml

Lines changed: 8 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)