You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gpustack/.github/workflows/install-script-windows.yml

109 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

name: Windows Install Script Testing
on:
push:
branches:
- main
- "v*-dev"
paths:
- "install.ps1"
- ".github/workflows/install-script-windows.yml"
pull_request:
branches:
- main
- "v*-dev"
paths:
- "install.ps1"
- ".github/workflows/install-script-windows.yml"
workflow_dispatch: {}
schedule:
- cron: "0 0 * * *" # every day at 00:00 UTC
jobs:
windows-amd64-build:
timeout-minutes: 20
runs-on: windows-latest
strategy:
matrix:
arch: [X64]
steps:
- uses: actions/checkout@v4
name: Checkout code
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: CI
shell: powershell
run: |
make build
- name: Upload wheel as artifact
uses: actions/upload-artifact@v4
with:
name: windows-amd64-dist
path: dist/*.whl
windows-amd64-install-test:
timeout-minutes: 20
name: Test Install
needs: windows-amd64-build
runs-on: windows-latest
strategy:
matrix:
arch: [X64]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: windows-amd64-dist
path: ./dist
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Run install script
shell: powershell
run: |
$env:whlPackageName=Get-ChildItem -Path dist -Filter "*.whl" -File | ForEach-Object { $_.Name }
Write-Host "whlPackageName: $env:whlPackageName"
$env:INSTALL_PACKAGE_SPEC = [System.IO.Path]::Combine("dist", $env:whlPackageName)
Write-Host "INSTALL_PACKAGE_SPEC: $env:INSTALL_PACKAGE_SPEC"
Write-Host "AppData $env:APPDATA"
# Use port 8080 since 80 is occupied by the System
./install.ps1 -ServerPort 8080
Write-Host "Checking if the server is ready..."
$uri = "http://127.0.0.1:8080/readyz"
$maxRetries = 5
$retryDelaySeconds = 2
$responseCode = 500
$lastError = $null
for ($i = 0; $i -lt $maxRetries; $i++) {
try {
$response = Invoke-WebRequest -Uri $uri -ErrorAction Stop
$responseCode = $response.StatusCode
if ($responseCode -eq 200) {
Write-Host "Server response status code: $($response.StatusCode)"
Write-Host "Server responded with status code 200 on attempt $($i + 1)."
break
}
} catch {
Write-Host "Request failed, retrying$($i + 1) times..."
$lastError = $_.Exception.Message
Start-Sleep -Seconds $retryDelaySeconds
}
}
if ($responseCode -ne 200) {
Write-Host "All retry attempts failed. Last error: $lastError"
}