From: Mike McLaughlin Date: Tue, 11 Sep 2018 21:27:42 +0000 (-0700) Subject: Daily (#70) X-Git-Tag: submit/tizen/20190813.035844~79 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e8cd28ea11a0a47c5a45518d887f9850eb09fdfe;p=platform%2Fcore%2Fdotnet%2Fdiagnostics.git Daily (#70) Add daily yml build logic Fix problem with internal vs public CI build problems. Sync'ed the telemetry build logic with arcade. --- diff --git a/.vsts-dotnet.yml b/.vsts-dotnet.yml index d2bdab7aa..4bd79a890 100644 --- a/.vsts-dotnet.yml +++ b/.vsts-dotnet.yml @@ -208,6 +208,7 @@ phases: - Windows - CentOS_7 - MacOS + condition: ne(variables['Build.Reason'], 'Schedule') queue: name: DotNetCore-Build demands: diff --git a/eng/build.yml b/eng/build.yml index 6bf5430ea..9cbc2bfb0 100644 --- a/eng/build.yml +++ b/eng/build.yml @@ -34,15 +34,21 @@ phases: _PhaseName : ${{ parameters.phaseName }} _HelixType: build/product _HelixBuildConfig: $(_BuildConfig) - ${{ if notIn(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'PullRequest') }}: + ${{ if ne(variables['System.TeamProject'], 'public') }}: _HelixSource: official/dotnet/arcade/$(Build.SourceBranch) - ${{ if eq(parameters.testOnly, 'true') }}: - _LinuxScript: $(Build.SourcesDirectory)/eng/citest.sh - ${{ if ne(parameters.testOnly, 'true') }}: - _LinuxScript: $(Build.SourcesDirectory)/eng/cibuild.sh - ${{ if in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'PullRequest') }}: + ${{ if eq(variables['System.TeamProject'], 'public') }}: _HelixSource: pr/dotnet/arcade/$(Build.SourceBranch) + ${{ if eq(parameters.testOnly, 'true') }}: + _LinuxScript: $(Build.SourcesDirectory)/eng/citest.sh + ${{ if ne(parameters.testOnly, 'true') }}: _LinuxScript: $(Build.SourcesDirectory)/eng/cibuild.sh + ${{ if eq(variables['Build.Reason'], 'Schedule') }}: + ${{ if eq(parameters.agentOs, 'Windows_NT') }}: + _DailyTest: -daily-test + ${{ if ne(parameters.agentOs, 'Windows_NT') }}: + _DailyTest: --daily-test + ${{ if ne(variables['Build.Reason'], 'Schedule') }}: + _DailyTest: '' steps: # Internal only build steps @@ -50,7 +56,7 @@ phases: parameters: agentOs: ${{ parameters.agentOs }} steps: - - script: $(Build.SourcesDirectory)\eng\cibuild.cmd + - script: $(Build.SourcesDirectory)\eng\cibuild.cmd $(_DailyTest) -configuration $(_BuildConfig) -architecture $(_BuildArch) -prepareMachine @@ -79,7 +85,7 @@ phases: --docker-image $(_DockerImageName) --source-directory $(Build.SourcesDirectory) --container-name diagnostics-$(Build.BuildId) - $(_LinuxScript) + $(_LinuxScript) $(_DailyTest) --configuration $(_BuildConfig) --architecture $(_BuildArch) --prepareMachine @@ -90,7 +96,7 @@ phases: condition: succeeded() - ${{ if eq(parameters.agentOs, 'Darwin') }}: - - script: $(Build.SourcesDirectory)/eng/cibuild.sh + - script: $(Build.SourcesDirectory)/eng/cibuild.sh $(_DailyTest) --configuration $(_BuildConfig) --architecture $(_BuildArch) --prepareMachine @@ -100,37 +106,34 @@ phases: condition: succeeded() # Internal only build steps (until publishing artifacts in public CI is supported) - - template: /eng/common/templates/steps/build-reason.yml - parameters: - conditions: not IndividualCI,BatchedCI,PullRequest - steps: - - task: PublishBuildArtifacts@1 - displayName: Upload Artifacts - inputs: - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/$(_PublishArtifacts)' - artifactName: $(_PhaseName)_$(Agent.JobName) - condition: and(succeeded(), ne(variables['_PublishArtifacts'], '')) + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: PublishBuildArtifacts@1 + displayName: Upload Artifacts + inputs: + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/$(_PublishArtifacts)' + artifactName: $(_PhaseName)_$(Agent.JobName) + condition: and(succeeded(), ne(variables['_PublishArtifacts'], '')) - - task: CopyFiles@2 - displayName: Gather Build Logs - inputs: - sourceFolder: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/log' - targetFolder: '$(Build.StagingDirectory)/BuildLogs' - continueOnError: true - condition: always() + - task: CopyFiles@2 + displayName: Gather Build Logs + inputs: + sourceFolder: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/log' + targetFolder: '$(Build.StagingDirectory)/BuildLogs' + continueOnError: true + condition: always() - - task: CopyFiles@2 - displayName: Gather Test Logs - inputs: - sourceFolder: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/TestResults' - targetFolder: '$(Build.StagingDirectory)/BuildLogs' - continueOnError: true - condition: always() + - task: CopyFiles@2 + displayName: Gather Test Logs + inputs: + sourceFolder: '$(Build.SourcesDirectory)/artifacts/$(_BuildConfig)/TestResults' + targetFolder: '$(Build.StagingDirectory)/BuildLogs' + continueOnError: true + condition: always() - - task: PublishBuildArtifacts@1 - displayName: Publish Logs to VSTS - inputs: - pathtoPublish: '$(Build.StagingDirectory)/BuildLogs' - artifactName: Logs_$(_PhaseName)_$(Agent.JobName) - continueOnError: true - condition: always() + - task: PublishBuildArtifacts@1 + displayName: Publish Logs to VSTS + inputs: + pathtoPublish: '$(Build.StagingDirectory)/BuildLogs' + artifactName: Logs_$(_PhaseName)_$(Agent.JobName) + continueOnError: true + condition: always() diff --git a/eng/common/telemetry/build/end.ps1 b/eng/common/telemetry/build/end.ps1 deleted file mode 100644 index 2a441daa7..000000000 --- a/eng/common/telemetry/build/end.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -[CmdletBinding()] -param() - -Set-StrictMode -Version 2.0 -$ErrorActionPreference = "Stop" - -if (($env:Agent_JobStatus -eq 'Succeeded') -or ($env:Agent_JobStatus -eq 'PartiallySucceeded')) { - $ErrorCount = 0 -} else { - $ErrorCount = 1 -} -$WarningCount = 0 - -try { - Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$env:Helix_WorkItemId/finish?errorCount=$ErrorCount&warningCount=$WarningCount" -Method Post -ContentType "application/json" -Body "" ` - -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken } -} -catch { - Write-Error $_ - Write-Error $_.Exception - exit 1 -} diff --git a/eng/common/telemetry/build/end.sh b/eng/common/telemetry/build/end.sh deleted file mode 100644 index 1b65a2477..000000000 --- a/eng/common/telemetry/build/end.sh +++ /dev/null @@ -1,39 +0,0 @@ -source="${BASH_SOURCE[0]}" -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -if [ "$AGENT_JOBSTATUS" = "Succeeded" ] || [ "$AGENT_JOBSTATUS" = "PartiallySucceeded" ]; then - errorCount=0 -else - errorCount=1 -fi -warningCount=0 - -curlResult=` -/bin/bash $scriptroot/../curl.sh \ - -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/$Helix_WorkItemId/finish" \ - --data-urlencode "errorCount=$errorCount" \ - --data-urlencode "warningCount=$warningCount" -` -curlStatus=$? - -if [ $curlStatus -ne 0 ]; then - echo "Failed to Send Build Finish information" - echo $curlResult - if /bin/bash "$scriptroot/../../is-vsts.sh"; then - echo "##vso[task.logissue type=error;sourcepath=telemetry/build/end.sh;code=1;]Failed to Send Build Finish information: $curlResult" - fi - exit 1 -fi - -exit 0 diff --git a/eng/common/telemetry/build/start.ps1 b/eng/common/telemetry/build/start.ps1 deleted file mode 100644 index e9c99e45d..000000000 --- a/eng/common/telemetry/build/start.ps1 +++ /dev/null @@ -1,23 +0,0 @@ -[CmdletBinding()] -param( - [string]$BuildUri -) - -Set-StrictMode -Version 2.0 -$ErrorActionPreference = "Stop" - - -try { - $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($BuildUri))" -Method Post -ContentType "application/json" -Body "" ` - -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken } - - $env:Helix_WorkItemId = $workItemId - if (& "$PSScriptRoot/../../is-vsts.ps1") { - Write-Host "##vso[task.setvariable variable=Helix_WorkItemId]$env:Helix_WorkItemId" - } -} -catch { - Write-Error $_ - Write-Error $_.Exception - exit 1 -} diff --git a/eng/common/telemetry/build/start.sh b/eng/common/telemetry/build/start.sh deleted file mode 100644 index 363a7f39d..000000000 --- a/eng/common/telemetry/build/start.sh +++ /dev/null @@ -1,52 +0,0 @@ -source="${BASH_SOURCE[0]}" -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -while (($# > 0)); do - lowerI="$(echo $1 | awk '{print tolower($0)}')" - case $lowerI in - --build-uri) - buildUri=$2 - shift 2 - ;; - *) - echo "Unknown Arg '$1'" - exit 1 - ;; - esac -done - - -curlResult=` -/bin/bash $scriptroot/../curl.sh \ - -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 -ne 0 ]; then - echo "Failed to Send Build Start information" - echo $curlResult - if /bin/bash "$scriptroot/../../is-vsts.sh"; then - echo "##vso[task.logissue type=error;sourcepath=telemetry/build/start.sh;code=1;]Failed to Send Build Start information: $curlResult" - fi - exit 1 -fi - -export Helix_WorkItemId=`echo $curlResult | xargs echo` # Strip Quotes - -if /bin/bash "$scriptroot/../../is-vsts.sh"; then - echo "##vso[task.setvariable variable=Helix_WorkItemId]$Helix_WorkItemId" -else - echo "export Helix_WorkItemId=$Helix_WorkItemId" -fi diff --git a/eng/common/telemetry/curl.sh b/eng/common/telemetry/curl.sh deleted file mode 100644 index aa607b6b8..000000000 --- a/eng/common/telemetry/curl.sh +++ /dev/null @@ -1,16 +0,0 @@ -#runs curl and exits with exit code when http server errors happen -res=`mktemp` -httpCode=$(curl --silent --output $res --write-out "%{http_code}" "$@") -curlCode=$? - -if [ ! $curlCode ]; then - exit $curlCode -fi - -cat $res - -if [ $httpCode -gt 299 ] || [ $httpCode -lt 200 ]; then - exit 1 -else - exit 0 -fi diff --git a/eng/common/telemetry/start-job.ps1 b/eng/common/telemetry/start-job.ps1 deleted file mode 100644 index 46028954f..000000000 --- a/eng/common/telemetry/start-job.ps1 +++ /dev/null @@ -1,39 +0,0 @@ -[CmdletBinding()] -param( - [string]$QueueId, - [string]$Source, - [string]$Type, - [string]$Build, - [string]$Attempt, - [hashtable]$Properties -) - -Set-StrictMode -Version 2.0 -$ErrorActionPreference = "Stop" - - -$jobInfo = [pscustomobject]@{ - QueueId=$QueueId; - Source=$Source; - Type=$Type; - Build=$Build; - Properties=[pscustomobject]$Properties; -} - -$jobInfoJson = $jobInfo | ConvertTo-Json - -try { - Write-Verbose "Job Info: $jobInfoJson" - $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job?access_token=$($env:HelixApiAccessToken)" -Method Post -ContentType "application/json" -Body $jobInfoJson - - $env:Helix_JobToken = $jobToken - if (& "$PSScriptRoot/../is-vsts.ps1") { - Write-Host "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$env:Helix_JobToken" - } -} -catch { - Write-Error $_ - Write-Error $_.Exception - exit 1 -} - diff --git a/eng/common/telemetry/start-job.sh b/eng/common/telemetry/start-job.sh deleted file mode 100644 index 732c28c23..000000000 --- a/eng/common/telemetry/start-job.sh +++ /dev/null @@ -1,86 +0,0 @@ -source="${BASH_SOURCE[0]}" -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -properties=() -while (($# > 0)); do - lowerI="$(echo $1 | awk '{print tolower($0)}')" - case $lowerI in - --queue-id) - queueId=$2 - shift 2 - ;; - --source) - source=$2 - shift 2 - ;; - --type) - type=$2 - shift 2 - ;; - --build) - build=$2 - shift 2 - ;; - --attempt) - attempt=$2 - shift 2 - ;; - -p) - properties+=($2) - shift 2 - ;; - *) - echo "Unknown Arg '$1'" - exit 1 - ;; - esac -done - -jobInfo=`mktemp` - -cat > $jobInfo < $jobInfo <