Skip to content

Commit

Permalink
Add coveralls
Browse files Browse the repository at this point in the history
  • Loading branch information
dannywillems committed Apr 16, 2021
1 parent 2b7491d commit 77f11f3
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 23 deletions.
27 changes: 4 additions & 23 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,36 +78,17 @@ coverage:
rules:
- when: always
before_script:
- sudo apt-get install m4 -y
- sudo apt-get install m4 jq curl -y
- eval $(opam env)
- opam repository set-url default https://opam.ocaml.org
- opam update
- opam depext -i -y zarith
- opam install -y --with-test .
script:
- dune runtest --instrument-with bisect_ppx --force
- bisect-ppx-report html
rules:
- when: always

# FIXME: does not seem to work. Getting `Build processing error`.
# coveralls:
# stage: deploy
# image: ocaml/opam2:4.10
# before_script:
# - sudo apt-get install m4 -y
# - eval $(opam env)
# - opam repository set-url default https://opam.ocaml.org
# - opam update
# - opam depext -i -y zarith
# - opam install -y --with-test .
# script:
# # Generate the coverage.json file. It is simply a JSON file used to post.
# - bisect-ppx-report coveralls coverage.json --service-name gitlab-ci --service-job-id $CI_JOB_ID --repo-token ${COVERALLS_REPO_TOKEN}
# - curl -L -F json_file=@./coverage.json https://coveralls.io/api/v1/jobs
# only:
# - merge_requests
# - master
- bisect-ppx-report coveralls coverage-raw.json --coverage-path _build/default/
- ./_ci/coverage_metadata_glci.sh coverage-raw.json > coverage_glci.json
- curl --location --request POST 'https://coveralls.io/api/v1/jobs' --form 'json_file=@coverage_glci.json'

pages:
stage: deploy
Expand Down
43 changes: 43 additions & 0 deletions _ci/coverage_metadata.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/sh

set -e
set -x

if [ -z $1 ]; then
echo "Usage: $0 <bisect-coverage.json>"
exit 1;
fi

if [ -z ${COVERALLS_REPO_TOKEN}]; then
echo "Set the variable COVERALLS_REPO_TOKEN"
exit 1;
fi

metadata_tmp=$(mktemp /tmp/coveralls-metadata.XXXXXXXX.json)
cat <<EOT > $metadata_tmp
{
"service_name": "$SERVICE_NAME",
"service_number": "$SERVICE_NUMBER",
"service_job_id": "$SERVICE_JOB_ID",
"service_pull_request": "$PULL_REQUEST_ID",
"repo_token": "$COVERALLS_REPO_TOKEN",
"git":
{"head":
{"id":"$COMMIT_SHA",
"author_name":"$AUTHOR_NAME",
"author_email":"$AUTHOR_EMAIL",
"committer_name":"$COMMITER_MAIL",
"committer_email":"$COMMITER_EMAIL",
"message":"$COMMITER_MESSAGE"
},"branch":"$BRANCH",
"remotes":{}},
"parallel": false,
"flag_name": "test",
"commit_sha": "$COMMIT_SHA",
"run_at": "$RUN_AT"
}
EOT

echo "Generated metadata: " $metadata_tmp > /dev/stderr

jq -r -s '.[0] * .[1]' $metadata_tmp $1
28 changes: 28 additions & 0 deletions _ci/coverage_metadata_glci.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash

set -e
# set -u
set -x

if [ -z $1 ]; then
echo "Usage: $0 <bisect-coverage.json>"
exit 1;
fi

CI_COMMIT_AUTHOR_NAME=$(echo $CI_COMMIT_AUTHOR | sed 's/ <.*//')
CI_COMMIT_AUTHOR_EMAIL=$(echo $CI_COMMIT_AUTHOR | sed 's/.*<\(.*\)>.*/\1/')

export RUN_AT=$CI_JOB_STARTED_AT
export SERVICE_NAME="gitlab-ci"
export SERVICE_NUMBER=$CI_PIPELINE_IID
export SERVICE_JOB_ID=$CI_JOB_ID
export PULL_REQUEST_ID=$CI_OPEN_MERGE_REQUESTS
export COMMIT_SHA=$CI_COMMIT_SHA
export AUTHOR_NAME=$CI_COMMIT_AUTHOR_NAME
export AUTHOR_EMAIL=$CI_COMMIT_AUTHOR_EMAIL
export COMMITER_MAIL=$CI_COMMIT_AUTHOR_NAME
export COMMITER_EMAIL=$CI_COMMIT_AUTHOR_EMAIL
export COMMITER_MESSAGE=$(echo $CI_COMMIT_MESSAGE | sed -z 's@\n@\\n@g')
export BRANCH=$CI_COMMIT_BRANCH

./_ci/coverage_metadata.sh $1
24 changes: 24 additions & 0 deletions _ci/coverage_metadata_local.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

set -e
set -u

if [ -z $1 ]; then
echo "Usage: $0 <bisect-coverage.json>"
exit 1;
fi

export RUNAT=$(date +'%Y-%m-%d %H:%m:%S %z')
export SERVICE_NAME="local"
export SERVICE_NUMBER=1000
export SERVICE_JOB_ID=1001
export PULL_REQUEST_ID=1002
export COMMIT_SHA=$(git rev-parse HEAD)
export AUTHOR_NAME=$(git log --oneline --format='%an' -n 1 HEAD)
export AUTHOR_EMAIL=$(git log --oneline --format='%ae' -n 1 HEAD)
export COMMITER_MAIL=$(git log --oneline --format='%cn' -n 1 HEAD)
export COMMITER_EMAIL=$(git log --oneline --format='%ce' -n 1 HEAD)
export COMMITER_MESSAGE=$(git log --oneline --format='%s' -n 1 HEAD)
export BRANCH=$(git rev-parse --abbrev-ref HEAD)

./_ci/coverage_metadata.sh $1

0 comments on commit 77f11f3

Please sign in to comment.