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.

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`.

    - 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`.

    - 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`.