1+ name : Create Plus Package
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ platform :
7+ description : ' Target platform'
8+ required : true
9+ type : choice
10+ options :
11+ - x64
12+ - Win32
13+ archive-name :
14+ description : ' Output archive name'
15+ required : true
16+ default : ' PlusApp-Custom'
17+ package-edition :
18+ description : ' PLUSAPP_PACKAGE_EDITION'
19+ required : false
20+ default : ' '
21+ buildname-postfix :
22+ description : ' PLUSBUILD_BUILDNAME_POSTFIX'
23+ required : false
24+ default : ' gh-package'
25+ extra-config :
26+ description : ' Additional CMake -DFLAG=VALUE arguments'
27+ required : false
28+ default : ' '
29+ pluslib-repository :
30+ description : ' Git repository URL for PlusLib'
31+ required : false
32+ default : ' https://github.com/PlusToolkit/PlusLib.git'
33+ pluslib-tag :
34+ description : ' Git tag or commit SHA for PlusLib'
35+ required : false
36+ default : ' master'
37+ use-pltools :
38+ description : ' Clone PLTools (requires PLTOOLS_ACCESS_TOKEN secret)'
39+ required : false
40+ type : boolean
41+ default : false
42+
43+ jobs :
44+
45+ # #######
46+ # BUILD AND CACHE VTK
47+ update_vtk_x64 :
48+ if : ${{ inputs.platform == 'x64' }}
49+ uses : ./.github/workflows/build-vtk.yml
50+ strategy :
51+ fail-fast : false
52+ matrix :
53+ os : [windows-2022]
54+ build_type : [Release]
55+ arch : [x64]
56+ with :
57+ vtk-hash : 6b6b89ee577e6c6a5ee6f5220b9c6a12513c30b4 # v9.4.1
58+ os : ${{ matrix.os }}
59+ arch : ${{ matrix.arch }}
60+ build-type : ${{ matrix.build_type }}
61+
62+ update_vtk_Win32 :
63+ if : ${{ inputs.platform == 'Win32' }}
64+ uses : ./.github/workflows/build-vtk.yml
65+ strategy :
66+ fail-fast : false
67+ matrix :
68+ os : [windows-2022]
69+ build_type : [Release]
70+ arch : [Win32]
71+ with :
72+ vtk-hash : 6b6b89ee577e6c6a5ee6f5220b9c6a12513c30b4 # v9.4.1
73+ os : ${{ matrix.os }}
74+ arch : ${{ matrix.arch }}
75+ build-type : ${{ matrix.build_type }}
76+
77+ # #######
78+ # BUILD AND CACHE ITK
79+ update_itk_x64 :
80+ if : ${{ inputs.platform == 'x64' }}
81+ uses : ./.github/workflows/build-itk.yml
82+ strategy :
83+ fail-fast : false
84+ matrix :
85+ os : [windows-2022]
86+ build_type : [Release]
87+ arch : [x64]
88+ with :
89+ itk-hash : f98d5fac5e1d5ef694f3010f12bbbc2c792994c6 # v5.4.4
90+ os : ${{ matrix.os }}
91+ arch : ${{ matrix.arch }}
92+ build-type : ${{ matrix.build_type }}
93+
94+ update_itk_Win32 :
95+ if : ${{ inputs.platform == 'Win32' }}
96+ uses : ./.github/workflows/build-itk.yml
97+ strategy :
98+ fail-fast : false
99+ matrix :
100+ os : [windows-2022]
101+ build_type : [Release]
102+ arch : [Win32]
103+ with :
104+ itk-hash : f98d5fac5e1d5ef694f3010f12bbbc2c792994c6 # v5.4.4
105+ os : ${{ matrix.os }}
106+ arch : ${{ matrix.arch }}
107+ build-type : ${{ matrix.build_type }}
108+
109+ # #######
110+ # BUILD PLUS PACKAGE
111+ build_plus_package :
112+ needs : [update_vtk_x64, update_vtk_Win32, update_itk_x64, update_itk_Win32]
113+ # always() lets this job run even though the skipped jobs are in needs
114+ if : always() && !failure() && !cancelled()
115+ uses : ./.github/workflows/build-plus.yml
116+ strategy :
117+ fail-fast : false
118+ matrix :
119+ os : [windows-2022]
120+ build_type : [Release]
121+ secrets :
122+ pltools-access-token : ${{ secrets.PLTOOLS_ACCESS_TOKEN }}
123+ with :
124+ arch : ${{ inputs.platform }}
125+ os : ${{ matrix.os }}
126+ pluslib-repository : ${{ inputs.pluslib-repository }}
127+ pluslib-tag : ${{ inputs.pluslib-tag }}
128+ use-pltools : ${{ inputs.use-pltools }}
129+ vtk-cache-key : ${{ inputs.platform == 'x64' && needs.update_vtk_x64.outputs.cache-key || needs.update_vtk_Win32.outputs.cache-key }}
130+ itk-cache-key : ${{ inputs.platform == 'x64' && needs.update_itk_x64.outputs.cache-key || needs.update_itk_Win32.outputs.cache-key }}
131+ archive-name : ${{ inputs.archive-name }}
132+ plus-config : >-
133+ -DVTK_DIR=${{ inputs.platform == 'x64' && needs.update_vtk_x64.outputs.install-path || needs.update_vtk_Win32.outputs.install-path }}
134+ -DITK_DIR=${{ inputs.platform == 'x64' && needs.update_itk_x64.outputs.install-path || needs.update_itk_Win32.outputs.install-path }}
135+ -DPLUSBUILD_BUILDNAME_POSTFIX=${{ inputs.buildname-postfix }}
136+ ${{ inputs.package-edition != '' && format('-DPLUSAPP_PACKAGE_EDITION:STRING="{0}"', inputs.package-edition) || '' }}
137+ ${{ inputs.extra-config }}
0 commit comments