diff options
Diffstat (limited to 'scripts/build-windows.ps1')
-rw-r--r-- | scripts/build-windows.ps1 | 48 |
1 files changed, 17 insertions, 31 deletions
diff --git a/scripts/build-windows.ps1 b/scripts/build-windows.ps1 index d0c394647..13cbacb85 100644 --- a/scripts/build-windows.ps1 +++ b/scripts/build-windows.ps1 | |||
@@ -96,7 +96,7 @@ if ($env:CLEAN -eq "true") | |||
96 | # Check MSVS Tools through MSVS_VERSION | 96 | # Check MSVS Tools through MSVS_VERSION |
97 | 97 | ||
98 | 98 | ||
99 | $EXPECTED_MSVST_VERSION = @("2019","2022") | 99 | $EXPECTED_MSVST_VERSION = @("2017","2019","2022") |
100 | $NPM_CONFIG_MSVS_VERSION = npm config get msvs_version | 100 | $NPM_CONFIG_MSVS_VERSION = npm config get msvs_version |
101 | if((-not $NPM_CONFIG_MSVS_VERSION) -or -not ($EXPECTED_MSVST_VERSION -contains $NPM_CONFIG_MSVS_VERSION)){ | 101 | if((-not $NPM_CONFIG_MSVS_VERSION) -or -not ($EXPECTED_MSVST_VERSION -contains $NPM_CONFIG_MSVS_VERSION)){ |
102 | Write-Host "Your Microsoft Visual Studio Tools isn't set properly or it's not the right version! | 102 | Write-Host "Your Microsoft Visual Studio Tools isn't set properly or it's not the right version! |
@@ -131,44 +131,30 @@ if((-not $NPM_CONFIG_MSVS_VERSION) -or -not ($EXPECTED_MSVST_VERSION -contains $ | |||
131 | 131 | ||
132 | # ----------------------------------------------------------------------------- | 132 | # ----------------------------------------------------------------------------- |
133 | # Ensure that the system dependencies are at the correct version - recover if not | 133 | # Ensure that the system dependencies are at the correct version - recover if not |
134 | # Check npm version | ||
135 | $EXPECTED_NPM_VERSION = (Get-Content package.json | ConvertFrom-Json).engines.npm | ||
136 | $ACTUAL_NPM_VERSION = (npm -v) | ||
137 | if ($EXPECTED_NPM_VERSION -ne $ACTUAL_NPM_VERSION) { | ||
138 | Write-Host "You are not running the expected version of npm! | ||
139 | expected: [$EXPECTED_NPM_VERSION] | ||
140 | actual : [$ACTUAL_NPM_VERSION]" | ||
141 | Write-Host "Changing version of npm to [$EXPECTED_NPM_VERSION]" | ||
142 | npm i -gf npm@$EXPECTED_NPM_VERSION | ||
143 | } | ||
144 | |||
145 | # Check pnpm version | 134 | # Check pnpm version |
146 | $EXPECTED_PNPM_VERSION = (Get-Content recipes\package.json | ConvertFrom-Json).engines.pnpm | 135 | $EXPECTED_PNPM_VERSION = (Get-Content package.json | ConvertFrom-Json).engines.pnpm |
147 | $ACTUAL_PNPM_VERSION = Get-Command pnpm --version -ErrorAction SilentlyContinue # in case the pnpm executable itself is not present | 136 | $ACTUAL_PNPM_VERSION = pnpm --version -ErrorAction SilentlyContinue # in case the pnpm executable itself is not present |
148 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_PNPM_VERSION) { | 137 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_PNPM_VERSION) { |
149 | npm i -gf pnpm@$EXPECTED_PNPM_VERSION | 138 | npm i -gf pnpm@$EXPECTED_PNPM_VERSION |
150 | } | 139 | } |
151 | 140 | ||
152 | # ----------------------------------------------------------------------------- | 141 | # Check pnpm version of the recipes submodule |
153 | # This is useful if we move from 'npm' to 'pnpm' for the main repo as well | 142 | $EXPECTED_RECIPES_PNPM_VERSION = (Get-Content .\recipes\package.json | ConvertFrom-Json).engines.pnpm |
154 | if ((Test-Path -Path ".\pnpm-lock.yaml") -and (Get-Command -ErrorAction Ignore -Type Application pnpm)) | 143 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_RECIPES_PNPM_VERSION) { |
155 | { | 144 | fail_with_docs "The expected versions of pnpm are not the same in the main repo and in the recipes submodule, please sync them. |
156 | $BASE_CMD="pnpm" | 145 | expected in recipes : [$EXPECTED_RECIPES_PNPM_VERSION] |
157 | $env:EXEC_CMD="pnpm dlx" | 146 | expected in main repo: [$EXPECTED_RECIPES_PNPM_VERSION] |
158 | } | 147 | actual : [$EXPECTED_PNPM_VERSION]" |
159 | else | ||
160 | { | ||
161 | $BASE_CMD="npm" | ||
162 | $env:EXEC_CMD="npx" | ||
163 | } | 148 | } |
164 | 149 | ||
150 | # ----------------------------------------------------------------------------- | ||
165 | # Now the meat..... | 151 | # Now the meat..... |
166 | & $BASE_CMD i | 152 | & pnpm i |
167 | & $BASE_CMD run prepare-code | 153 | & pnpm prepare-code |
154 | & pnpm test | ||
168 | 155 | ||
169 | # ----------------------------------------------------------------------------- | 156 | # ----------------------------------------------------------------------------- |
170 | Write-Host "*************** Building recipes ***************" | 157 | Write-Host "*************** Building recipes ***************" |
171 | # Note: 'recipes' is already using only pnpm - can switch to $BASE_CMD AFTER both repos are using pnpm | ||
172 | Push-Location recipes | 158 | Push-Location recipes |
173 | pnpm i && pnpm lint && pnpm reformat-files && pnpm package | 159 | pnpm i && pnpm lint && pnpm reformat-files && pnpm package |
174 | Pop-Location | 160 | Pop-Location |
@@ -176,13 +162,13 @@ Pop-Location | |||
176 | # ----------------------------------------------------------------------------- | 162 | # ----------------------------------------------------------------------------- |
177 | Write-Host "*************** Building app ***************" | 163 | Write-Host "*************** Building app ***************" |
178 | if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { | 164 | if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { |
179 | $TARGET_ARCH="arm64" | 165 | $TARGET_ARCH="arm64" |
180 | } | 166 | } |
181 | else | 167 | else |
182 | { | 168 | { |
183 | $TARGET_ARCH="x64" | 169 | $TARGET_ARCH="x64" |
184 | } | 170 | } |
185 | & $BASE_CMD run build -- --$TARGET_ARCH --dir | 171 | & pnpm build -- --$TARGET_ARCH --dir |
186 | 172 | ||
187 | Write-Host "*************** App successfully built! ***************" | 173 | Write-Host "*************** App successfully built! ***************" |
188 | 174 | ||