51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
name: epanet2-win32
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
- cron: '0 0 1 * *'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup build directory
|
|
run: mkdir buildproducts
|
|
|
|
- name: CMake
|
|
working-directory: ./buildproducts
|
|
shell: pwsh
|
|
run: |
|
|
$retryCount = 0
|
|
$maxRetries = 3
|
|
do {
|
|
cmake .. -A Win32 && cmake --build . --config Release
|
|
if ($LASTEXITCODE -eq 0) { break }
|
|
Write-Host "Retry $($retryCount + 1)/$maxRetries..."
|
|
Start-Sleep -Seconds 10
|
|
$retryCount++
|
|
} while ($retryCount -lt $maxRetries)
|
|
if ($retryCount -eq $maxRetries) {
|
|
Write-Host "CMake build failed after $maxRetries attempts."
|
|
exit 1
|
|
}
|
|
|
|
- name: Copy header files to build directory
|
|
run: |
|
|
copy include\epanet2.h buildproducts\bin\Release
|
|
copy include\epanet2_2.h buildproducts\bin\Release
|
|
copy include\epanet2_enums.h buildproducts\bin\Release
|
|
shell: cmd
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epanet2-win32
|
|
path: buildproducts\bin\Release
|