diff options
Diffstat (limited to 'scripts/build-windows.ps1')
-rw-r--r-- | scripts/build-windows.ps1 | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/scripts/build-windows.ps1 b/scripts/build-windows.ps1 index 13cbacb85..d0c394647 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 = @("2017","2019","2022") | 99 | $EXPECTED_MSVST_VERSION = @("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,30 +131,44 @@ 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 | |||
134 | # Check pnpm version | 145 | # Check pnpm version |
135 | $EXPECTED_PNPM_VERSION = (Get-Content package.json | ConvertFrom-Json).engines.pnpm | 146 | $EXPECTED_PNPM_VERSION = (Get-Content recipes\package.json | ConvertFrom-Json).engines.pnpm |
136 | $ACTUAL_PNPM_VERSION = pnpm --version -ErrorAction SilentlyContinue # in case the pnpm executable itself is not present | 147 | $ACTUAL_PNPM_VERSION = Get-Command pnpm --version -ErrorAction SilentlyContinue # in case the pnpm executable itself is not present |
137 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_PNPM_VERSION) { | 148 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_PNPM_VERSION) { |
138 | npm i -gf pnpm@$EXPECTED_PNPM_VERSION | 149 | npm i -gf pnpm@$EXPECTED_PNPM_VERSION |
139 | } | 150 | } |
140 | 151 | ||
141 | # Check pnpm version of the recipes submodule | 152 | # ----------------------------------------------------------------------------- |
142 | $EXPECTED_RECIPES_PNPM_VERSION = (Get-Content .\recipes\package.json | ConvertFrom-Json).engines.pnpm | 153 | # This is useful if we move from 'npm' to 'pnpm' for the main repo as well |
143 | if ($ACTUAL_PNPM_VERSION -ne $EXPECTED_RECIPES_PNPM_VERSION) { | 154 | if ((Test-Path -Path ".\pnpm-lock.yaml") -and (Get-Command -ErrorAction Ignore -Type Application pnpm)) |
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. | 155 | { |
145 | expected in recipes : [$EXPECTED_RECIPES_PNPM_VERSION] | 156 | $BASE_CMD="pnpm" |
146 | expected in main repo: [$EXPECTED_RECIPES_PNPM_VERSION] | 157 | $env:EXEC_CMD="pnpm dlx" |
147 | actual : [$EXPECTED_PNPM_VERSION]" | 158 | } |
159 | else | ||
160 | { | ||
161 | $BASE_CMD="npm" | ||
162 | $env:EXEC_CMD="npx" | ||
148 | } | 163 | } |
149 | 164 | ||
150 | # ----------------------------------------------------------------------------- | ||
151 | # Now the meat..... | 165 | # Now the meat..... |
152 | & pnpm i | 166 | & $BASE_CMD i |
153 | & pnpm prepare-code | 167 | & $BASE_CMD run prepare-code |
154 | & pnpm test | ||
155 | 168 | ||
156 | # ----------------------------------------------------------------------------- | 169 | # ----------------------------------------------------------------------------- |
157 | Write-Host "*************** Building recipes ***************" | 170 | Write-Host "*************** Building recipes ***************" |
171 | # Note: 'recipes' is already using only pnpm - can switch to $BASE_CMD AFTER both repos are using pnpm | ||
158 | Push-Location recipes | 172 | Push-Location recipes |
159 | pnpm i && pnpm lint && pnpm reformat-files && pnpm package | 173 | pnpm i && pnpm lint && pnpm reformat-files && pnpm package |
160 | Pop-Location | 174 | Pop-Location |
@@ -162,13 +176,13 @@ Pop-Location | |||
162 | # ----------------------------------------------------------------------------- | 176 | # ----------------------------------------------------------------------------- |
163 | Write-Host "*************** Building app ***************" | 177 | Write-Host "*************** Building app ***************" |
164 | if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { | 178 | if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { |
165 | $TARGET_ARCH="arm64" | 179 | $TARGET_ARCH="arm64" |
166 | } | 180 | } |
167 | else | 181 | else |
168 | { | 182 | { |
169 | $TARGET_ARCH="x64" | 183 | $TARGET_ARCH="x64" |
170 | } | 184 | } |
171 | & pnpm build -- --$TARGET_ARCH --dir | 185 | & $BASE_CMD run build -- --$TARGET_ARCH --dir |
172 | 186 | ||
173 | Write-Host "*************** App successfully built! ***************" | 187 | Write-Host "*************** App successfully built! ***************" |
174 | 188 | ||