• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1jobs:
2- job: Make_MSIX_Layout
3  displayName: Make MSIX layout
4
5  pool:
6    vmImage: windows-2019
7
8  workspace:
9    clean: all
10
11  strategy:
12    matrix:
13      #win32:
14      #  Name: win32
15      #  Python: $(Build.BinariesDirectory)\bin\python.exe
16      #  PYTHONHOME: $(Build.SourcesDirectory)
17      #  TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
18      amd64:
19        Name: amd64
20        Python: $(Build.BinariesDirectory)\bin\python.exe
21        PYTHONHOME: $(Build.SourcesDirectory)
22        TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
23      arm64:
24        Name: arm64
25        HostArch: amd64
26        Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
27        PYTHONHOME: $(Build.SourcesDirectory)
28
29  steps:
30  - template: ./checkout.yml
31
32  - task: DownloadPipelineArtifact@1
33    displayName: 'Download artifact: bin_$(Name)'
34    inputs:
35      artifactName: bin_$(Name)
36      targetPath: $(Build.BinariesDirectory)\bin
37
38  - task: DownloadPipelineArtifact@1
39    displayName: 'Download artifact: bin_$(Name)_d'
40    inputs:
41      artifactName: bin_$(Name)_d
42      targetPath: $(Build.BinariesDirectory)\bin
43
44  - task: DownloadPipelineArtifact@1
45    displayName: 'Download artifact: tcltk_lib_$(Name)'
46    condition: and(succeeded(), variables['TclLibrary'])
47    inputs:
48      artifactName: tcltk_lib_$(Name)
49      targetPath: $(Build.BinariesDirectory)\tcltk_lib
50
51  - powershell: |
52      copy "$(Build.BinariesDirectory)\bin\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
53    displayName: 'Copy signed files into sources'
54    condition: and(succeeded(), variables['SigningCertificate'])
55
56  - template: ./layout-command.yml
57
58  - powershell: |
59     Remove-Item "$(Build.ArtifactStagingDirectory)\appx-store" -Recurse -Force -EA 0
60      $(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx-store" --preset-appx --precompile
61    displayName: 'Generate store APPX layout'
62    env:
63      TCL_LIBRARY: $(TclLibrary)
64
65  - task: PublishPipelineArtifact@0
66    displayName: 'Publish Artifact: layout_appxstore_$(Name)'
67    inputs:
68      targetPath: '$(Build.ArtifactStagingDirectory)\appx-store'
69      artifactName: layout_appxstore_$(Name)
70
71  - task: DownloadPipelineArtifact@1
72    displayName: 'Download artifact: cert'
73    condition: and(succeeded(), variables['SigningCertificate'])
74    inputs:
75      artifactName: cert
76      targetPath: $(Build.BinariesDirectory)\cert
77
78  - powershell: |
79      $info = (gc "$(Build.BinariesDirectory)\cert\certinfo.json" | ConvertFrom-JSON)
80      Write-Host "Side-loadable APPX must be signed with '$($info.Subject)'"
81      Write-Host "##vso[task.setvariable variable=APPX_DATA_PUBLISHER]$($info.Subject)"
82      Write-Host "##vso[task.setvariable variable=APPX_DATA_SHA256]$($info.SHA256)"
83    displayName: 'Override signing parameters'
84    condition: and(succeeded(), variables['SigningCertificate'])
85
86  - powershell: |
87      Remove-Item "$(Build.ArtifactStagingDirectory)\appx" -Recurse -Force -EA 0
88      $(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx" --preset-appx --precompile --include-symbols --include-tests
89    displayName: 'Generate sideloading APPX layout'
90    env:
91      TCL_LIBRARY: $(TclLibrary)
92
93  - task: PublishPipelineArtifact@0
94    displayName: 'Publish Artifact: layout_appx_$(Name)'
95    inputs:
96      targetPath: '$(Build.ArtifactStagingDirectory)\appx'
97      artifactName: layout_appx_$(Name)
98