summaryrefslogtreecommitdiffstats
path: root/.azure-pipelines/windows-release/stage-layout-msix.yml
blob: def4f7d3c6bee5fa50104572a34543fbb004466b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
jobs:
- job: Make_MSIX_Layout
  displayName: Make MSIX layout

  pool:
    vmImage: windows-2019

  workspace:
    clean: all

  strategy:
    matrix:
      #win32:
      #  Name: win32
      #  Python: $(Build.BinariesDirectory)\bin\python.exe
      #  PYTHONHOME: $(Build.SourcesDirectory)
      #  TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
      amd64:
        Name: amd64
        Python: $(Build.BinariesDirectory)\bin\python.exe
        PYTHONHOME: $(Build.SourcesDirectory)
        TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8
      arm64:
        Name: arm64
        HostArch: amd64
        Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
        PYTHONHOME: $(Build.SourcesDirectory)

  steps:
  - template: ./checkout.yml

  - task: DownloadPipelineArtifact@1
    displayName: 'Download artifact: bin_$(Name)'
    inputs:
      artifactName: bin_$(Name)
      targetPath: $(Build.BinariesDirectory)\bin

  - task: DownloadPipelineArtifact@1
    displayName: 'Download artifact: bin_$(Name)_d'
    inputs:
      artifactName: bin_$(Name)_d
      targetPath: $(Build.BinariesDirectory)\bin

  - task: DownloadPipelineArtifact@1
    displayName: 'Download artifact: tcltk_lib_$(Name)'
    condition: and(succeeded(), variables['TclLibrary'])
    inputs:
      artifactName: tcltk_lib_$(Name)
      targetPath: $(Build.BinariesDirectory)\tcltk_lib

  - powershell: |
      copy "$(Build.BinariesDirectory)\bin\Activate.ps1" Lib\venv\scripts\common\Activate.ps1 -Force
    displayName: 'Copy signed files into sources'
    condition: and(succeeded(), variables['SigningCertificate'])

  - template: ./layout-command.yml

  - powershell: |
     Remove-Item "$(Build.ArtifactStagingDirectory)\appx-store" -Recurse -Force -EA 0
      $(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx-store" --preset-appx --precompile
    displayName: 'Generate store APPX layout'
    env:
      TCL_LIBRARY: $(TclLibrary)

  - task: PublishPipelineArtifact@0
    displayName: 'Publish Artifact: layout_appxstore_$(Name)'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)\appx-store'
      artifactName: layout_appxstore_$(Name)

  - task: DownloadPipelineArtifact@1
    displayName: 'Download artifact: cert'
    condition: and(succeeded(), variables['SigningCertificate'])
    inputs:
      artifactName: cert
      targetPath: $(Build.BinariesDirectory)\cert

  - powershell: |
      $info = (gc "$(Build.BinariesDirectory)\cert\certinfo.json" | ConvertFrom-JSON)
      Write-Host "Side-loadable APPX must be signed with '$($info.Subject)'"
      Write-Host "##vso[task.setvariable variable=APPX_DATA_PUBLISHER]$($info.Subject)"
      Write-Host "##vso[task.setvariable variable=APPX_DATA_SHA256]$($info.SHA256)"
    displayName: 'Override signing parameters'
    condition: and(succeeded(), variables['SigningCertificate'])

  - powershell: |
      Remove-Item "$(Build.ArtifactStagingDirectory)\appx" -Recurse -Force -EA 0
      $(LayoutCmd) --copy "$(Build.ArtifactStagingDirectory)\appx" --preset-appx --precompile --include-symbols --include-tests
    displayName: 'Generate sideloading APPX layout'
    env:
      TCL_LIBRARY: $(TclLibrary)

  - task: PublishPipelineArtifact@0
    displayName: 'Publish Artifact: layout_appx_$(Name)'
    inputs:
      targetPath: '$(Build.ArtifactStagingDirectory)\appx'
      artifactName: layout_appx_$(Name)