Skip to content

more debug 2

more debug 2 #28

Workflow file for this run

name: CI
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
push:
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt install -y cmake \
libexpat1-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libxt-dev \
xorg-dev \
build-essential \
libharfbuzz-dev \
qtbase5-dev \
qtchooser \
qt5-qmake \
qtbase5-dev-tools
shell: bash
- name: Install dependencies (macOS)
if: matrix.os == 'macos-latest'
run: |
brew install qt@5 git wget cmake xquartz
- name: Cache Geant4 data
uses: actions/cache@v4
id: cache-data
with:
path: ${{ env.HOME }}/geant4-data
key: ${{ runner.os }}-geant4-data-v11.1.3-${{ hashFiles('.github/workflows/g4data_urls.txt') }}
restore-keys: |
${{ runner.os }}-geant4-data-v11.1.3-
- name: Download Geant4 data
if: steps.cache-data.outputs.cache-hit != 'true'
run: |
mkdir -p $HOME/geant4-data
cd $HOME/geant4-data
while read url; do
wget "$url"
done < $GITHUB_WORKSPACE/.github/workflows/g4data_urls.txt
for file in *.tar.gz; do
tar -xzf "$file"
rm "$file"
done
shell: bash
- name: Clone Geant4
run: |
cd $HOME
git clone https://github.com/Geant4/geant4 --branch v11.1.3
shell: bash
- name: Install Geant4 (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
cd $HOME
mkdir geant4-build && cd geant4-build
cmake ../geant4 -DGEANT4_INSTALL_DATA=OFF \
-DGEANT4_BUILD_MULTITHREADED=ON \
-DCMAKE_PREFIX_PATH=/usr/lib/qt5 \
-DGEANT4_USE_QT=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_RAYTRACER_X11=ON \
-DCMAKE_INSTALL_PREFIX=$HOME/geant4-install
make -j$(nproc) install
shell: bash
- name: Install Geant4 (macOS)
if: matrix.os == 'macos-latest'
run: |
cd $HOME
brew install tree
tree /opt/homebrew/
mkdir geant4-build && cd geant4-build
cmake ../geant4 -DGEANT4_INSTALL_DATA=OFF \
-DGEANT4_BUILD_MULTITHREADED=ON \
-DCMAKE_INSTALL_PREFIX=$HOME/geant4-install \
-DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt@5/5.15.11 \
-DGEANT4_USE_QT=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_RAYTRACER_X11=ON
make -j$(nproc) install
shell: bash
- name: Compile GDCM
run: |
cp gdcm-2.6.8.tar.gz $HOME/
cd $HOME
tar -zxf gdcm-2.6.8.tar.gz
mkdir gdcm-{build,install}
cd gdcm-build
cmake ../gdcm-2.6.8 -DGDCM_BUILD_SHARED_LIBS=ON\
-DGDCM_BUILD_DOCBOOK_MANPAGES:BOOL=OFF\
-DCMAKE_INSTALL_PREFIX=../gdcm-install
make -j$(nproc) install
shell: bash
- name: Compile TOPAS and add to PATH
run: |
cd $HOME
mkdir OpenTOPAS-{build,install}
cd OpenTOPAS-build
export Geant4_DIR=$HOME/geant4-install/
export GDCM_DIR=$HOME/gdcm-install/
cmake $GITHUB_WORKSPACE -DCMAKE_INSTALL_PREFIX=../OpenTOPAS-install
make -j$(nproc) install
echo "$(readlink -f $HOME/OpenTOPAS-install/bin/)" >> $GITHUB_PATH
shell: bash
- name: Install nrtest and nrtest-topas
run: |
pip3 install nrtest
pip3 install git+https://github.com/davidchall/nrtest-topas.git
shell: bash
- name: Clone qi-test and add configuration file
run: |
git clone https://github.com/OpenTOPAS/qi-opentopas.git
cp $GITHUB_WORKSPACE/.github/workflows/qi-topas-v4.0.json ./qi-opentopas/apps/
shell: bash
- name: Run nrtest
run: |
cd qi-opentopas
TODAY=$(date +%Y-%m-%d)
export TOPAS_G4_DATA_DIR=$HOME/geant4-data
export LD_LIBRARY_PATH=$HOME/OpenTOPAS-install/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$HOME/geant4-install/lib:$LD_LIBRARY_PATH
topas --version
nrtest execute apps/qi-topas-v4.0.json tests/ -o benchmark/$TODAY
echo $(readlink -f benchmark/$TODAY)
shell: bash
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: nrtest-results-${{ matrix.os }}
path: qi-opentopas/benchmark/