aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build-windows.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build-windows.ps1')
-rw-r--r--scripts/build-windows.ps148
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
101if((-not $NPM_CONFIG_MSVS_VERSION) -or -not ($EXPECTED_MSVST_VERSION -contains $NPM_CONFIG_MSVS_VERSION)){ 101if((-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)
137if ($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
148if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_PNPM_VERSION) { 137if ($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
154if ((Test-Path -Path ".\pnpm-lock.yaml") -and (Get-Command -ErrorAction Ignore -Type Application pnpm)) 143if ($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]"
159else
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# -----------------------------------------------------------------------------
170Write-Host "*************** Building recipes ***************" 157Write-Host "*************** Building recipes ***************"
171# Note: 'recipes' is already using only pnpm - can switch to $BASE_CMD AFTER both repos are using pnpm
172Push-Location recipes 158Push-Location recipes
173pnpm i && pnpm lint && pnpm reformat-files && pnpm package 159pnpm i && pnpm lint && pnpm reformat-files && pnpm package
174Pop-Location 160Pop-Location
@@ -176,13 +162,13 @@ Pop-Location
176# ----------------------------------------------------------------------------- 162# -----------------------------------------------------------------------------
177Write-Host "*************** Building app ***************" 163Write-Host "*************** Building app ***************"
178if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { 164if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") {
179 $TARGET_ARCH="arm64" 165 $TARGET_ARCH="arm64"
180} 166}
181else 167else
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
187Write-Host "*************** App successfully built! ***************" 173Write-Host "*************** App successfully built! ***************"
188 174