-
Notifications
You must be signed in to change notification settings - Fork 195
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1245 from metacpan/oalders/more-test-jobs
A large CircleCI VM can able to handle 4 test jobs
- Loading branch information
Showing
1 changed file
with
17 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,8 @@ | |
# Use the latest 2.1 version of CircleCI pipeline process engine. See: | ||
# https://circleci.com/docs/2.0/configuration-reference | ||
version: 2.1 | ||
orbs: | ||
codecov: codecov/[email protected] | ||
# Orchestrate or schedule a set of jobs | ||
workflows: | ||
docker-compose: | ||
|
@@ -38,42 +40,34 @@ jobs: | |
./bin/metacpan-docker init | ||
docker-compose --verbose up -d api_test | ||
name: compose up | ||
- run: | ||
command: | | ||
pushd metacpan-docker | ||
docker-compose exec -T api_test cpm install -g Devel::Cover | ||
name: install Devel::Cover | ||
# Since we're running docker-compose -d, we don't actually know if | ||
# Elasticsearch is available at the time this build step begins. We | ||
# probably need to wait for it here, so we'll add our own check. | ||
- run: | ||
command: | | ||
pushd metacpan-docker | ||
./src/metacpan-api/wait-for-es.sh http://localhost:9200 elasticsearch_test -- | ||
./src/metacpan-api/wait-for-es.sh http://localhost:9200 elasticsearch_test | ||
name: wait for ES | ||
# We are running coverage inside the container, but creating the report | ||
# from outside of the container, so Devel::Cover is installed twice. We | ||
# are relying on environment variables from the host to be available when | ||
# we publish the report, so we publish from the host rather than trying | ||
# to propagate env variables to the container. There is a CircleCI orb | ||
# that can publish the report for us, but it is hard to debug. I had to | ||
# set up the following config in order to debug the orb, so we may as | ||
# well keep it around for now. | ||
- run: | ||
command: | | ||
pushd metacpan-docker | ||
docker-compose exec -T api_test cpm install -g Devel::Cover | ||
name: install Devel::Cover | ||
- run: | ||
command: | | ||
pushd metacpan-docker | ||
docker-compose exec -T api_test env HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,^t/|^test-data/|^etc/" prove -lr --jobs 2 t | ||
docker-compose exec -T api_test env HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,^t/|^test-data/|^etc/" prove -lr --jobs 4 t | ||
name: run tests with coverage | ||
# The report ends up being owned by root. We need to chown it so that | ||
# the cover command can make changes to it. | ||
# We are relying on environment variables from the host to be available when | ||
# we publish the report, so we publish from the host rather than trying | ||
# to propagate env variables to the container. | ||
- run: | ||
command: | | ||
pushd metacpan-docker/src/metacpan-api | ||
sudo apt install cpanminus | ||
sudo cpanm --notest Devel::Cover Devel::Cover::Report::Codecov Devel::Cover::Report::Codecovbash | ||
sudo chown -R circleci.circleci cover_db | ||
cover -report codecov | ||
name: upload coverage report | ||
pushd metacpan-docker | ||
docker-compose exec -T api_test cover -report json | ||
name: create coverage report | ||
- codecov/upload: | ||
file: metacpan-docker/src/metacpan-api/cover_db/cover.json | ||
- run: | ||
command: | | ||
pushd metacpan-docker | ||
|