Skip to content

Commit fe41c79

Browse files
committed
test windows ci
Signed-off-by: Andrei Gherghescu <[email protected]>
1 parent d6f822f commit fe41c79

File tree

1 file changed

+193
-1
lines changed

1 file changed

+193
-1
lines changed

.github/workflows/ci.yml

Lines changed: 193 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ jobs:
7070
strategy:
7171
fail-fast: false
7272
matrix:
73-
os: [ubuntu-latest, windows-latest, macos-latest]
73+
# os: [ubuntu-latest, windows-latest, macos-latest]
74+
os: [ubuntu-latest, macos-latest]
7475
runs-on: ${{ matrix.os }}
7576
steps:
7677
- name: Setup Chrome
@@ -145,6 +146,197 @@ jobs:
145146
targets: wasm32-unknown-unknown
146147
- run: cd ${{ github.workspace }}/examples/wasm-yew/${{ matrix.example }} && cargo build --target wasm32-unknown-unknown
147148

149+
test_static_export_chrome:
150+
name: Test Static Export with Chrome (Windows)
151+
runs-on: windows-latest
152+
timeout-minutes: 30
153+
steps:
154+
- uses: actions/checkout@v4
155+
156+
- name: Setup Chrome and chromedriver
157+
id: setup-chrome
158+
uses: browser-actions/setup-chrome@v1
159+
with:
160+
chrome-version: 'latest'
161+
install-chromedriver: true
162+
163+
- uses: dtolnay/rust-toolchain@stable
164+
165+
- name: Cache cargo registry
166+
uses: actions/cache@v4
167+
with:
168+
path: |
169+
~/.cargo/registry/index/
170+
~/.cargo/registry/cache/
171+
~/.cargo/git/db/
172+
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
173+
restore-keys: |
174+
${{ runner.os }}-cargo-registry-
175+
176+
- name: Debug - Show setup-chrome outputs
177+
run: |
178+
Write-Host "=== Setup Chrome Action Outputs ==="
179+
Write-Host "chrome-version: ${{ steps.setup-chrome.outputs.chrome-version }}"
180+
Write-Host "chrome-path: ${{ steps.setup-chrome.outputs.chrome-path }}"
181+
Write-Host "chromedriver-version: ${{ steps.setup-chrome.outputs.chromedriver-version }}"
182+
Write-Host "chromedriver-path: ${{ steps.setup-chrome.outputs.chromedriver-path }}"
183+
Write-Host "================================"
184+
185+
- name: Debug - System information
186+
run: |
187+
Write-Host "=== System Information ==="
188+
Write-Host "OS Version: $(Get-ComputerInfo | Select-Object -ExpandProperty WindowsProductName)"
189+
Write-Host "Architecture: $(Get-ComputerInfo | Select-Object -ExpandProperty OsArchitecture)"
190+
Write-Host "Available memory: $((Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory / 1MB) MB"
191+
Write-Host "=========================="
192+
193+
- name: Debug - Check Chrome and chromedriver installation
194+
run: |
195+
Write-Host "=== Chrome and Chromedriver Check ==="
196+
197+
# Check if Chrome is in PATH
198+
try {
199+
$chromeVersion = & chrome.exe --version 2>$null
200+
Write-Host "Chrome in PATH: $chromeVersion"
201+
} catch {
202+
Write-Host "Chrome not found in PATH"
203+
}
204+
205+
# Check if chromedriver is in PATH
206+
try {
207+
$chromedriverVersion = & chromedriver.exe --version 2>$null
208+
Write-Host "Chromedriver in PATH: $chromedriverVersion"
209+
} catch {
210+
Write-Host "Chromedriver not found in PATH"
211+
}
212+
213+
# Check specific paths from action outputs
214+
$chromePath = "${{ steps.setup-chrome.outputs.chrome-path }}"
215+
$chromedriverPath = "${{ steps.setup-chrome.outputs.chromedriver-path }}"
216+
217+
Write-Host "Chrome path from action: $chromePath"
218+
Write-Host "Chromedriver path from action: $chromedriverPath"
219+
220+
if (Test-Path $chromePath) {
221+
Write-Host "Chrome file exists: $(Get-Item $chromePath | Select-Object -ExpandProperty FullName)"
222+
Write-Host "Chrome file size: $((Get-Item $chromePath).Length) bytes"
223+
} else {
224+
Write-Host "Chrome file does not exist at specified path"
225+
}
226+
227+
if (Test-Path $chromedriverPath) {
228+
Write-Host "Chromedriver file exists: $(Get-Item $chromedriverPath | Select-Object -ExpandProperty FullName)"
229+
Write-Host "Chromedriver file size: $((Get-Item $chromedriverPath).Length) bytes"
230+
} else {
231+
Write-Host "Chromedriver file does not exist at specified path"
232+
}
233+
234+
Write-Host "================================"
235+
236+
- name: Debug - Check Rust toolchain and dependencies
237+
run: |
238+
Write-Host "=== Rust Toolchain Check ==="
239+
rustc --version
240+
cargo --version
241+
Write-Host "Current directory: $(Get-Location)"
242+
Write-Host "Workspace contents:"
243+
Get-ChildItem -Name | Sort-Object
244+
Write-Host "=========================="
245+
246+
- name: Debug - Check plotly_static package
247+
run: |
248+
Write-Host "=== Plotly Static Package Check ==="
249+
cd plotly_static
250+
Write-Host "Package contents:"
251+
Get-ChildItem -Name | Sort-Object
252+
Write-Host "Cargo.toml contents:"
253+
Get-Content Cargo.toml
254+
Write-Host "================================"
255+
256+
- name: Debug - Pre-update cargo index
257+
run: |
258+
Write-Host "=== Pre-update Cargo Index Check ==="
259+
Write-Host "Current cargo index status:"
260+
cargo search --limit 1 plotly 2>&1 | Select-String -Pattern "Updating|Downloading|error" || Write-Host "Index seems up to date"
261+
Write-Host "================================"
262+
263+
- name: Update cargo index (if needed)
264+
run: |
265+
Write-Host "=== Updating Cargo Index ==="
266+
# Force update the index with a timeout
267+
$timeout = 300 # 5 minutes
268+
$job = Start-Job -ScriptBlock {
269+
cargo update --dry-run
270+
}
271+
272+
try {
273+
Wait-Job $job -Timeout $timeout
274+
$result = Receive-Job $job
275+
Write-Host "Cargo update result: $result"
276+
if ($job.State -eq "Completed") {
277+
Write-Host "Cargo index updated successfully"
278+
} else {
279+
Write-Host "Cargo index update timed out, continuing anyway"
280+
Stop-Job $job
281+
}
282+
} catch {
283+
Write-Host "Cargo index update failed: $_"
284+
Write-Host "Continuing with test anyway..."
285+
} finally {
286+
if ($job) {
287+
Remove-Job $job -Force -ErrorAction SilentlyContinue
288+
}
289+
}
290+
Write-Host "================================"
291+
292+
- name: Pre-compile dependencies
293+
run: |
294+
Write-Host "=== Pre-compiling Dependencies ==="
295+
296+
# Set environment variables
297+
$env:WEBDRIVER_PATH = "${{ steps.setup-chrome.outputs.chromedriver-path }}"
298+
$env:CHROME_PATH = "${{ steps.setup-chrome.outputs.chrome-path }}"
299+
$env:RUST_LOG = "debug"
300+
$env:RUST_BACKTRACE = "1"
301+
302+
Write-Host "Pre-compiling plotly_static with features..."
303+
cargo check --verbose --package plotly_static --features chromedriver,webdriver_download
304+
305+
Write-Host "Dependencies pre-compiled successfully"
306+
307+
- name: Run PNG export test with Chrome
308+
run: |
309+
Write-Host "=== Starting PNG Export Test ==="
310+
311+
# Set environment variables
312+
$env:WEBDRIVER_PATH = "${{ steps.setup-chrome.outputs.chromedriver-path }}"
313+
$env:CHROME_PATH = "${{ steps.setup-chrome.outputs.chrome-path }}"
314+
$env:RUST_LOG = "debug"
315+
$env:RUST_BACKTRACE = "1"
316+
317+
Write-Host "Environment variables set:"
318+
Write-Host "WEBDRIVER_PATH: $env:WEBDRIVER_PATH"
319+
Write-Host "CHROME_PATH: $env:CHROME_PATH"
320+
Write-Host "RUST_LOG: $env:RUST_LOG"
321+
Write-Host "RUST_BACKTRACE: $env:RUST_BACKTRACE"
322+
323+
# Verify the paths exist
324+
if (-not (Test-Path $env:WEBDRIVER_PATH)) {
325+
Write-Error "Chromedriver not found at: $env:WEBDRIVER_PATH"
326+
exit 1
327+
}
328+
if (-not (Test-Path $env:CHROME_PATH)) {
329+
Write-Error "Chrome not found at: $env:CHROME_PATH"
330+
exit 1
331+
}
332+
333+
Write-Host "All paths verified, starting cargo test..."
334+
335+
# Run the test directly without PowerShell job complexity
336+
cargo test --verbose --package plotly_static --features chromedriver,webdriver_download tests::save_png -- --nocapture
337+
338+
Write-Host "=== PNG Export Test Completed ==="
339+
148340
build_book:
149341
name: Build Book
150342
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)