You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
2.5 KiB

parameters:
ProjectName: ''
OpenShiftProject: ''
AppName: ''
OpenShiftServiceConnection: ''
jobs:
- job: Container_Build
dependsOn: Restore_Build_Publish
pool:
vmImage: 'windows-latest'
steps:
- task: redhat.openshift-vsts.oc-setup-task.oc-setup@2
displayName: 'oc-setup '
inputs:
openshiftService: $(OpenShiftServiceConnection)
- script: 'oc project $(OpenShiftProject)'
failOnStderr: true
displayName: 'Set Project Context'
- powershell: |
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "oc.exe"
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = "get buildConfig $(AppName)"
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$stdout = $p.StandardOutput.ReadToEnd()
$stderr = $p.StandardError.ReadToEnd()
Write-Host "stdout: $stdout"
Write-Host "stderr: $stderr"
Write-Host "exit code: " + $p.ExitCode
$buildExists = $stdout.Contains("$(AppName)")
Write-Host "##vso[task.setvariable variable=BuildExists;]$buildExists"
displayName: 'Check for Existing Build'
- task: DownloadPipelineArtifact@2
inputs:
artifact: drop
- script: 'oc new-build --name=$(AppName) dotnet:3.1 --binary=true'
failOnStderr: true
displayName: 'Create OpenShift Build'
condition: and(succeeded(), eq(variables['BuildExists'], False))
- powershell: |
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "oc.exe"
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = "start-build $(AppName) --from-dir=$(ProjectName) --follow --wait"
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$stdout = $p.StandardOutput.ReadToEnd()
$stderr = $p.StandardError.ReadToEnd()
Write-Host "stdout: $stdout"
Write-Host "stderr: $stderr"
Write-Host "exit code: " + $p.ExitCode
$binaryBuildHasErrors = $p.ExitCode -ne 0
Write-Host "##vso[task.setvariable variable=BinaryBuildHasErrors;]$binaryBuildHasErrors"
displayName: 'Start OpenShift Binary Build'
failOnStderr: and(succeeded(), eq(variables['BinaryBuildHasErrors'], False))
workingDirectory: '$(Pipeline.Workspace)'