CI #49
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: CI | |
on: | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: 'Log level' | |
required: true | |
default: 'warning' | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
- name: Ubuntu | |
os: ubuntu-latest | |
qt_path: /usr/lib/qt5 | |
make_command: make -j$(nproc) install | |
make_environment: | |
export LD_LIBRARY_PATH=$HOME/OpenTOPAS-install/lib:$LD_LIBRARY_PATH | |
export LD_LIBRARY_PATH=$HOME/geant4-install/lib:$LD_LIBRARY_PATH | |
install_dependencies_command: | | |
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 | |
- name: MacOS | |
os: macos-latest | |
qt_path: /opt/homebrew/opt/qt@5 | |
make_command: make -j$(sysctl -n hw.logicalcpu) install | |
make_environment: | |
export DYLD_LIBRARY_PATH=$HOME/OpenTOPAS-install/lib:$DYLD_LIBRARY_PATH | |
export DYLD_LIBRARY_PATH=$HOME/geant4-install/lib:$DYLD_LIBRARY_PATH | |
install_dependencies_command: | | |
brew install qt@5 xquartz | |
extra_gdcm_cmake_options: | | |
-DCMAKE_INSTALL_RPATH=@loader_path \ | |
-DCMAKE_MACOSX_RPATH=ON | |
name: Build and Test (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: ${{ matrix.install_dependencies_command }} | |
shell: bash | |
- name: Cache Geant4 data | |
uses: actions/cache@v4 | |
id: cache-data | |
with: | |
path: ~/geant4-data | |
key: ${{ runner.os }}-geant4-data-v11.1.3-${{ hashFiles('.github/workflows/g4data_urls.txt') }} | |
- 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 and install Geant4 | |
# run: | | |
# cd $HOME | |
# git clone https://github.com/Geant4/geant4 --branch v11.1.3 | |
# mkdir geant4-build && cd geant4-build | |
# cmake ../geant4 -DGEANT4_INSTALL_DATA=OFF \ | |
# -DGEANT4_BUILD_MULTITHREADED=ON \ | |
# -DCMAKE_PREFIX_PATH=${{ matrix.qt_path }} \ | |
# -DGEANT4_USE_QT=ON \ | |
# -DGEANT4_USE_OPENGL_X11=ON \ | |
# -DGEANT4_USE_RAYTRACER_X11=ON \ | |
# -DCMAKE_INSTALL_PREFIX=$HOME/geant4-install | |
# ${{ matrix.make_command }} | |
# 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\ | |
# ${{ matrix.extra_gdcm_cmake_options }} | |
# ${{ matrix.make_command }} | |
# 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 | |
# ${{ matrix.make_command }} | |
# echo "$(readlink -f $HOME/OpenTOPAS-install/bin/)" >> $GITHUB_PATH | |
# shell: bash | |
# - name: Install nrtest and nrtest-topas | |
# run: | | |
# python3 -m venv $HOME/nrtest-env | |
# source $HOME/nrtest-env/bin/activate | |
# python3 -m pip install nrtest | |
# python3 -m pip 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/testing/qi-topas-v4.0.json ./qi-opentopas/apps/ | |
# shell: bash | |
# - name: Run nrtest | |
# id: test_results | |
# run: | | |
# cd qi-opentopas | |
# TODAY=$(date +%Y-%m-%d) | |
# export TOPAS_G4_DATA_DIR=$HOME/geant4-data | |
# ${{ matrix.make_environment }} | |
# echo $(which topas) | |
# source $HOME/nrtest-env/bin/activate | |
# nrtest execute apps/qi-topas-v4.0.json tests/ -o benchmark/$TODAY | |
# python $GITHUB_WORKSPACE/testing/parse_test_results.py benchmark/$TODAY/manifest.json >> "$GITHUB_OUTPUT" | |
# shell: bash | |
# - name: Upload test results | |
# if: always() | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: nrtest-results-${{ matrix.os }} | |
# path: qi-opentopas/benchmark/ | |
# - name: Check test results | |
# if: steps.test_results.outputs.all_tests_passed != 'true' | |
# run: | | |
# echo "Results: ${{ steps.test_results.outputs.passed_tests }}/${{ steps.test_results.outputs.total_tests }} passed" >> $GITHUB_STEP_SUMMARY | |
# exit 1 |