Skip to content

Build

Build #11

Workflow file for this run

name: Build
on:
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
# push:
# release:
# types:
# - published
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# os: [ubuntu-20.04,macos-13,macos-14,windows-2019]
os: [ubuntu-20.04]
steps:
# Setup ninja
- name: Setup Ninja
uses: seanmiddleditch/gha-setup-ninja@master
# Install Qt
- name: Install Qt on Ubuntu
uses: jurplel/install-qt-action@v4
if: ${{ startsWith(matrix.os,'ubuntu') }}
with:
version: '6.6.3'
host: 'linux'
target: 'desktop'
arch: 'gcc_64'
# Use cached VTK build if available
- name: Cache VTK
id: cache-vtk
uses: actions/cache@v4
with:
path: ${{github.workspace}}/vtk/install
key: ${{ runner.os }}-vtk-9.3.1
# Check out VTK
- name: Checkout VTK
if: steps.cache-vtk.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: 'Kitware/VTK.git'
ref: 'v9.3.1'
submodules: true
path: 'vtk'
# Build VTK
- name: Build VTK
if: steps.cache-vtk.outputs.cache-hit != 'true'
uses: threeal/[email protected]
with:
source-dir: ${{github.workspace}}/vtk
build-dir: ${{github.workspace}}/vtk/build
build-args: |
-t
install
generator: Ninja
options: |
BUILD_TESTING:BOOL=FALSE
BUILD_EXAMPLES:BOOL=FALSE
BUILD_SHARED_LIBS:BOOL=FALSE
VTK_REQUIRED_OBJCXX_FLAGS:STRING=
VTK_GROUP_ENABLE_Qt:STRING=YES
VTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=NO
VTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING=NO
CMAKE_INSTALL_PREFIX=${{github.workspace}}/vtk/install
# Use cached ITK build if available
- name: Cache ITK
id: cache-itk
uses: actions/cache@v4
with:
path: ${{github.workspace}}/itk/install
key: ${{ runner.os }}-itk-5.4.0
# Check out ITK
- name: Checkout ITK
if: steps.cache-itk.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: 'InsightSoftwareConsortium/ITK.git'
ref: 'v5.4.0'
submodules: true
path: 'itk'
# Build ITK
- name: Build ITK
if: steps.cache-itk.outputs.cache-hit != 'true'
uses: threeal/[email protected]
with:
source-dir: ${{github.workspace}}/itk
build-dir: ${{github.workspace}}/itk/build
build-args: |
-t
install
generator: Ninja
options: |
BUILD_TESTING:BOOL=FALSE
BUILD_EXAMPLES:BOOL=FALSE
Module_MorphologicalContourInterpolation:BOOL=TRUE
CMAKE_INSTALL_PREFIX=${{github.workspace}}/itk/install
# Checkout ITK-SNAP code
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: true
path: 'itksnap'
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
# Build ITK-SNAP
- name: Build ITK-SNAP
uses: threeal/[email protected]
with:
source-dir: ${{github.workspace}}/itksnap
build-dir: ${{github.workspace}}/itksnap/build
build-args: |
-t
install
generator: Ninja
options: |
ITK-DIR:FILEPATH=${{github.workspace}}/itk/install/lib/cmake/ITK-5.4
VTK-DIR:FILEPATH=${{github.workspace}}/vtk/install/lib/cmake/vtk-9.3
CMAKE_PREFIX_PATH:FILEPATH=${{github.workspace}}/Qt/6.6.3/linux/lib/cmake
CMAKE_BUILD_TYPE:STRING=Release