Skip to content

Build Analysis for MRtrix #55

Build Analysis for MRtrix

Build Analysis for MRtrix #55

Workflow file for this run

name: Build Analysis for MRtrix
on:
push:
workflow_dispatch:
# Run every Sunday at 00:00 UTC
schedule:
- cron: '0 0 * * 0'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: sudo apt-get install clang qt6-base-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev ninja-build lld
- name: Clone Clang Build Analyzer
run: git clone https://github.com/aras-p/ClangBuildAnalyzer
- name: Clone MRtrix
run: git clone https://github.com/mrtrix3/mrtrix3 -b dev
- name: Build Clang Build Analyzer
run: |
cd ClangBuildAnalyzer
cmake -B build -G Ninja
cmake --build build
sudo cmake --install build
- name: Configure MRtrix
run: |
cd mrtrix3
cmake -B build -G Ninja -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_CXX_FLAGS="-ftime-trace" -DMRTRIX_BUILD_TESTS=ON
- name: Start capture
run: ClangBuildAnalyzer --start mrtrix3/build
- name: Build MRtrix
run: cmake --build mrtrix3/build
- name: Stop capture
run: ClangBuildAnalyzer --stop mrtrix3/build capture_file
- name: Analyze build
run: ClangBuildAnalyzer --analyze ./capture_file
- name: Clone NinjaTracing
run: git clone https://github.com/nico/ninjatracing
- name: Run NinjaTracing
run: |
./ninjatracing/ninjatracing.py mrtrix3/build/.ninja_log > trace.json
- name: Upload trace
uses: actions/upload-artifact@v3
with:
name: trace.json
path: trace.json