env:
CAT: $(Build.BinariesDirectory)\bin\$(Arch)\python
-- task: PublishBuildArtifacts@1
+- task: PublishPipelineArtifact@0
displayName: 'Publish binaries'
condition: and(succeeded(), not(and(eq(variables['Configuration'], 'Release'), variables['SigningCertificate'])))
inputs:
- PathtoPublish: '$(Build.BinariesDirectory)\bin\$(Arch)'
- ArtifactName: bin_$(Name)
+ targetPath: '$(Build.BinariesDirectory)\bin\$(Arch)'
+ artifactName: bin_$(Name)
-- task: PublishBuildArtifacts@1
+- task: PublishPipelineArtifact@0
displayName: 'Publish binaries for signing'
condition: and(succeeded(), and(eq(variables['Configuration'], 'Release'), variables['SigningCertificate']))
inputs:
- PathtoPublish: '$(Build.BinariesDirectory)\bin\$(Arch)'
- ArtifactName: unsigned_bin_$(Name)
+ targetPath: '$(Build.BinariesDirectory)\bin\$(Arch)'
+ artifactName: unsigned_bin_$(Name)
- task: CopyFiles@2
displayName: 'Layout Artifact: symbols'
- powershell: >
Write-Host (
'##vso[task.setvariable variable=LayoutCmd]&
- "{0}"
+ "{0}\bin\python.exe"
"{1}\PC\layout"
-vv
--source "{1}"
- --build "{2}"
- --temp "{3}"
- --include-cat "{2}\python.cat"
- --doc-build "{4}"'
- -f (
- "$(PYTHON)",
- "$(Build.SourcesDirectory)",
- (Split-Path -Parent "$(PYTHON)"),
- "$(Build.BinariesDirectory)\layout-temp",
- "$(Build.BinariesDirectory)\doc"
- ))
+ --build "{0}\bin"
+ --temp "{0}\layout-temp"
+ --include-cat "{0}\bin\python.cat"
+ --doc-build "{0}\doc"'
+ -f ("$(Build.BinariesDirectory)", "$(Build.SourcesDirectory)")
+ )
displayName: 'Set LayoutCmd'
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: doc'
inputs:
artifactName: doc
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\doc
- task: CopyFiles@2
displayName: 'Merge documentation files'
contents: |
htmlhelp\*.chm
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_win32'
inputs:
artifactName: bin_win32
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\win32
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_win32_d'
inputs:
artifactName: bin_win32_d
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\win32
- - task: CopyFiles@2
- displayName: 'Merge win32 debug files'
- inputs:
- sourceFolder: $(Build.BinariesDirectory)\bin_win32_d
- targetFolder: $(Build.BinariesDirectory)\bin_win32
- contents: |
- **\*_d.*
-
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_amd64'
inputs:
artifactName: bin_amd64
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\amd64
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_amd64_d'
inputs:
artifactName: bin_amd64_d
- downloadPath: $(Build.BinariesDirectory)
-
- - task: CopyFiles@2
- displayName: 'Merge amd64 debug files'
- inputs:
- sourceFolder: $(Build.BinariesDirectory)\bin_amd64_d
- targetFolder: $(Build.BinariesDirectory)\bin_amd64
- contents: |
- **\*_d.*
+ targetPath: $(Build.BinariesDirectory)\amd64
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_win32'
inputs:
artifactName: tcltk_lib_win32
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\tcltk_lib_win32
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_amd64'
inputs:
artifactName: tcltk_lib_amd64
- downloadPath: $(Build.BinariesDirectory)
-
- - script: |
- ren bin_win32 win32
- ren bin_amd64 amd64
- displayName: 'Correct artifact directory names'
- workingDirectory: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64
- script: |
call Tools\msi\get_externals.bat
*.cab
*.exe
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish MSI'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\msi'
- ArtifactName: msi
+ targetPath: '$(Build.ArtifactStagingDirectory)\msi'
+ artifactName: msi
html\**\*
htmlhelp\*.chm
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish artifact: doc'
inputs:
- PathtoPublish: $(Build.ArtifactStagingDirectory)\Doc
- ArtifactName: doc
+ targetPath: $(Build.ArtifactStagingDirectory)\Doc
+ artifactName: doc
- job: Build_Python
displayName: Python build
platform: x64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_win32'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_win32'
- ArtifactName: tcltk_lib_win32
+ targetPath: '$(Build.ArtifactStagingDirectory)\tcl_win32'
+ artifactName: tcltk_lib_win32
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_amd64'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
- ArtifactName: tcltk_lib_amd64
+ targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
+ artifactName: tcltk_lib_amd64
matrix:
win32:
Name: win32
- Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
+ Python: $(Build.BinariesDirectory)\bin\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
amd64:
Name: amd64
- Python: $(Build.BinariesDirectory)\bin_$(Name)\python.exe
+ Python: $(Build.BinariesDirectory)\bin\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- template: ./layout-command.yml
--preset-embed
displayName: 'Generate embeddable layout'
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_embed_$(Name)'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
- ArtifactName: layout_embed_$(Name)
+ targetPath: '$(Build.ArtifactStagingDirectory)\layout'
+ artifactName: layout_embed_$(Name)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: embed'
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)_d'
inputs:
artifactName: bin_$(Name)_d
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: doc'
inputs:
artifactName: doc
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\doc
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_$(Name)'
inputs:
artifactName: tcltk_lib_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\tcltk_lib
- template: ./layout-command.yml
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\layout" --preset-default
displayName: 'Generate full layout'
env:
- TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
+ TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_full_$(Name)'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\layout'
- ArtifactName: layout_full_$(Name)
+ targetPath: '$(Build.ArtifactStagingDirectory)\layout'
+ artifactName: layout_full_$(Name)
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)_d'
inputs:
artifactName: bin_$(Name)_d
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_$(Name)'
inputs:
artifactName: tcltk_lib_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\tcltk_lib
- template: ./layout-command.yml
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx-store" --preset-appx --precompile
displayName: 'Generate store APPX layout'
env:
- TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
+ TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_appxstore_$(Name)'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx-store'
- ArtifactName: layout_appxstore_$(Name)
+ targetPath: '$(Build.ArtifactStagingDirectory)\appx-store'
+ artifactName: layout_appxstore_$(Name)
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: cert'
condition: and(succeeded(), variables['SigningCertificate'])
inputs:
artifactName: cert
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\cert
- powershell: |
$info = (gc "$(Build.BinariesDirectory)\cert\certinfo.json" | ConvertFrom-JSON)
$(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx" --preset-appx --precompile --include-symbols --include-tests
displayName: 'Generate sideloading APPX layout'
env:
- TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib_$(Name)\tcl8
- APPX_DATA_PUBLISHER: $(APPX_DATA_PUBLISHER)
- APPX_DATA_SHA256: $(APPX_DATA_SHA256)
+ TCL_LIBRARY: $(Build.BinariesDirectory)\tcltk_lib\tcl8
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_appx_$(Name)'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\appx'
- ArtifactName: layout_appx_$(Name)
+ targetPath: '$(Build.ArtifactStagingDirectory)\appx'
+ artifactName: layout_appx_$(Name)
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: bin_$(Name)'
inputs:
artifactName: bin_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- template: ./layout-command.yml
env:
TCL_LIBRARY: $(Build.BinariesDirectory)\bin_$(Name)\tcl\tcl8
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish Artifact: layout_nuget_$(Name)'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\nuget'
- ArtifactName: layout_nuget_$(Name)
+ targetPath: '$(Build.ArtifactStagingDirectory)\nuget'
+ artifactName: layout_nuget_$(Name)
steps:
- template: ./checkout.yml
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: layout_$(Artifact)_$(Name)'
inputs:
artifactName: layout_$(Artifact)_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\layout
- task: DownloadBuildArtifacts@0
displayName: 'Download artifact: symbols'
displayName: 'Extract version numbers'
- powershell: |
- ./Tools/msi/make_appx.ps1 -layout "$(Build.BinariesDirectory)\layout_$(Artifact)_$(Name)" -msix "$(Build.ArtifactStagingDirectory)\msix\$(Filename).msix"
+ ./Tools/msi/make_appx.ps1 -layout "$(Build.BinariesDirectory)\layout" -msix "$(Build.ArtifactStagingDirectory)\msix\$(Filename).msix"
displayName: 'Build msix'
- powershell: |
steps:
- checkout: none
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: layout_nuget_$(Name)'
inputs:
artifactName: layout_nuget_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\layout
- task: NugetToolInstaller@0
displayName: 'Install Nuget'
versionSpec: '>=5.0'
- powershell: |
- nuget pack "$(Build.BinariesDirectory)\layout_nuget_$(Name)\python.nuspec" -OutputDirectory $(Build.ArtifactStagingDirectory) -NoPackageAnalysis -NonInteractive
+ nuget pack "$(Build.BinariesDirectory)\layout\python.nuspec" -OutputDirectory $(Build.ArtifactStagingDirectory) -NoPackageAnalysis -NonInteractive
displayName: 'Create nuget package'
- task: PublishBuildArtifacts@1
Write-Host "##vso[build.addbuildtag]signed"
displayName: 'Add build tags'
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: unsigned_bin_$(Name)'
inputs:
artifactName: unsigned_bin_$(Name)
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\bin
- powershell: |
$files = (gi *.exe, *.dll, *.pyd, *.cat -Exclude vcruntime*, libffi*, libcrypto*, libssl*)
signtool sign /a /n "$(SigningCertificate)" /fd sha256 /d "$(SigningDescription)" $files
displayName: 'Sign binaries'
- workingDirectory: $(Build.BinariesDirectory)\unsigned_bin_$(Name)
+ workingDirectory: $(Build.BinariesDirectory)\bin
- powershell: |
$files = (gi *.exe, *.dll, *.pyd, *.cat -Exclude vcruntime*, libffi*, libcrypto*, libssl*)
Write-Host "##vso[task.logissue type=error]Failed to timestamp files"
}
displayName: 'Timestamp binaries'
- workingDirectory: $(Build.BinariesDirectory)\unsigned_bin_$(Name)
+ workingDirectory: $(Build.BinariesDirectory)\bin
continueOnError: true
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish artifact: bin_$(Name)'
inputs:
- PathtoPublish: '$(Build.BinariesDirectory)\unsigned_bin_$(Name)'
- ArtifactName: bin_$(Name)
+ targetPath: '$(Build.BinariesDirectory)\bin'
+ artifactName: bin_$(Name)
- job: Dump_CertInfo
$info | ConvertTo-JSON -Compress | Out-File -Encoding utf8 "$d\certinfo.json"
displayName: "Extract certificate info"
- - task: PublishBuildArtifacts@1
+ - task: PublishPipelineArtifact@0
displayName: 'Publish artifact: cert'
inputs:
- PathtoPublish: '$(Build.BinariesDirectory)\cert'
- ArtifactName: cert
+ targetPath: '$(Build.BinariesDirectory)\cert'
+ artifactName: cert
- job: Mark_Unsigned
steps:
- checkout: none
- - task: DownloadBuildArtifacts@0
+ - task: DownloadPipelineArtifact@1
displayName: 'Download artifact: msi'
inputs:
artifactName: msi
- downloadPath: $(Build.BinariesDirectory)
+ targetPath: $(Build.BinariesDirectory)\msi
- powershell: |
$p = (gci -r *.exe | ?{ $_.Name -match '$(ExeMatch)' } | select -First 1)