2222 description : " Name of the LFX package artifact"
2323 required : false
2424 type : string
25+ sdk-artifact-name :
26+ description : " Name of the langflow-sdk package artifact"
27+ required : false
28+ type : string
2529 pre_release :
2630 description : " Whether this is a pre-release build"
2731 required : false
@@ -161,6 +165,13 @@ jobs:
161165 shell : bash
162166
163167 # Download artifacts for wheel installation
168+ - name : Download langflow-sdk package artifact
169+ if : steps.install-method.outputs.method == 'wheel' && inputs.sdk-artifact-name != ''
170+ uses : actions/download-artifact@v7
171+ with :
172+ name : ${{ inputs.sdk-artifact-name }}
173+ path : ./sdk-dist
174+
164175 - name : Download LFX package artifact
165176 if : steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
166177 uses : actions/download-artifact@v7
@@ -187,9 +198,38 @@ jobs:
187198 uv venv test-env --seed
188199 shell : bash
189200
190- # Wheel installation steps
201+ # Wheel installation steps — install SDK and LFX together when both are present.
202+ - name : Install SDK and LFX packages from wheel (Windows)
203+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.sdk-artifact-name != '' && inputs.lfx-artifact-name != ''
204+ run : |
205+ ls -la ./sdk-dist/
206+ find ./sdk-dist -name "*.whl" -type f
207+ ls -la ./lfx-dist/
208+ find ./lfx-dist -name "*.whl" -type f
209+ SDK_WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
210+ LFX_WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
211+ if [ -n "$SDK_WHEEL_FILE" ] && [ -n "$LFX_WHEEL_FILE" ]; then
212+ uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$SDK_WHEEL_FILE" "$LFX_WHEEL_FILE"
213+ else
214+ echo "Missing wheel file in ./sdk-dist/ or ./lfx-dist/"
215+ exit 1
216+ fi
217+ shell : bash
218+
219+ - name : Install SDK package from wheel (Windows)
220+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.sdk-artifact-name != '' && inputs.lfx-artifact-name == ''
221+ run : |
222+ WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
223+ if [ -n "$WHEEL_FILE" ]; then
224+ uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
225+ else
226+ echo "No wheel file found in ./sdk-dist/"
227+ exit 1
228+ fi
229+ shell : bash
230+
191231 - name : Install LFX package from wheel (Windows)
192- if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
232+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != '' && inputs.sdk-artifact-name == ''
193233 run : |
194234 ls -la ./lfx-dist/
195235 find ./lfx-dist -name "*.whl" -type f
@@ -230,8 +270,37 @@ jobs:
230270 fi
231271 shell : bash
232272
273+ - name : Install SDK and LFX packages from wheel (Unix)
274+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.sdk-artifact-name != '' && inputs.lfx-artifact-name != ''
275+ run : |
276+ ls -la ./sdk-dist/
277+ find ./sdk-dist -name "*.whl" -type f
278+ ls -la ./lfx-dist/
279+ find ./lfx-dist -name "*.whl" -type f
280+ SDK_WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
281+ LFX_WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
282+ if [ -n "$SDK_WHEEL_FILE" ] && [ -n "$LFX_WHEEL_FILE" ]; then
283+ uv pip install --prerelease=allow --python ./test-env/bin/python "$SDK_WHEEL_FILE" "$LFX_WHEEL_FILE"
284+ else
285+ echo "Missing wheel file in ./sdk-dist/ or ./lfx-dist/"
286+ exit 1
287+ fi
288+ shell : bash
289+
290+ - name : Install SDK package from wheel (Unix)
291+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.sdk-artifact-name != '' && inputs.lfx-artifact-name == ''
292+ run : |
293+ WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
294+ if [ -n "$WHEEL_FILE" ]; then
295+ uv pip install --prerelease=allow --python ./test-env/bin/python "$WHEEL_FILE"
296+ else
297+ echo "No wheel file found in ./sdk-dist/"
298+ exit 1
299+ fi
300+ shell : bash
301+
233302 - name : Install LFX package from wheel (Unix)
234- if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != ''
303+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != '' && inputs.sdk-artifact-name == ''
235304 run : |
236305 ls -la ./lfx-dist/
237306 find ./lfx-dist -name "*.whl" -type f
@@ -460,6 +529,13 @@ jobs:
460529 shell : bash
461530
462531 # Download artifacts for wheel installation
532+ - name : Download langflow-sdk package artifact
533+ if : steps.install-method.outputs.method == 'wheel' && inputs.sdk-artifact-name != ''
534+ uses : actions/download-artifact@v7
535+ with :
536+ name : ${{ inputs.sdk-artifact-name }}
537+ path : ./sdk-dist
538+
463539 - name : Download LFX package artifact
464540 if : steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
465541 uses : actions/download-artifact@v7
@@ -486,7 +562,31 @@ jobs:
486562 uv venv test-env --seed
487563 shell : bash
488564
489- # Wheel installation steps
565+ # Wheel installation steps — install langflow-sdk before LFX (sdk is not yet on PyPI)
566+ - name : Install langflow-sdk from wheel (Windows)
567+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.sdk-artifact-name != ''
568+ run : |
569+ WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
570+ if [ -n "$WHEEL_FILE" ]; then
571+ uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
572+ else
573+ echo "No wheel file found in ./sdk-dist/"
574+ exit 1
575+ fi
576+ shell : bash
577+
578+ - name : Install langflow-sdk from wheel (Unix)
579+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.sdk-artifact-name != ''
580+ run : |
581+ WHEEL_FILE=$(find ./sdk-dist -name "*.whl" -type f | head -1)
582+ if [ -n "$WHEEL_FILE" ]; then
583+ uv pip install --prerelease=allow --python ./test-env/bin/python "$WHEEL_FILE"
584+ else
585+ echo "No wheel file found in ./sdk-dist/"
586+ exit 1
587+ fi
588+ shell : bash
589+
490590 - name : Install LFX package from wheel (Windows)
491591 if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
492592 run : |
0 commit comments