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