Skip to content

Package for Windows #419

Package for Windows

Package for Windows #419

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
# push:
# branches:
# -
schedule:
- cron: "0 5 * * *"
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 }}
GIT_BRANCH: ${{ github.ref }}
GIT_COMMIT_SHA: ${{ github.sha }}
steps:
- name: Clone Repository (Latest)
uses: actions/checkout@v3
if: github.event.inputs.git-ref == ''
- name: Clone Repository (Custom Ref)
uses: actions/checkout@v3
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}"
sleep 2
bash -x ci/windows_package.sh
#
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: Installer
path: /home/runner/work/oq-builders/oq-builders/out
retention-days: 5
Test_OQ:
needs: Build_Installer
runs-on: windows-latest
steps:
- name: Download Windows Installer from build job
uses: actions/download-artifact@v3
with:
name: Installer
- name: Execute the Installer
run: |
$Install = Get-ChildItem -Filter *.exe
Start-Process -FilePath $Install.Fullname -ArgumentList "/S" -Wait
cd "C:\Program Files\OpenQuake Engine\"
$env:PATH="C:\Program Files\OpenQuake Engine\python3\Scripts"
Write-Host ${env:PATH}
pwd
- name: Run oq
run: |
set mypath="C:\Program Files\OpenQuake Engine"
set PATH=%mypath%\python;%mypath%\python3\Scripts;%PATH%
cd "C:\Program Files\Openquake Engine"
dir
oq --version
oq.exe engine --run "https://downloads.openquake.org/pkgs/test_event_based_risk_inputs_bc.zip"
shell: cmd
- name: Run oq webui console and curl for the standalone tools
run: |
Start-Job -ScriptBlock{& 'C:\Program Files\OpenQuake Engine\python3\Scripts\oq.exe' webui start 127.0.0.1:8800 -s}
ping 127.0.0.1 -n 6 > null
Get-Job
netstat -o -n -a | findstr 8800
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/
Upload_Installer:
needs: Test_OQ
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download Windows Installer from build job
uses: actions/download-artifact@v3
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}