Skip to content

Commit f222ddb

Browse files
hjmjohnsonclaude
andcommitted
ENH: Add platform-specific package install inputs for system dependencies
Add optional inputs to the CXX build workflow for installing system packages on each runner platform before building: - apt-packages: Linux (apt-get install) - brew-packages: macOS (brew install) - choco-packages: Windows (choco install) This enables modules with external library dependencies (e.g., ITKIOOpenSlide requiring libopenslide-dev / openslide) to use the standard reusable workflow instead of a custom build workflow. Usage: ```yaml cxx-build-workflow: uses: .../build-test-cxx.yml@v5.4.6 with: apt-packages: 'libopenslide-dev' brew-packages: 'openslide' ``` Each step only runs on its respective platform and is skipped entirely when the input is not provided. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9669cfe commit f222ddb

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

.github/workflows/build-test-cxx.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ on:
3030
# example: MeshToPolyData@3ad8f08:BSplineGradient@0.3.0
3131
required: false
3232
type: string
33+
apt-packages:
34+
description: 'Space-separated list of apt packages to install on Linux runners before building (e.g. libopenslide-dev libfftw3-dev)'
35+
required: false
36+
type: string
37+
brew-packages:
38+
description: 'Space-separated list of Homebrew packages to install on macOS runners before building (e.g. openslide libomp)'
39+
required: false
40+
type: string
41+
choco-packages:
42+
description: 'Space-separated list of Chocolatey packages to install on Windows runners before building'
43+
required: false
44+
type: string
3345

3446
jobs:
3547
build-test-cxx:
@@ -65,6 +77,22 @@ jobs:
6577
with:
6678
large-packages: false
6779

80+
- name: Install system packages (Linux)
81+
if: inputs.apt-packages != '' && runner.os == 'Linux'
82+
run: |
83+
sudo apt-get update -qq
84+
sudo apt-get install -y -qq ${{ inputs.apt-packages }}
85+
86+
- name: Install system packages (macOS)
87+
if: inputs.brew-packages != '' && runner.os == 'macOS'
88+
run: |
89+
brew install ${{ inputs.brew-packages }}
90+
91+
- name: Install system packages (Windows)
92+
if: inputs.choco-packages != '' && runner.os == 'Windows'
93+
run: |
94+
choco install -y ${{ inputs.choco-packages }}
95+
6896
- name: Set up Python 3.11
6997
uses: actions/setup-python@v5
7098
with:

0 commit comments

Comments
 (0)