Skip to content

Commit 74b9d09

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 6265242 commit 74b9d09

File tree

1 file changed

+11
-51
lines changed

1 file changed

+11
-51
lines changed

.circleci/config.yml

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

Comments
 (0)