Merge pull request #646 from OpenGATE/consolidate_init #3264
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: | |
push: | |
paths-ignore: | |
- 'docs/**' | |
branches: [ master ] | |
tags: | |
- '*' | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
branches: [ master ] | |
schedule: | |
- cron: '0 0 * * 0,3' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.ref }}-ci | |
cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
jobs: | |
build_opengate_wheel: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: [3.9] | |
steps: | |
- name: Checkout github repo | |
uses: actions/checkout@v4 | |
- name: Checkout submodules | |
shell: bash -l {0} | |
run: | | |
export GIT_SSL_NO_VERIFY=1 | |
git submodule update --init --recursive | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: 'x64' | |
- name: Create opengate Wheel | |
run: | | |
rm -rf $GITHUB_WORKSPACE/opengate/tests/data | |
cp $GITHUB_WORKSPACE/.git/modules/gam-tests/data/HEAD $GITHUB_WORKSPACE/opengate/tests/ | |
pip install build | |
python -m build | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist-opengate | |
path: dist/ | |
build_opengate_core_wheel: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-13, macos-14, windows-latest] | |
python-version: [3.9, '3.10', '3.11', '3.12'] | |
exclude: | |
- os: macos-14 | |
python-version: 3.9 | |
- os: macos-14 | |
python-version: '3.10' | |
env: | |
GEANT4_VERSION: 'v11.3.0' | |
ITK_VERSION: 'v5.2.1' | |
steps: | |
- name: Checkout github repo | |
uses: actions/checkout@v4 | |
- name: Checkout submodules | |
shell: bash -l {0} | |
run: | | |
if [[ ${{ matrix.os }} == "windows-latest" ]]; then | |
set "GIT_SSL_NO_VERIFY=1" | |
else | |
export GIT_SSL_NO_VERIFY=1 | |
fi | |
git submodule update --init --recursive | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: 'x64' | |
- name: Get OS version | |
id: get-os-version | |
shell: bash -l {0} | |
run: | | |
if [[ ${{ matrix.os }} == "ubuntu-latest" ]]; then | |
varOS=`cat /etc/os-release | grep "VERSION=" | grep -oP '(?<=\").*?(?=\")'` | |
varOS=($varOS) | |
echo "release=${varOS[0]}" >> $GITHUB_OUTPUT | |
elif [[ ${{ matrix.os }} == "macos-13" ]] || [[ ${{ matrix.os }} == "macos-14" ]]; then | |
varOS=`sw_vers | grep "ProductVersion:"` | |
varOS="${varOS#*:}" | |
echo "release=${varOS:1}" >> $GITHUB_OUTPUT | |
else | |
varOS=`windows` | |
echo "release=${varOS}" >> $GITHUB_OUTPUT | |
fi | |
- name: Cache modules | |
id: cache_opengate_core_dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/software | |
key: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
restore-keys: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
- name: Create opengate_core Wheel Linux | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
if [ ${{ matrix.python-version }} == "3.9" ]; then | |
export PYTHONFOLDER="cp39-cp39" | |
elif [ ${{ matrix.python-version }} == "3.10" ]; then | |
export PYTHONFOLDER="cp310-cp310" | |
elif [ ${{ matrix.python-version }} == "3.11" ]; then | |
export PYTHONFOLDER="cp311-cp311" | |
elif [ ${{ matrix.python-version }} == "3.12" ]; then | |
export PYTHONFOLDER="cp312-cp312" | |
fi | |
mkdir -p $HOME/software | |
docker run --rm -e "PYTHONFOLDER=${PYTHONFOLDER}" -v $GITHUB_WORKSPACE:/home tbaudier/opengate_core:${{ env.GEANT4_VERSION }} /home/.github/workflows/createWheelLinux.sh | |
ls wheelhouse | |
rm -rf dist | |
mv wheelhouse dist | |
sudo chown -R runner:docker dist | |
- uses: conda-incubator/setup-miniconda@v3 | |
if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') || (matrix.os == 'windows-latest') | |
with: | |
miniconda-version: "latest" | |
auto-update-conda: true | |
activate-environment: opengate_core | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Homebrew | |
if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- name: Create opengate_core Wheel Mac | |
if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') | |
shell: bash -l {0} | |
run: | | |
brew install [email protected] || true | |
brew link --overwrite [email protected] | |
#brew update | |
#rm -rf /usr/local/bin/python3.1*-config /usr/local/bin/2to3-3.1* /usr/local/bin/idle3.1* /usr/local/bin/pydoc3.1* /usr/local/bin/python3.1* | |
#rm -rf /usr/local/bin/python3-config /usr/local/bin/2to3 /usr/local/bin/idle3 /usr/local/bin/pydoc3 /usr/local/bin/python3 | |
brew install --force --verbose --overwrite \ | |
ccache \ | |
fftw \ | |
libomp \ | |
xquartz \ | |
xerces-c \ | |
wget | |
brew uninstall --ignore-dependencies libxext | |
brew uninstall --ignore-dependencies libx11 | |
export LDFLAGS="-L/usr/local/opt/llvm/lib" | |
export CPPFLAGS="-I/usr/local/opt/llvm/include -fopenmp" | |
conda info | |
conda list | |
which python | |
python --version | |
export PATH="/usr/local/miniconda/envs/opengate_core/bin/:$PATH" | |
pip install wget colored | |
pip install wheel delocate | |
if [[ ${{ matrix.os }} == "macos-13" ]]; then | |
conda install conda-forge::qt6-main conda-forge::qt6-3d | |
else | |
brew install qt | |
fi | |
mkdir -p $HOME/software | |
if [ "${{ steps.cache_opengate_core_dependencies.outputs.cache-hit }}" != 'true' ]; then | |
cd $HOME/software | |
mkdir geant4 | |
cd geant4 | |
mkdir src bin data | |
git clone --branch $GEANT4_VERSION https://github.com/Geant4/geant4.git --depth 1 src | |
cd bin | |
cmake -DCMAKE_CXX_FLAGS=-std=c++17 \ | |
-DGEANT4_INSTALL_DATA=OFF \ | |
-DGEANT4_INSTALL_DATADIR=$HOME/software/geant4/data \ | |
-DGEANT4_USE_QT=ON \ | |
-DGEANT4_USE_OPENGL_X11=OFF \ | |
-DGEANT4_USE_QT_QT6=ON \ | |
-DGEANT4_USE_SYSTEM_EXPAT=OFF \ | |
-DGEANT4_BUILD_MULTITHREADED=ON \ | |
-DGEANT4_USE_GDML=ON \ | |
../src | |
make -j4 | |
cd $HOME/software | |
mkdir itk | |
cd itk | |
mkdir src bin | |
git clone --branch $ITK_VERSION https://github.com/InsightSoftwareConsortium/ITK.git --depth 1 src | |
cd bin | |
cmake -DCMAKE_CXX_FLAGS=-std=c++17 \ | |
-DBUILD_TESTING=OFF \ | |
-DITK_USE_FFTWD=ON \ | |
-DITK_USE_FFTWF=ON \ | |
-DITK_USE_SYSTEM_FFTW:BOOL=ON \ | |
../src | |
make -j4 | |
fi | |
cd $GITHUB_WORKSPACE | |
source $HOME/software/geant4/bin/geant4make.sh | |
export CMAKE_PREFIX_PATH=$HOME/software/geant4/bin:$HOME/software/itk/bin/:${CMAKE_PREFIX_PATH} | |
cd core | |
mkdir opengate_core/plugins | |
if [[ ${{ matrix.os }} == "macos-13" ]]; then | |
cp -r /Users/runner/miniconda3/envs/opengate_core/lib/qt6/plugins/platforms/* opengate_core/plugins/ | |
cp -r /Users/runner/miniconda3/envs/opengate_core/lib/qt6/plugins/imageformats opengate_core/plugins/ | |
else | |
cp -r /opt/homebrew/share/qt/plugins/platforms/* opengate_core/plugins/ | |
cp -r /opt/homebrew/share/qt/plugins/imageformats/* opengate_core/plugins/ | |
fi | |
python3 setup.py sdist bdist_wheel | |
ls dist | |
if [[ ${{ matrix.os }} == "macos-13" ]]; then | |
export DYLD_LIBRARY_PATH=$HOME/software/geant4/bin/BuildProducts/lib:/Users/runner/miniconda3/envs/opengate_core/lib/qt6/plugins/platforms:/opt/X11/lib/:$DYLD_LIBRARY_PATH:/Users/runner/miniconda3/envs/opengate_core/lib | |
else | |
export DYLD_LIBRARY_PATH=$HOME/software/geant4/bin/BuildProducts/lib:/opt/homebrew/share/qt/plugins/platforms/:/opt/X11/lib/:$DYLD_LIBRARY_PATH:/opt/homebrew/lib | |
python -c "import os,delocate; print(os.path.join(os.path.dirname(delocate.__file__), 'tools.py'));quit()" | xargs -I{} sed -i."" "s/first, /input.pop('i386',None); first, /g" {} | |
fi | |
delocate-listdeps --all dist/*.whl | |
delocate-wheel -w fixed_wheels -v dist/*.whl | |
rm -rf dist | |
ls fixed_wheels | |
delocate-listdeps --all fixed_wheels/*.whl | |
mv fixed_wheels dist | |
cd dist | |
if [[ ${{ matrix.os }} == "macos-13" ]]; then | |
find . -name '*whl' -exec bash -c ' mv $0 ${0/macosx_13_0/macosx_10_9}' {} \; | |
fi | |
cd ../.. | |
mv core/dist . | |
- name: Create opengate_core Wheel Windows | |
if: matrix.os == 'windows-latest' | |
shell: bash -l {0} | |
run: | | |
conda info | |
conda install cmake | |
cmake --version | |
conda list | |
which python | |
python --version | |
export PATH="/usr/local/miniconda/envs/opengate_core/bin/:$PATH" | |
pip install wheel wget colored | |
pip install cibuildwheel==2.21.1 | |
which pip | |
mkdir -p $HOME/software | |
if [ "${{ steps.cache_opengate_core_dependencies.outputs.cache-hit }}" != 'true' ]; then | |
cd $HOME/software | |
mkdir geant4 | |
cd geant4 | |
mkdir src bin data | |
git clone --branch $GEANT4_VERSION https://github.com/Geant4/geant4.git --depth 1 src | |
cd bin | |
cmake -DGEANT4_INSTALL_DATA=ON \ | |
-DGEANT4_INSTALL_DATADIR=$HOME/software/geant4/data \ | |
-DGEANT4_BUILD_MULTITHREADED=ON \ | |
../src | |
cmake --build . --config Release | |
cd $HOME/software | |
mkdir itk | |
cd itk | |
mkdir src bin | |
git clone --branch $ITK_VERSION https://github.com/InsightSoftwareConsortium/ITK.git --depth 1 src | |
cd bin | |
cmake -DCMAKE_CXX_FLAGS=-std=c++17 \ | |
-DBUILD_TESTING=OFF \ | |
../src | |
cmake --build . --config Release | |
fi | |
cd $GITHUB_WORKSPACE | |
source $HOME/software/geant4/bin/geant4make.sh | |
export CMAKE_PREFIX_PATH=$HOME/software/geant4/bin:$HOME/software/itk/bin/:${CMAKE_PREFIX_PATH} | |
cd core | |
if [[ ${{ matrix.python-version }} == "3.9" ]]; then | |
export CIBW_BUILD="cp39-win_amd64" | |
elif [[ ${{ matrix.python-version }} == "3.10" ]]; then | |
export CIBW_BUILD="cp310-win_amd64" | |
elif [[ ${{ matrix.python-version }} == "3.11" ]]; then | |
export CIBW_BUILD="cp311-win_amd64" | |
elif [[ ${{ matrix.python-version }} == "3.12" ]]; then | |
export CIBW_BUILD="cp312-win_amd64" | |
fi | |
find $HOME/software/geant4/bin/ -iname "*.dll" | |
ls $HOME/software/geant4/bin/BuildProducts/Release/bin | |
ls $HOME/software/geant4/bin/BuildProducts/Release/lib/ | |
export CIBW_BEFORE_BUILD="python -m pip install colored" | |
python -m cibuildwheel --output-dir dist | |
cd .. | |
mkdir core/dist2 | |
pip install pefile machomachomangler | |
ls core/dist | |
python $GITHUB_WORKSPACE\\.github\\workflows\\delocateWindows.py core\\dist -w core\\dist2 -d C:\\Users\\runneradmin\\software\\geant4\\bin\\BuildProducts\\Release\\bin | |
mv core/dist2 dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist-${{ matrix.os }}-${{ matrix.python-version }}-opengate-core | |
path: dist/ | |
build_opengate_core_novis_wheel: | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: [3.9, '3.10', '3.11', '3.12'] | |
env: | |
GEANT4_VERSION: 'v11.3.0' | |
ITK_VERSION: 'v5.2.1' | |
steps: | |
- name: Checkout github repo | |
uses: actions/checkout@v4 | |
- name: Checkout submodules | |
shell: bash -l {0} | |
run: | | |
export GIT_SSL_NO_VERIFY=1 | |
git submodule update --init --recursive | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: 'x64' | |
- name: Get OS version | |
id: get-os-version | |
shell: bash -l {0} | |
run: | | |
varOS=`cat /etc/os-release | grep "VERSION=" | grep -oP '(?<=\").*?(?=\")'` | |
varOS=($varOS) | |
echo "release=${varOS[0]}" >> $GITHUB_OUTPUT | |
- name: Cache modules | |
id: cache_opengate_core_dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/software | |
key: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
restore-keys: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
- name: Create opengate_core_novis Wheel Linux | |
run: | | |
if [ ${{ matrix.python-version }} == "3.9" ]; then | |
export PYTHONFOLDER="cp39-cp39" | |
elif [ ${{ matrix.python-version }} == "3.10" ]; then | |
export PYTHONFOLDER="cp310-cp310" | |
elif [ ${{ matrix.python-version }} == "3.11" ]; then | |
export PYTHONFOLDER="cp311-cp311" | |
elif [ ${{ matrix.python-version }} == "3.12" ]; then | |
export PYTHONFOLDER="cp312-cp312" | |
fi | |
mkdir -p $HOME/software | |
docker run --rm -e "PYTHONFOLDER=${PYTHONFOLDER}" -v $GITHUB_WORKSPACE:/home tbaudier/opengate_core:${{ env.GEANT4_VERSION }}_novis /home/.github/workflows/createWheelLinux_novis.sh | |
ls wheelhouse | |
rm -rf dist | |
mv wheelhouse dist | |
sudo chown -R runner:docker dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist-${{ matrix.os }}-${{ matrix.python-version }}-opengate-core-novis | |
path: dist/ | |
publish_wheel: | |
runs-on: ubuntu-latest | |
needs: [build_opengate_wheel, build_opengate_core_wheel] | |
steps: | |
- name: Checkout github repo | |
uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: dist-* | |
merge-multiple: true | |
path: dist/ | |
- name: Separate the wheels | |
run: | | |
mkdir dist_opengate_core dist_opengate dist_opengate_core_novis | |
mv dist/opengate_core_novis-* dist_opengate_core_novis/ || true | |
mv dist/opengate_core-* dist_opengate_core/ | |
mv dist/opengate-* dist_opengate/ | |
- name: Publish to PyPI opengate_core_novis | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_OPENGATE_CORE_NOVIS }} | |
packages_dir: dist_opengate_core_novis/ | |
skip_existing: true | |
- name: Publish to PyPI opengate_core | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_OPENGATE_CORE }} | |
packages_dir: dist_opengate_core/ | |
skip_existing: true | |
- name: Publish to PyPI opengate | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_OPENGATE }} | |
packages_dir: dist_opengate/ | |
skip_existing: true | |
# ssh_session: | |
# env: | |
# GEANT4_VERSION: 'v11.3.0' | |
# ITK_VERSION: 'v5.2.1' | |
# runs-on: macos-13 | |
# steps: | |
# - name: Checkout github repo | |
# uses: actions/checkout@v4 | |
# - name: Checkout submodules | |
# shell: bash -l {0} | |
# run: | | |
# export GIT_SSL_NO_VERIFY=1 | |
# git submodule update --init --recursive | |
# - name: Set up Python | |
# uses: actions/setup-python@v5 | |
# with: | |
# python-version: 3.9 | |
# architecture: 'x64' | |
# - name: Get OS version | |
# id: get-os-version | |
# shell: bash -l {0} | |
# run: | | |
# varOS=`sw_vers | grep "ProductVersion:"` | |
# varOS="${varOS#*:}" | |
# echo "release=${varOS:1}" >> $GITHUB_OUTPUT | |
# - name: Cache modules | |
# id: cache_opengate_core_dependencies | |
# uses: actions/cache@v4 | |
# with: | |
# path: ~/software | |
# key: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
# restore-keys: ${{ runner.os }}-${{ steps.get-os-version.outputs.release }}_geant4_${{ env.GEANT4_VERSION }}_itk_${{ env.ITK_VERSION }}_build2 | |
# - uses: conda-incubator/setup-miniconda@v3 | |
# with: | |
# miniconda-version: "latest" | |
# auto-update-conda: true | |
# activate-environment: opengate_core | |
# python-version: 3.9 | |
# - name: Set up Homebrew | |
# id: set-up-homebrew | |
# uses: Homebrew/actions/setup-homebrew@master | |
# - name: Start SSH session | |
# uses: luchihoratiu/debug-via-ssh@main | |
# with: | |
# NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }} | |
# SSH_PASS: ${{ secrets.SSH_PASS }} | |
test_wheel: | |
runs-on: ${{ matrix.os }} | |
needs: [build_opengate_wheel, build_opengate_core_wheel] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-13, windows-latest] | |
python-version: [3.9, '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: dist-* | |
merge-multiple: true | |
path: dist/ | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: 'x64' | |
- name: Run tests | |
shell: bash {0} | |
run: | | |
if [[ ${{ matrix.python-version }} == "3.9" ]]; then | |
export PYTHONFOLDER="cp39-cp39" | |
elif [[ ${{ matrix.python-version }} == "3.10" ]]; then | |
export PYTHONFOLDER="cp310-cp310" | |
elif [[ ${{ matrix.python-version }} == "3.11" ]]; then | |
export PYTHONFOLDER="cp311-cp311" | |
elif [[ ${{ matrix.python-version }} == "3.12" ]]; then | |
export PYTHONFOLDER="cp312-cp312" | |
fi | |
if [[ ${{ matrix.os }} == "ubuntu-latest" ]]; then | |
export OSNAME="manylinux" | |
export PLATFORM="x86_" | |
pip install torch --extra-index-url https://download.pytorch.org/whl/cpu | |
elif [[ ${{ matrix.os }} == "macos-13" ]]; then | |
export OSNAME="macosx" | |
export PLATFORM="x86_" | |
which python | |
python --version | |
pip install torch | |
elif [[ ${{ matrix.os }} == "windows-latest" ]]; then | |
export OSNAME="win" | |
export PLATFORM="amd" | |
pip install torch | |
fi | |
pip install SimpleITK | |
pip install gaga_phsp==0.7.4 | |
pip install dist/opengate_core-*-${PYTHONFOLDER}-${OSNAME}*_${PLATFORM}64.whl | |
pip install dist/opengate-*.whl | |
export GIT_SSL_NO_VERIFY=1 | |
if [[ ${{ matrix.os }} == "ubuntu-latest" ]]; then | |
path=`opengate_library_path.py -p site_packages` | |
export LD_LIBRARY_PATH="${path}/opengate_core.libs":${LD_LIBRARY_PATH} | |
fi | |
if [[ ${{ matrix.os }} == "windows-latest" ]]; then | |
path=`opengate_library_path.py -p site_packages` | |
export LD_LIBRARY_PATH="${path}/opengate_core.libs":${LD_LIBRARY_PATH} | |
export PATH="${path}\\opengate_core.libs":${PATH} | |
fi | |
dashboard_path=`opengate_library_path.py -p tests` | |
pip freeze | |
if [ "${{ github.event_name }}" = "schedule" ]; then | |
OutputTest=$(opengate_tests) | |
else | |
OutputTest=$(opengate_tests -r) | |
fi | |
echo "$OutputTest" | |
ls $dashboard_path/../output_dashboard/ | |
cp -r $dashboard_path/../output_dashboard . | |
OutputTest=$(echo "$OutputTest" | tail -1) | |
if [[ "$OutputTest" != "True" ]]; then | |
exit -1 | |
else | |
exit 0 | |
fi | |
- name: Upload results | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: results_json-${{ matrix.os }}-${{ matrix.python-version }} | |
path: output_dashboard/dashboard_output*.json | |
publish_test: | |
runs-on: ubuntu-latest | |
if: ${{ (always()) && (github.ref == 'refs/heads/master') }} | |
needs: [test_wheel] | |
steps: | |
- name: Checkout github repo | |
uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: results_json-* | |
merge-multiple: true | |
path: ./ | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
miniconda-version: "latest" | |
auto-update-conda: true | |
activate-environment: vega-altair | |
python-version: '3.10' | |
- name: Merge the results | |
shell: bash -el {0} | |
run: | | |
git clone https://github.com/OpenGATE/opengate_tests_results.git | |
cd opengate_tests_results | |
echo $pwd | |
ls .. | |
cp ../dashboard_output_*.json . | |
conda install -c conda-forge altair-all | |
pip install pandas numpy | |
python compile_opengate_tests_results.py | |
- name: Pushes to another repository | |
continue-on-error: true | |
uses: cpina/github-action-push-to-another-repository@main | |
env: | |
API_TOKEN_GITHUB: ${{ secrets.PUSH_OPENGATE_TESTS_RESULTS }} | |
with: | |
source-directory: 'opengate_tests_results' | |
destination-github-username: 'OpenGATE' | |
destination-repository-name: 'opengate_tests_results' | |
user-email: [email protected] | |
target-branch: master |