From d5fbe3a662a70e64c8ec96bc2c49709c517083f0 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Mon, 26 Oct 2020 13:46:26 -0700 Subject: [PATCH] devops: start uploading test reports to flakiness dashboard (#4239) --- .github/workflows/tests.yml | 4 ++ utils/upload_flakiness_dashboard.sh | 65 +++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100755 utils/upload_flakiness_dashboard.sh diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4abd22a86497b..db503b0df9a38 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -41,6 +41,10 @@ jobs: env: BROWSER: ${{ matrix.browser }} FOLIO_JSON_OUTPUT_NAME: "test-results/report.json" + - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json + if: github.ref == 'refs/heads/master' + env: + FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} - uses: actions/upload-artifact@v1 if: always() with: diff --git a/utils/upload_flakiness_dashboard.sh b/utils/upload_flakiness_dashboard.sh new file mode 100755 index 0000000000000..088fa43cb8986 --- /dev/null +++ b/utils/upload_flakiness_dashboard.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# Copyright (c) Microsoft Corporation. +# +# Licensed under the Apache License, Version 2.0 (the 'License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e +set +x + +if [[ ($1 == '--help') || ($1 == '-h') ]]; then + echo "usage: $(basename $0) " + echo + echo "Upload report to the flakiness dashboard." + echo + echo "NOTE: the following env variables are required:" + echo " FLAKINESS_CONNECTION_STRING connection for the azure blob storage to upload report" + exit 0 +fi + +if [[ -z "${FLAKINESS_CONNECTION_STRING}" ]]; then + echo "ERROR: \$FLAKINESS_CONNECTION_STRING environment variable is missing." + echo " 'Azure Account Name' and 'Azure Account Key' secrets are required" + echo " to upload flakiness results to Azure blob storage." + exit 1 +fi + +if [[ $# == 0 ]]; then + echo "ERROR: missing report name!" + echo "try './$(basename $0) --help' for more information" + exit 1 +fi + +export BUILD_URL="https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" +export COMMIT_SHA=$(git rev-parse HEAD) +export COMMIT_TIMESTAMP=$(git show -s --format=%ct HEAD) + +EMBED_METADATA_SCRIPT=$(cat < "${REPORT_NAME}" + +gzip "${REPORT_NAME}" + +az storage blob upload --connection-string "${FLAKINESS_CONNECTION_STRING}" -c uploads -f "${REPORT_NAME}.gz" -n "${REPORT_NAME}.gz" +rm -rf "${REPORT_NAME}.gz" +