44 workflow_call :
55 inputs :
66 component :
7- description : " Component to build (gateway, supervisor)"
7+ description : " Component to build (gateway, supervisor, cli )"
88 required : true
99 type : string
1010 timeout-minutes :
6666 binary_name : ${{ steps.resolve.outputs.binary_name }}
6767 artifact_prefix : ${{ steps.resolve.outputs.artifact_prefix }}
6868 image_tag_base : ${{ steps.resolve.outputs.image_tag_base }}
69+ features : ${{ steps.resolve.outputs.features }}
70+ has_image : ${{ steps.resolve.outputs.has_image }}
6971 steps :
7072 - name : Resolve component and platform matrix
7173 id : resolve
@@ -77,10 +79,20 @@ jobs:
7779 gateway)
7880 binary_component=gateway
7981 binary_name=openshell-gateway
82+ features="openshell-core/dev-settings"
83+ has_image=true
8084 ;;
8185 supervisor)
8286 binary_component=sandbox
8387 binary_name=openshell-sandbox
88+ features="openshell-core/dev-settings"
89+ has_image=true
90+ ;;
91+ cli)
92+ binary_component=cli
93+ binary_name=openshell
94+ features="bundled-z3"
95+ has_image=false
8496 ;;
8597 *)
8698 echo "unsupported component: $component" >&2
@@ -139,6 +151,8 @@ jobs:
139151 echo "binary_name=$binary_name"
140152 echo "artifact_prefix=rust-binary-${component}-${binary_component}"
141153 echo "image_tag_base=$image_tag_base"
154+ echo "features=$features"
155+ echo "has_image=$has_image"
142156 } >> "$GITHUB_OUTPUT"
143157
144158 rust-binary :
@@ -157,13 +171,14 @@ jobs:
157171 cargo-version : ${{ inputs['cargo-version'] }}
158172 image-tag : ${{ needs.resolve.outputs.image_tag_base }}
159173 checkout-ref : ${{ inputs['checkout-ref'] }}
160- features : openshell-core/dev-settings
174+ features : ${{ needs.resolve.outputs.features }}
161175 artifact-name : ${{ needs.resolve.outputs.artifact_prefix }}-linux-${{ matrix.arch }}
162176 secrets : inherit
163177
164178 build :
165179 name : Build ${{ inputs.component }} (${{ matrix.arch }})
166180 needs : [resolve, rust-binary]
181+ if : needs.resolve.outputs.has_image == 'true'
167182 runs-on : ${{ matrix.runner }}
168183 timeout-minutes : ${{ inputs['timeout-minutes'] }}
169184 strategy :
@@ -257,7 +272,7 @@ jobs:
257272 merge :
258273 name : Merge ${{ inputs.component }} manifest
259274 needs : [resolve, build]
260- if : ${{ inputs.push && needs.resolve.outputs.platform_count != '1' }}
275+ if : ${{ inputs.push && needs.resolve.outputs.platform_count != '1' && needs.resolve.outputs.has_image == 'true' }}
261276 runs-on : linux-amd64-cpu8
262277 timeout-minutes : 10
263278 container :
0 commit comments