Windows amd64 full tests of OpenQuake Engine #488
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows amd64 full tests of OpenQuake Engine | |
on: | |
workflow_dispatch: | |
inputs: | |
git-ref: | |
description: Git Ref | |
default: master | |
required: true | |
schedule: | |
- cron: "00 19 * * *" | |
push: | |
branches: [windows-all-tests] | |
jobs: | |
install_oq: | |
runs-on: ${{ matrix.os }} | |
env: | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_DEF_BR: ${{ github.event.repository.default_branch }} | |
GITHUB_REF: ${{ github.ref }} | |
GITHUB_HD_REF: ${{ github.head_ref }} | |
GITHUB_BS_REF: ${{ github.base_ref }} | |
BRANCH: ${{ github.event.inputs.git-ref }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-2022, windows-2019] | |
python-version: ["3.11", "3.12"] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
# This Checkout use git-ref keyword from dispatch | |
- name: Clone Repository (Master) | |
uses: actions/checkout@v4 | |
if: github.event.inputs.git-ref == '' | |
- name: Clone Repository (Custom Ref) | |
uses: actions/checkout@v4 | |
if: github.event.inputs.git-ref != '' | |
with: | |
ref: ${{ github.event.inputs.git-ref }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# You can test your matrix by printing the current Python version | |
- name: Display Python version and check OS, after install OQ and test | |
env: | |
BRANCH: ${{ github.event.inputs.git-ref }} | |
run: | | |
$need_to_run = 0 | |
@" | |
import sys | |
import platform | |
py_version = ".".join(map(str, sys.version_info[:2])) | |
os_version = platform.platform(terse=True) | |
if py_version == "3.12" and os_version == "Windows-2019Server" : | |
print (1) | |
"@ | Tee-Object -FilePath "check.py" -Append | |
$need_to_run = python check.py | |
echo "to_run=$need_to_run" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append | |
Write-Host "Check value: $need_to_run" | |
if ($need_to_run -eq 1) { | |
Write-Host "We do not support this OS and python3.12" | |
exit 0 | |
} | |
else | |
{ | |
echo "${Env:environment}" | |
Write-Host $Env:GITHUB_REF | |
echo "Branch environment" | |
Write-Host $Env:BRANCH | |
set PIP_DEFAULT_TIMEOUT=100 | |
python -m pip install pip --upgrade | |
#echo Branch to test %BRANCH% | |
#if %BRANCH%=="" (python install.py devel) else (python install.py devel --version %BRANCH%) | |
write-Host "Branch to test $($Env:BRANCH)" | |
# | |
if ($Env:BRANCH) | |
{ | |
Write-Host "Install with workflow_dispatch" | |
Write-Host "python install.py devel --version ${env:BRANCH}" | |
python install.py devel --version ${env:BRANCH} | |
} | |
else | |
{ | |
Write-Host "Install on user mode on scheduled task" | |
Write-Host "python install.py devel " | |
python install.py devel | |
} | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
python -m pip install pytest pyshp flake8 | |
} | |
- name: Run tests for calculators | |
if: always() && env.to_run == 0 | |
run: | | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
oq --version | |
Start-Job -ScriptBlock{& 'C:\Users\runneradmin\openquake\Scripts\oq.exe' engine --upgrade-db} | |
cd D:\a\oq-engine\oq-engine | |
pytest --doctest-modules --disable-warnings --color=yes --durations=10 openquake/calculators | |
- name: Run tests for hazardlib, sep, commands, engine, hmtk, risklib, commonlib and baselib to test installation | |
if: always() && env.to_run == 0 | |
run: | | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
oq --version | |
Start-Job -ScriptBlock{& 'C:\Users\runneradmin\openquake\Scripts\oq.exe' engine --upgrade-db} | |
sleep 10 | |
cd D:\a\oq-engine\oq-engine\openquake | |
pytest --doctest-modules --disable-warnings --color=yes --durations=10 hazardlib sep commands engine hmtk risklib commonlib baselib | |
- name: Run tests for the engine server in public mode to test installation | |
if: always() && env.to_run == 0 | |
run: | | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
oq --version | |
Start-Job -ScriptBlock{& 'C:\Users\runneradmin\openquake\Scripts\oq.exe' engine --upgrade-db} | |
sleep 10 | |
cd D:\a\oq-engine\oq-engine | |
$Env:OQ_APPLICATION_MODE='PUBLIC' | |
# -v 2 also logs the test names | |
python .\openquake\server\manage.py test -v 2 tests.test_public_mode | |
- name: Run tests for the engine server in read-only mode to test installation | |
if: always() && env.to_run == 0 | |
run: | | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
oq --version | |
Start-Job -ScriptBlock{& 'C:\Users\runneradmin\openquake\Scripts\oq.exe' engine --upgrade-db} | |
sleep 10 | |
cd D:\a\oq-engine\oq-engine | |
$Env:OQ_APPLICATION_MODE='READ_ONLY' | |
# -v 2 also logs the test names | |
python .\openquake\server\manage.py test -v 2 tests.test_read_only_mode | |
- name: Run all demos | |
if: env.to_run == 0 | |
run: | | |
C:\Users\runneradmin\openquake\Scripts\activate.ps1 | |
oq --version | |
Start-Job -ScriptBlock{& 'C:\Users\runneradmin\openquake\Scripts\oq.exe' engine --upgrade-db} | |
Write-Host "Run all demos having only job.ini" | |
$iniFilePaths = Get-ChildItem D:\a\oq-engine\oq-engine\demos -Recurse -Filter job.ini | |
foreach($iniFilePath in $iniFilePaths) { | |
Write-Host "Run $($iniFilePath.FullName)" | |
oq engine --run $iniFilePath.FullName --exports csv,hdf5 | |
} | |
Write-Host "Run all demos having only job_hazard.ini and job_risk.ini" | |
$demoDirs = Get-ChildItem D:\a\oq-engine\oq-engine\demos -Recurse -Directory | |
foreach($demoDir in $demoDirs) { | |
$jobHazardPaths = Get-ChildItem $demoDir -Filter job_hazard.ini | |
foreach($jobHazardPath in $jobHazardPaths) { | |
Write-Host "Run $($jobHazardPath.FullName)" | |
oq engine --run $jobHazardPath.FullName --exports csv,hdf5 | |
$jobRiskPath = $demoDir.FullName + "\job_risk.ini" | |
Write-Host "Run $($jobRiskPath)" | |
oq engine --run $jobRiskPath --exports csv,hdf5 --hc -1 | |
} | |
} |