• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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