Skip to content

Commit

Permalink
Polish test result upload (#4156)
Browse files Browse the repository at this point in the history
* Use DataDog's test attributes in tags
https://docs.datadoghq.com/tests/#test-configuration-attributes
* Move log printout to the end of the action

b/288331664

(cherry picked from commit 13ca7cd)
  • Loading branch information
oxve committed Oct 4, 2024
1 parent e1fe8e8 commit e537d75
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 2 deletions.
79 changes: 79 additions & 0 deletions .github/actions/on_device_tests/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,82 @@ runs:
--label author-${GITHUB_PR_HEAD_USER_LOGIN:-$GITHUB_COMMIT_AUTHOR_USERNAME} \
--label author_id-${GITHUB_PR_HEAD_USER_ID:-$GITHUB_COMMIT_AUTHOR_EMAIL}
shell: bash
<<<<<<< HEAD
=======
- name: Download ${{ matrix.platform }} Test Results
if: always() && env.TEST_TYPE == 'unit_test'
run: |
# Don't break on error (-e), some commands are expected to fail.
set -ux
COBALT_LOGS_DIR="${GITHUB_WORKSPACE}/cobalt_logs"
UNIT_TEST_RESULT_PATH="${GITHUB_WORKSPACE}/unit-test-results"
COBALT_XMLS_FILENAME="cobalt_xmls.zip"
# Forward environment variables for uploading artifacts in later steps.
echo "UNIT_TEST_RESULT_PATH=${UNIT_TEST_RESULT_PATH}" >> $GITHUB_ENV
echo "COBALT_LOGS_DIR=${COBALT_LOGS_DIR}" >> $GITHUB_ENV
mkdir -p "${GITHUB_WORKSPACE}/test_results"
cd "${GITHUB_WORKSPACE}/test_results"
i=0
# Try downloading the results for 6x 10 seconds before giving up.
while [ $i -lt 6 ]; do
# The results are uploaded after the test has completed.
sleep 10
# The log files are named by the device lab test driver.
COBALT_ERROR_LOG_FILENAME="webDriverTestLog.ERROR"
COBALT_INFO_LOG_FILENAME="webDriverTestLog.INFO"
# This command will fail until the results have been uploaded.
gsutil cp "${GCS_RESULTS_PATH}/${COBALT_ERROR_LOG_FILENAME}" .
gsutil cp "${GCS_RESULTS_PATH}/${COBALT_INFO_LOG_FILENAME}" .
gsutil cp "${GCS_RESULTS_PATH}/${COBALT_XMLS_FILENAME}" .
# Break if all files were downloaded.
if [[ -f "${COBALT_XMLS_FILENAME}" && -f "${COBALT_ERROR_LOG_FILENAME}" && -f "${COBALT_INFO_LOG_FILENAME}" ]]; then
break
fi
i=$(( ${i} + 1 ))
done
# Rename log files for archiving to not expose legacy weirdness.
mkdir -p "${COBALT_LOGS_DIR}/${{ matrix.platform }}/"
cp "${COBALT_ERROR_LOG_FILENAME}" "${COBALT_LOGS_DIR}/${{ matrix.platform }}/stderr_${{ matrix.shard }}.log"
cp "${COBALT_INFO_LOG_FILENAME}" "${COBALT_LOGS_DIR}/${{ matrix.platform }}/stdout_${{ matrix.shard }}.log"
# Prepare unit test results for DataDog upload.
RESULT_PATH=${UNIT_TEST_RESULT_PATH}/${{ matrix.platform }}/${{ matrix.shard }}/
mkdir -p ${RESULT_PATH}
# Set tags for test differentiation.
tags="os.platform:${{ matrix.platform }}"
echo $tags > ${UNIT_TEST_RESULT_PATH}/${{ matrix.platform }}/TAGS
unzip ${COBALT_XMLS_FILENAME} -d ${RESULT_PATH}
shell: bash
- name: Archive Unit Test Logs
uses: actions/upload-artifact@v3
if: always() && env.TEST_TYPE == 'unit_test'
with:
name: Device logs
path: ${{ env.COBALT_LOGS_DIR }}/
- name: Archive Unit Test Results
uses: actions/upload-artifact@v3
if: always() && env.TEST_TYPE == 'unit_test'
with:
name: unit-test-results
path: ${{ env.UNIT_TEST_RESULT_PATH }}/
- name: Print device logs
if: always()
run: |
if ls ${COBALT_LOGS_DIR}/**/*.log 1> /dev/null 2>&1; then
cat ${COBALT_LOGS_DIR}/**/*.log
else
echo "No device logs found"
fi
shell: bash
>>>>>>> 13ca7cdb416 (Polish test result upload (#4156))
4 changes: 2 additions & 2 deletions .github/actions/on_host_test/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ runs:
shell: bash
run: |
# Set tags for test differentiation.
tags="platform:${{ matrix.platform }}"
tags="${tags},os:${{ inputs.os }}"
tags="os.platform:${{ matrix.platform }}"
tags="${tags},os.family:${{ inputs.os }}"
echo $tags > ${TEST_RESULTS_DIR}/${{ matrix.platform }}/TAGS
- name: Archive unit test results
uses: actions/upload-artifact@v3
Expand Down

0 comments on commit e537d75

Please sign in to comment.