From 6caccce41404cbe514d14578c1e5cb29b994f68d Mon Sep 17 00:00:00 2001 From: Xuhui Miao Date: Fri, 11 Nov 2022 11:15:10 +0000 Subject: [PATCH] Merged PR 7124116: Support to collect build metrics Support to collect build metrics The template will be added in the file .pipelines/OneBranch.OfficialBuild.yml to collect build metrics in another PR. --- .pipelines/post-build-steps.yml | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .pipelines/post-build-steps.yml diff --git a/.pipelines/post-build-steps.yml b/.pipelines/post-build-steps.yml new file mode 100644 index 000000000000..0d874b11ad20 --- /dev/null +++ b/.pipelines/post-build-steps.yml @@ -0,0 +1,37 @@ +# Post build steps to collect build logs +# Required packages: python3, azcopy + +parameters: +- name: 'storageUrlPrefix' + type: string + default: 'https://sonicazurepipelines.blob.core.windows.net/buildinternal' +- name: 'sasKey' + type: string + default: $(sonicazurepipelines-SasToken) + +steps: +- script: | + timestamp=$(date '+%Y%m%d-%H%M%S-%N') + relative_path="${timestamp:0:4}/${timestamp:4:2}/${timestamp:6:2}" + timelinefile="buildtimelines_$timestamp.json" + buildlogfile="buildlogs_$timestamp.json" + curl -s -o collect-build-logs.py 'https://raw.githubusercontent.com/sonic-net/sonic-pipelines/main/azure-pipelines/scripts/collect-build-logs.py' + chmod a+x collect-build-logs.py + build_url="$(System.TeamFoundationCollectionUri)DefaultCollection/$(System.TeamProjectId)/_apis/build/builds/$(Build.BuildId)" + ./collect-build-logs.py "$build_url" "$(System.AccessToken)" "$timelinefile" "$buildlogfile" + ls -lt "$timelinefile" "$buildlogfile" 2>/dev/null + if [ -f $timelinefile ]; then + azcopy cp $timelinefile $PUBLISH_URL_PREFIX/buildtimelines/$relative_path/$timelinefile$SASKEY + fi + + if [ ! -f $buildlogfile ]; then + azcopy cp $timelinefile $PUBLISH_URL_PREFIX/buildlogs/$relative_path/$buildlogfile$SASKEY + fi + + exit 0 + env: + PUBLISH_URL_PREFIX: ${{ parameters.storageUrlPrefix }} + SASKEY: ${{ parameters.sasKey }} + condition: always() + continueOnError: true + displayName: "Collect build logs"