Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/spa-templates.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eng/common/templates/steps/telemetry-start.yml')
-rw-r--r--eng/common/templates/steps/telemetry-start.yml241
1 files changed, 0 insertions, 241 deletions
diff --git a/eng/common/templates/steps/telemetry-start.yml b/eng/common/templates/steps/telemetry-start.yml
deleted file mode 100644
index 32c01ef..0000000
--- a/eng/common/templates/steps/telemetry-start.yml
+++ /dev/null
@@ -1,241 +0,0 @@
-parameters:
- helixSource: 'undefined_defaulted_in_telemetry.yml'
- helixType: 'undefined_defaulted_in_telemetry.yml'
- buildConfig: ''
- runAsPublic: false
- maxRetries: 5
- retryDelay: 10 # in seconds
-
-steps:
-- ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}:
- - task: AzureKeyVault@1
- inputs:
- azureSubscription: 'HelixProd_KeyVault'
- KeyVaultName: HelixProdKV
- SecretsFilter: 'HelixApiAccessToken'
- condition: always()
-- bash: |
- # create a temporary file
- jobInfo=`mktemp`
-
- # write job info content to temporary file
- cat > $jobInfo <<JobListStuff
- {
- "QueueId": "$QueueId",
- "Source": "$Source",
- "Type": "$Type",
- "Build": "$Build",
- "Attempt": "$Attempt",
- "Properties": {
- "operatingSystem": "$OperatingSystem",
- "configuration": "$Configuration"
- }
- }
- JobListStuff
-
- cat $jobInfo
-
- # create a temporary file for curl output
- res=`mktemp`
-
- accessTokenParameter="?access_token=$HelixApiAccessToken"
-
- curlStatus=1
- retryCount=0
- # retry loop to harden against spotty telemetry connections
- # we don't retry successes and 4xx client errors
- until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
- do
- if [ $retryCount -gt 0 ]; then
- echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
- sleep $RetryDelay
- fi
-
- curlResult=`
- cat $jobInfo |\
- curl --trace - --verbose --output $res --write-out "%{http_code}" \
- -H 'Content-Type: application/json' \
- -X POST "https://helix.dot.net/api/2018-03-14/telemetry/job$accessTokenParameter" -d @-`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
- fi
- fi
-
- let retryCount++
- done
-
- curlResult=`cat $res`
-
- # validate status of curl command
- if [ $curlStatus -ne 0 ]; then
- echo "Failed To Send Job Start information after $retryCount retries"
- # We have to append the ## vso prefix or vso will pick up the command when it dumps the inline script into the shell
- vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/start-job.sh;code=1;]Failed to Send Job Start information: $curlStatus"
- echo "##$vstsLogOutput"
- exit 1
- fi
-
- # Set the Helix_JobToken variable
- export Helix_JobToken=`echo $curlResult | xargs echo` # Strip Quotes
- echo "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$Helix_JobToken"
- displayName: Send Unix Job Start Telemetry
- env:
- HelixApiAccessToken: $(HelixApiAccessToken)
- Source: ${{ parameters.helixSource }}
- Type: ${{ parameters.helixType }}
- Build: $(Build.BuildNumber)
- QueueId: $(Agent.Os)
- Attempt: 1
- OperatingSystem: $(Agent.Os)
- Configuration: ${{ parameters.buildConfig }}
- MaxRetries: ${{ parameters.maxRetries }}
- RetryDelay: ${{ parameters.retryDelay }}
- condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
-- bash: |
- curlStatus=1
- retryCount=0
- # retry loop to harden against spotty telemetry connections
- # we don't retry successes and 4xx client errors
- until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
- do
- if [ $retryCount -gt 0 ]; then
- echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
- sleep $RetryDelay
- fi
-
- res=`mktemp`
- curlResult=`
- curl --verbose --output $res --write-out "%{http_code}"\
- -H 'Content-Type: application/json' \
- -H "X-Helix-Job-Token: $Helix_JobToken" \
- -H 'Content-Length: 0' \
- -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build" \
- --data-urlencode "buildUri=$BuildUri"`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
- fi
- fi
-
- curlResult=`cat $res`
- let retryCount++
- done
-
- # validate status of curl command
- if [ $curlStatus -ne 0 ]; then
- echo "Failed to Send Build Start information after $retryCount retries"
- vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/build/start.sh;code=1;]Failed to Send Build Start information: $curlStatus"
- echo "##$vstsLogOutput"
- exit 1
- fi
-
- export Helix_WorkItemId=`echo $curlResult | xargs echo` # Strip Quotes
- echo "##vso[task.setvariable variable=Helix_WorkItemId]$Helix_WorkItemId"
- displayName: Send Unix Build Start Telemetry
- env:
- BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
- Helix_JobToken: $(Helix_JobToken)
- MaxRetries: ${{ parameters.maxRetries }}
- RetryDelay: ${{ parameters.retryDelay }}
- condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
-
-- powershell: |
- $jobInfo = [pscustomobject]@{
- QueueId=$env:QueueId;
- Source=$env:Source;
- Type=$env:Type;
- Build=$env:Build;
- Attempt=$env:Attempt;
- Properties=[pscustomobject]@{ operatingSystem=$env:OperatingSystem; configuration=$env:Configuration };
- }
-
- $jobInfoJson = $jobInfo | ConvertTo-Json
-
- if ($env:HelixApiAccessToken) {
- $accessTokenParameter="?access_token=$($env:HelixApiAccessToken)"
- }
- Write-Host "Job Info: $jobInfoJson"
-
- # Basic retry loop to harden against server flakiness
- $retryCount = 0
- while ($retryCount -lt $env:MaxRetries) {
- try {
- $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job$($accessTokenParameter)" -Method Post -ContentType "application/json" -Body $jobInfoJson
- break
- }
- catch {
- $statusCode = $_.Exception.Response.StatusCode.value__
- if ($statusCode -ge 400 -and $statusCode -le 499) {
- Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
- Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
- exit 1
- }
- Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
- $retryCount++
- sleep $env:RetryDelay
- continue
- }
- }
-
- if ($retryCount -ge $env:MaxRetries) {
- Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
- exit 1
- }
-
- $env:Helix_JobToken = $jobToken
- Write-Host "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$env:Helix_JobToken"
- env:
- HelixApiAccessToken: $(HelixApiAccessToken)
- Source: ${{ parameters.helixSource }}
- Type: ${{ parameters.helixType }}
- Build: $(Build.BuildNumber)
- QueueId: $(Agent.Os)
- Attempt: 1
- OperatingSystem: $(Agent.Os)
- Configuration: ${{ parameters.buildConfig }}
- MaxRetries: ${{ parameters.maxRetries }}
- RetryDelay: ${{ parameters.retryDelay }}
- condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))
- displayName: Send Windows Job Start Telemetry
-- powershell: |
- # Basic retry loop to harden against server flakiness
- $retryCount = 0
- while ($retryCount -lt $env:MaxRetries) {
- try {
- $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($env:BuildUri))" -Method Post -ContentType "application/json" -Body "" `
- -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
- break
- }
- catch {
- $statusCode = $_.Exception.Response.StatusCode.value__
- if ($statusCode -ge 400 -and $statusCode -le 499) {
- Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
- Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
- exit 1
- }
- Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
- $retryCount++
- sleep $env:RetryDelay
- continue
- }
- }
-
- if ($retryCount -ge $env:MaxRetries) {
- Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
- exit 1
- }
-
- $env:Helix_WorkItemId = $workItemId
- Write-Host "##vso[task.setvariable variable=Helix_WorkItemId]$env:Helix_WorkItemId"
- displayName: Send Windows Build Start Telemetry
- env:
- BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
- Helix_JobToken: $(Helix_JobToken)
- MaxRetries: ${{ parameters.maxRetries }}
- RetryDelay: ${{ parameters.retryDelay }}
- condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))