Log Test¶
Logs JUnit xml format test summary evidence in Merkely. The JUnit xml format is used by many tools, not just testing frameworks. By default, looks for JUnit .xml files in the /data/junit/ dir.
Open an example, similar to the fragment below, from a git repo.
docker run \
--env MERKELY_COMMAND=log_test \
--env MERKELY_FINGERPRINT="${MERKELY_FINGERPRINT}" \
--env MERKELY_EVIDENCE_TYPE="${MERKELY_EVIDENCE_TYPE}" \
--env MERKELY_TEST_RESULTS_DIR="${MERKELY_TEST_RESULTS_DIR}" \
--env MERKELY_DESCRIPTION="${MERKELY_DESCRIPTION}" \
--env MERKELY_CI_BUILD_URL="${MERKELY_CI_BUILD_URL}" \
--env MERKELY_USER_DATA="${MERKELY_USER_DATA}" \
--env MERKELY_OWNER="${MERKELY_OWNER}" \
--env MERKELY_PIPELINE="${MERKELY_PIPELINE}" \
--env MERKELY_API_TOKEN="${MERKELY_API_TOKEN}" \
--env MERKELY_HOST="${MERKELY_HOST}" \
--env MERKELY_DRY_RUN="${MERKELY_DRY_RUN}" \
--rm \
--volume ${YOUR_TEST_RESULTS_DIR}:/data/junit/ \
--volume /var/run/docker.sock:/var/run/docker.sock \
merkely/change:latest
ENV_VAR_NAME |
Required? |
Notes |
|---|---|---|
MERKELY_COMMAND |
yes |
The Merkely command to execute. This page documents a value of log_test |
MERKELY_FINGERPRINT |
yes |
The artifact’s Fingerprint |
MERKELY_EVIDENCE_TYPE |
yes |
The evidence type. |
MERKELY_TEST_RESULTS_DIR |
no |
The directory where Merkely will look for JUnit .xml files. Must be volume-mounted in the container. Defaults to /data/junit/ |
MERKELY_DESCRIPTION |
no |
A description of the test summary. Defaults to “JUnit results xml verified by merkely/change: ” followed by a summary, eg “All tests passed in 1 test suites” |
MERKELY_CI_BUILD_URL |
yes |
Link to the build in the ci system. |
MERKELY_USER_DATA |
no |
A pathed filename containing json content to embed in the data logged to Merkely. If provided, must be volume-mounted in the container. If not provided, the json content defaults to {} |
MERKELY_OWNER |
yes |
Your user/organization name in Merkely. |
MERKELY_PIPELINE |
yes |
Your pipeline name in your user/organization in Merkely. |
MERKELY_API_TOKEN |
yes |
Your secret API token for Merkely. Set this to “DRY_RUN” to turn off all commands in all pipelines. |
MERKELY_HOST |
no |
The API hostname for Merkely. Defaults to https://app.merkely.com |
MERKELY_DRY_RUN |
no |
When set to “TRUE”, prints the command’s url+payload, does not make any HTTP calls to Merkely, and exits the command with a zero status code. Defaults to “FALSE”. See also setting the MERKELY_API_TOKEN (above) to code:`DRY_RUN`. |
Open an example, similar to the fragment below, from a git repo.
- step: &log_unit_test_results_in_merkely
name: Log unit test results in Merkely
services: [ docker ]
script:
- *export_merkely_fingerprint_env_vars
- pipe: docker://merkely/change:latest
variables:
MERKELY_COMMAND: log_test
MERKELY_FINGERPRINT: ${MERKELY_FINGERPRINT}
MERKELY_EVIDENCE_TYPE: unit_test
MERKELY_TEST_RESULTS_DIR: ${PWD}/build/test/
MERKELY_OWNER: ${MERKELY_OWNER}
MERKELY_PIPELINE: ${MERKELY_PIPELINE}
MERKELY_API_TOKEN: ${MERKELY_API_TOKEN}
ENV_VAR_NAME |
Required? |
Notes |
|---|---|---|
MERKELY_COMMAND |
yes |
The Merkely command to execute. This page documents a value of log_test |
MERKELY_FINGERPRINT |
yes |
The artifact’s Fingerprint |
MERKELY_EVIDENCE_TYPE |
yes |
The evidence type. |
MERKELY_TEST_RESULTS_DIR |
no |
The directory where Merkely will look for JUnit .xml files. Must be volume-mounted in the container. Defaults to /data/junit/ |
MERKELY_DESCRIPTION |
no |
A description of the test summary. Defaults to “JUnit results xml verified by merkely/change: ” followed by a summary, eg “All tests passed in 1 test suites” |
MERKELY_CI_BUILD_URL |
no |
Link to the build in the ci system. Defaults to https://bitbucket.org/${BITBUCKET_WORKSPACE}/${BITBUCKET_REPO_SLUG}/addon/pipelines/home#!/results/${BITBUCKET_BUILD_NUMBER} |
MERKELY_USER_DATA |
no |
A pathed filename containing json content to embed in the data logged to Merkely. If provided, must be volume-mounted in the container. If not provided, the json content defaults to {} |
MERKELY_OWNER |
yes |
Your user/organization name in Merkely. |
MERKELY_PIPELINE |
yes |
Your pipeline name in your user/organization in Merkely. |
MERKELY_API_TOKEN |
yes |
Your secret API token for Merkely. Set this to “DRY_RUN” to turn off all commands in all pipelines. |
MERKELY_HOST |
no |
The API hostname for Merkely. Defaults to https://app.merkely.com |
MERKELY_DRY_RUN |
no |
When set to “TRUE”, prints the command’s url+payload, does not make any HTTP calls to Merkely, and exits the command with a zero status code. Defaults to “FALSE”. See also setting the MERKELY_API_TOKEN (above) to code:`DRY_RUN`. |
Open an example, similar to the fragment below, from a git repo.
- name: Log unit test results in Merkely
uses: docker://merkely/change:latest
env:
MERKELY_COMMAND: log_test
MERKELY_FINGERPRINT: docker://${{ env.IMAGE_TAGGED }}
MERKELY_EVIDENCE_TYPE: unit_test
MERKELY_TEST_RESULTS_DIR: ${{ github.workspace }}/build/test
MERKELY_OWNER: ${{ env.MERKELY_OWNER }}
MERKELY_PIPELINE: ${{ env.MERKELY_PIPELINE }}
MERKELY_API_TOKEN: ${{ secrets.MERKELY_API_TOKEN }}
ENV_VAR_NAME |
Required? |
Notes |
|---|---|---|
MERKELY_COMMAND |
yes |
The Merkely command to execute. This page documents a value of log_test |
MERKELY_FINGERPRINT |
yes |
The artifact’s Fingerprint |
MERKELY_EVIDENCE_TYPE |
yes |
The evidence type. |
MERKELY_TEST_RESULTS_DIR |
no |
The directory where Merkely will look for JUnit .xml files. Must be volume-mounted in the container. Defaults to /data/junit/ |
MERKELY_DESCRIPTION |
no |
A description of the test summary. Defaults to “JUnit results xml verified by merkely/change: ” followed by a summary, eg “All tests passed in 1 test suites” |
MERKELY_CI_BUILD_URL |
no |
Link to the build in the ci system. Defaults to ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID} |
MERKELY_USER_DATA |
no |
A pathed filename containing json content to embed in the data logged to Merkely. If provided, must be volume-mounted in the container. If not provided, the json content defaults to {} |
MERKELY_OWNER |
yes |
Your user/organization name in Merkely. |
MERKELY_PIPELINE |
yes |
Your pipeline name in your user/organization in Merkely. |
MERKELY_API_TOKEN |
yes |
Your secret API token for Merkely. Set this to “DRY_RUN” to turn off all commands in all pipelines. |
MERKELY_HOST |
no |
The API hostname for Merkely. Defaults to https://app.merkely.com |
MERKELY_DRY_RUN |
no |
When set to “TRUE”, prints the command’s url+payload, does not make any HTTP calls to Merkely, and exits the command with a zero status code. Defaults to “FALSE”. See also setting the MERKELY_API_TOKEN (above) to code:`DRY_RUN`. |