136 lines
4.4 KiB
YAML
136 lines
4.4 KiB
YAML
steps:
|
|
- template: ./checkout.yml
|
|
|
|
- powershell: |
|
|
$d = (.\PCbuild\build.bat -V) | %{ if($_ -match '\s+(\w+):\s*(.+)\s*$') { @{$Matches[1] = $Matches[2];} }};
|
|
Write-Host "##vso[task.setvariable variable=SigningDescription]Python $($d.PythonVersion)"
|
|
displayName: 'Update signing description'
|
|
condition: and(succeeded(), not(variables['SigningDescription']))
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: doc'
|
|
inputs:
|
|
artifactName: doc
|
|
targetPath: $(Build.BinariesDirectory)\doc
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Merge documentation files'
|
|
inputs:
|
|
sourceFolder: $(Build.BinariesDirectory)\doc
|
|
targetFolder: $(Build.SourcesDirectory)\Doc\build
|
|
contents: |
|
|
htmlhelp\*.chm
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: bin_win32'
|
|
inputs:
|
|
artifactName: bin_win32
|
|
targetPath: $(Build.BinariesDirectory)\win32
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: bin_win32_d'
|
|
inputs:
|
|
artifactName: bin_win32_d
|
|
targetPath: $(Build.BinariesDirectory)\win32
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: bin_amd64'
|
|
inputs:
|
|
artifactName: bin_amd64
|
|
targetPath: $(Build.BinariesDirectory)\amd64
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: bin_amd64_d'
|
|
inputs:
|
|
artifactName: bin_amd64_d
|
|
targetPath: $(Build.BinariesDirectory)\amd64
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: tcltk_lib_win32'
|
|
inputs:
|
|
artifactName: tcltk_lib_win32
|
|
targetPath: $(Build.BinariesDirectory)\tcltk_lib_win32
|
|
|
|
- task: DownloadPipelineArtifact@1
|
|
displayName: 'Download artifact: tcltk_lib_amd64'
|
|
inputs:
|
|
artifactName: tcltk_lib_amd64
|
|
targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64
|
|
|
|
- powershell: |
|
|
copy $(Build.BinariesDirectory)\amd64\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force
|
|
displayName: 'Copy signed files into sources'
|
|
condition: and(succeeded(), variables['SigningCertificate'])
|
|
|
|
- script: |
|
|
call Tools\msi\get_externals.bat
|
|
call PCbuild\find_python.bat
|
|
echo ##vso[task.setvariable variable=PYTHON]%PYTHON%
|
|
call PCbuild/find_msbuild.bat
|
|
echo ##vso[task.setvariable variable=MSBUILD]%MSBUILD%
|
|
displayName: 'Get external dependencies'
|
|
|
|
- script: |
|
|
%PYTHON% -m pip install blurb
|
|
%PYTHON% -m blurb merge -f Misc\NEWS
|
|
displayName: 'Merge NEWS file'
|
|
|
|
- script: |
|
|
%MSBUILD% Tools\msi\launcher\launcher.wixproj
|
|
displayName: 'Build launcher installer'
|
|
env:
|
|
Platform: x86
|
|
Py_OutDir: $(Build.BinariesDirectory)
|
|
|
|
- script: |
|
|
%MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true
|
|
%MSBUILD% Tools\msi\bundle\releaseweb.wixproj /t:Rebuild /p:RebuildAll=false
|
|
displayName: 'Build win32 installer'
|
|
env:
|
|
Platform: x86
|
|
Py_OutDir: $(Build.BinariesDirectory)
|
|
PYTHON: $(Build.BinariesDirectory)\win32\python.exe
|
|
PYTHONHOME: $(Build.SourcesDirectory)
|
|
TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_win32
|
|
BuildForRelease: true
|
|
SuppressMinGWLib: true
|
|
|
|
- script: |
|
|
%MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true
|
|
%MSBUILD% Tools\msi\bundle\releaseweb.wixproj /t:Rebuild /p:RebuildAll=false
|
|
displayName: 'Build amd64 installer'
|
|
env:
|
|
Platform: x64
|
|
Py_OutDir: $(Build.BinariesDirectory)
|
|
PYTHON: $(Build.BinariesDirectory)\amd64\python.exe
|
|
PYTHONHOME: $(Build.SourcesDirectory)
|
|
TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_amd64
|
|
BuildForRelease: true
|
|
SuppressMinGWLib: true
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Assemble artifact: msi (1/2)'
|
|
inputs:
|
|
sourceFolder: $(Build.BinariesDirectory)\win32\en-us
|
|
targetFolder: $(Build.ArtifactStagingDirectory)\msi\win32
|
|
contents: |
|
|
*.msi
|
|
*.cab
|
|
*.exe
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Assemble artifact: msi (2/2)'
|
|
inputs:
|
|
sourceFolder: $(Build.BinariesDirectory)\amd64\en-us
|
|
targetFolder: $(Build.ArtifactStagingDirectory)\msi\amd64
|
|
contents: |
|
|
*.msi
|
|
*.cab
|
|
*.exe
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
displayName: 'Publish MSI'
|
|
inputs:
|
|
targetPath: '$(Build.ArtifactStagingDirectory)\msi'
|
|
artifactName: msi
|