1steps: 2 - template: ./checkout.yml 3 4 - powershell: | 5 $d = (.\PCbuild\build.bat -V) | %{ if($_ -match '\s+(\w+):\s*(.+)\s*$') { @{$Matches[1] = $Matches[2];} }}; 6 Write-Host "##vso[task.setvariable variable=SigningDescription]Python $($d.PythonVersion)" 7 displayName: 'Update signing description' 8 condition: and(succeeded(), not(variables['SigningDescription'])) 9 10 - task: DownloadPipelineArtifact@1 11 displayName: 'Download artifact: doc' 12 inputs: 13 artifactName: doc 14 targetPath: $(Build.BinariesDirectory)\doc 15 16 - task: CopyFiles@2 17 displayName: 'Merge documentation files' 18 inputs: 19 sourceFolder: $(Build.BinariesDirectory)\doc 20 targetFolder: $(Build.SourcesDirectory)\Doc\build 21 contents: | 22 htmlhelp\*.chm 23 24 - task: DownloadPipelineArtifact@1 25 displayName: 'Download artifact: bin_win32' 26 inputs: 27 artifactName: bin_win32 28 targetPath: $(Build.BinariesDirectory)\win32 29 30 - task: DownloadPipelineArtifact@1 31 displayName: 'Download artifact: bin_win32_d' 32 inputs: 33 artifactName: bin_win32_d 34 targetPath: $(Build.BinariesDirectory)\win32 35 36 - task: DownloadPipelineArtifact@1 37 displayName: 'Download artifact: bin_amd64' 38 inputs: 39 artifactName: bin_amd64 40 targetPath: $(Build.BinariesDirectory)\amd64 41 42 - task: DownloadPipelineArtifact@1 43 displayName: 'Download artifact: bin_amd64_d' 44 inputs: 45 artifactName: bin_amd64_d 46 targetPath: $(Build.BinariesDirectory)\amd64 47 48 - task: DownloadPipelineArtifact@1 49 displayName: 'Download artifact: tcltk_lib_win32' 50 inputs: 51 artifactName: tcltk_lib_win32 52 targetPath: $(Build.BinariesDirectory)\tcltk_lib_win32 53 54 - task: DownloadPipelineArtifact@1 55 displayName: 'Download artifact: tcltk_lib_amd64' 56 inputs: 57 artifactName: tcltk_lib_amd64 58 targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64 59 60 - powershell: | 61 copy $(Build.BinariesDirectory)\amd64\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force 62 displayName: 'Copy signed files into sources' 63 condition: and(succeeded(), variables['SigningCertificate']) 64 65 - script: | 66 call Tools\msi\get_externals.bat 67 call PCbuild\find_python.bat 68 echo ##vso[task.setvariable variable=PYTHON]%PYTHON% 69 call PCbuild/find_msbuild.bat 70 echo ##vso[task.setvariable variable=MSBUILD]%MSBUILD% 71 displayName: 'Get external dependencies' 72 73 - script: | 74 %PYTHON% -m pip install blurb 75 %PYTHON% -m blurb merge -f Misc\NEWS 76 displayName: 'Merge NEWS file' 77 78 - script: | 79 %MSBUILD% Tools\msi\launcher\launcher.wixproj 80 displayName: 'Build launcher installer' 81 env: 82 Platform: x86 83 Py_OutDir: $(Build.BinariesDirectory) 84 85 - script: | 86 %MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true 87 %MSBUILD% Tools\msi\bundle\releaseweb.wixproj /t:Rebuild /p:RebuildAll=false 88 displayName: 'Build win32 installer' 89 env: 90 Platform: x86 91 Py_OutDir: $(Build.BinariesDirectory) 92 PYTHON: $(Build.BinariesDirectory)\win32\python.exe 93 PYTHONHOME: $(Build.SourcesDirectory) 94 TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_win32 95 BuildForRelease: true 96 SuppressMinGWLib: true 97 98 - script: | 99 %MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true 100 %MSBUILD% Tools\msi\bundle\releaseweb.wixproj /t:Rebuild /p:RebuildAll=false 101 displayName: 'Build amd64 installer' 102 env: 103 Platform: x64 104 Py_OutDir: $(Build.BinariesDirectory) 105 PYTHON: $(Build.BinariesDirectory)\amd64\python.exe 106 PYTHONHOME: $(Build.SourcesDirectory) 107 TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_amd64 108 BuildForRelease: true 109 SuppressMinGWLib: true 110 111 - task: CopyFiles@2 112 displayName: 'Assemble artifact: msi (1/2)' 113 inputs: 114 sourceFolder: $(Build.BinariesDirectory)\win32\en-us 115 targetFolder: $(Build.ArtifactStagingDirectory)\msi\win32 116 contents: | 117 *.msi 118 *.cab 119 *.exe 120 121 - task: CopyFiles@2 122 displayName: 'Assemble artifact: msi (2/2)' 123 inputs: 124 sourceFolder: $(Build.BinariesDirectory)\amd64\en-us 125 targetFolder: $(Build.ArtifactStagingDirectory)\msi\amd64 126 contents: | 127 *.msi 128 *.cab 129 *.exe 130 131 - task: PublishPipelineArtifact@0 132 displayName: 'Publish MSI' 133 inputs: 134 targetPath: '$(Build.ArtifactStagingDirectory)\msi' 135 artifactName: msi 136