Package for Windows #914
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: Package for Windows | |
on: | |
workflow_dispatch: | |
inputs: | |
git-ref: | |
description: Branch of gem/oq-builders repository | |
default: master | |
required: true | |
path: | |
description: Path to upload packages | |
default: /oq-engine/ | |
required: true | |
oq-ref: | |
description: Branch of Openquake Engine | |
default: master | |
required: true | |
oq-rel: | |
description: Build Number of Openquake Engine | |
default: 1 | |
required: false | |
oq-science: | |
description: Build oq-mbtk and vmtk | |
default: 0 | |
required: true | |
# push: | |
# branches: | |
# - | |
schedule: | |
- cron: "30 21 * * *" | |
jobs: | |
Build_Installer: | |
runs-on: ubuntu-latest | |
env: | |
GEM_SET_BRANCH: ${{ github.event.inputs.oq-ref }} | |
GEM_SET_BRANCH_TOOLS: ${{ github.event.inputs.oq-ref }} | |
GEM_SET_RELEASE: ${{ github.event.inputs.oq-rel }} | |
GEM_SET_BUILD_SCIENCE: ${{ github.event.inputs.oq-science }} | |
GIT_BRANCH: ${{ github.ref }} | |
GIT_COMMIT_SHA: ${{ github.sha }} | |
steps: | |
- name: Clone Repository (Latest) | |
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: Docker build of the container and create installer | |
run: | | |
echo "Check variable for build packages" | |
echo "GEM_SET_BRANCH: ${GEM_SET_BRANCH}" | |
echo "GEM_SET_BRANCH_TOOLS: ${GEM_SET_BRANCH_TOOLS}" | |
echo "GEM_SET_RELEASE: ${GEM_SET_RELEASE}" | |
echo "GEM_SET_BUILD_SCIENCE: ${GEM_SET_BUILD_SCIENCE}" | |
sleep 2 | |
bash -x ci/windows_package.sh | |
# | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Installer | |
path: /home/runner/work/oq-builders/oq-builders/out | |
retention-days: 5 | |
Test_OQ: | |
needs: Build_Installer | |
runs-on: windows-2019 | |
timeout-minutes: 45 | |
steps: | |
- name: Download Windows Installer from build job | |
uses: actions/download-artifact@v4 | |
with: | |
name: Installer | |
- name: Execute the Installer | |
run: | | |
$Install = Get-ChildItem -Filter *.exe | |
Start-Process -FilePath $Install.Fullname -ArgumentList "/S" -Wait | |
$env:PATH += ";$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
Write-Host ${env:PATH} | |
pwd | |
- name: Clone Repository (Latest) | |
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: Run oq | |
run: | | |
$env:PATH += ";$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
oq.exe --version | |
oq.exe engine --run "https://downloads.openquake.org/pkgs/test_event_based_risk_inputs_bc.zip" | |
oq.exe engine --run "https://downloads.openquake.org/jobs/M4_Exercise.zip" | |
oq.exe engine --list-risk-calculations | |
- name: Run oq webui console and curl for the standalone tools | |
run: | | |
$env:PATH += ";$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
Write-Host ${env:PATH} | |
cd "$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
Start-Job -ScriptBlock{& oq.exe webui start 127.0.0.1:8800 -s 2>&1 > "$env:LOCALAPPDATA\Temp\webui.log" } | |
ping 127.0.0.1 -n 6 > null | |
Get-Job | |
netstat -o -n -a | findstr 8800 | |
Write-Host "Test webui and tools Web pages" | |
ping 127.0.0.1 -n 6 > null | |
curl.exe -I -G http://127.0.0.1:8800/engine | |
ping 127.0.0.1 -n 6 > null | |
curl.exe -X HEAD -I http://127.0.0.1:8800/ipt/ | |
ping 127.0.0.1 -n 6 > null | |
curl.exe -X HEAD -I http://127.0.0.1:8800/taxonomy/ | |
ping 127.0.0.1 -n 6 > null | |
curl.exe -X HEAD -I http://127.0.0.1:8800/taxtweb/ | |
ping 127.0.0.1 -n 6 > null | |
oq.exe engine --list-risk-calculations | |
curl.exe -v --fail -G http://127.0.0.1:8800/engine/1/outputs | |
- name: Upload Artifact WebUI log | |
uses: actions/upload-artifact@v4 | |
with: | |
name: WebUI_log | |
path: C:\\Users\\runneradmin\\AppData\\Local\\Temp\\webui.log | |
retention-days: 5 | |
- name: Test installation of oq-mbtk | |
run: | | |
$env:PATH="$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3" | |
$env:PATH="$env:PATH;$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
python.exe -V | |
cd "$env:LOCALAPPDATA\Programs\OpenQuake Engine" | |
Remove-Item -Path .\oq-mbtk\openquake\cat\__init__.py | |
python.exe -m pip install pytest | |
pytest -vsx .\oq-mbtk\openquake\cat | |
if: github.event.inputs.oq-science == '1' | |
- name: Compare files of VMTK | |
run: | | |
$env:PATH="$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3" | |
$env:PATH="$env:PATH;$env:LOCALAPPDATA\Programs\OpenQuake Engine\python3\Scripts" | |
python.exe -V | |
cd "$env:LOCALAPPDATA\Programs\OpenQuake Engine" | |
cd "oq-vmtk\demonstration_files" | |
dir | |
python.exe computation_scripts_example_lite.py | |
cd "outputs\out_dynamic_an_edps_imls\CR_LFINF-CDN_H1" | |
dir | |
$dirB = "$env:GITHUB_WORKSPACE\ci\to_compare" | |
$dirA = "$env:LOCALAPPDATA\Programs\OpenQuake Engine\oq-vmtk\demonstration_files\outputs\out_dynamic_an_edps_imls\CR_LFINF-CDN_H1" | |
if ( Compare-Object (Get-Content $dirA\max_accels.csv) -DifferenceObject (Get-Content $dirB\max_accels.csv) -SyncWindow 0 ) { exit 1} else {"Files are the same"} | |
if ( Compare-Object (Get-Content $dirA\imls.csv) -DifferenceObject (Get-Content $dirB\imls.csv) -SyncWindow 0 ) {exit 1} else {"Files are the same"} | |
if ( Compare-Object (Get-Content $dirA\max_disps.csv) -DifferenceObject (Get-Content $dirB\max_disps.csv) -SyncWindow 0 ) {exit 1} else {"Files are the same"} | |
if: github.event.inputs.oq-science == '1' | |
Upload_Installer: | |
needs: Test_OQ | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Windows Installer from build job | |
uses: actions/download-artifact@v4 | |
with: | |
name: Installer | |
- name: rsync to downloads.openquake.org | |
shell: bash | |
env: | |
DOWNLOAD_SSH: ${{ secrets.DOWNLOAD_ARTIFACTS }} | |
folder: ${{ github.event.inputs.path }} | |
run: | | |
gpg --quiet --batch --yes --decrypt --passphrase="$DOWNLOAD_SSH" --output ./.deploy_rsa ./.oq_builders.enc | |
chmod 600 ./.deploy_rsa | |
eval $(ssh-agent -s) && ssh-add ./.deploy_rsa | |
# print value of folder | |
echo "Folder to upload packages: ${folder}" | |
if test -z "$folder" | |
then | |
echo "\$folder is empty" | |
folder=oq-engine/nightly/ | |
echo $folder | |
else | |
echo "\$folder is NOT empty" | |
fi | |
#rsync -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 332' -ax OpenQuake_Engine* [email protected]:/mnt/box/openquake/downloads/pkgs/windows/oq-engine/nightly/ | |
rsync -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 332' -ax OpenQuake_Engine* [email protected]:/mnt/box/openquake/downloads/pkgs/windows/${folder} |