3636 outputs :
3737 base-artifact-name : ${{ steps.set-names.outputs.base-artifact-name }}
3838 main-artifact-name : ${{ steps.set-names.outputs.main-artifact-name }}
39+ lfx-artifact-name : ${{ steps.set-names.outputs.lfx-artifact-name }}
3940 steps :
4041 - name : Checkout code
4142 uses : actions/checkout@v6
5859 # Base package builds to dist/ but should be in src/backend/base/dist/
5960 mkdir -p src/backend/base/dist
6061 mv dist/langflow_base*.whl src/backend/base/dist/
62+ - name : Build LFX package
63+ run : |
64+ cd src/lfx
65+ uv build --wheel --out-dir dist
6166 - name : Build main package
6267 run : make build_langflow args="--wheel"
68+ - name : Upload lfx artifact
69+ uses : actions/upload-artifact@v6
70+ with :
71+ name : adhoc-dist-lfx
72+ path : src/lfx/dist
6373 - name : Upload base artifact
6474 uses : actions/upload-artifact@v6
6575 with :
7585 run : |
7686 echo "base-artifact-name=adhoc-dist-base" >> $GITHUB_OUTPUT
7787 echo "main-artifact-name=adhoc-dist-main" >> $GITHUB_OUTPUT
88+ echo "lfx-artifact-name=adhoc-dist-lfx" >> $GITHUB_OUTPUT
7889
7990 test-installation-stable :
8091 name : Install & Run - ${{ matrix.os }} ${{ matrix.arch }} ${{ matrix.python-version }}
@@ -162,10 +173,10 @@ jobs:
162173
163174 # Download artifacts for wheel installation
164175 - name : Download LFX package artifact
165- if : steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
176+ if : steps.install-method.outputs.method == 'wheel' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
166177 uses : actions/download-artifact@v7
167178 with :
168- name : ${{ inputs.lfx-artifact-name }}
179+ name : ${{ inputs.lfx-artifact-name || needs.build-if-needed.outputs.lfx-artifact-name || 'adhoc-dist-lfx' }}
169180 path : ./lfx-dist
170181
171182 - name : Download base package artifact
@@ -189,7 +200,7 @@ jobs:
189200
190201 # Wheel installation steps
191202 - name : Install LFX package from wheel (Windows)
192- if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
203+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
193204 run : |
194205 ls -la ./lfx-dist/
195206 find ./lfx-dist -name "*.whl" -type f
@@ -231,7 +242,7 @@ jobs:
231242 shell : bash
232243
233244 - name : Install LFX package from wheel (Unix)
234- if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != ''
245+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
235246 run : |
236247 ls -la ./lfx-dist/
237248 find ./lfx-dist -name "*.whl" -type f
@@ -461,10 +472,10 @@ jobs:
461472
462473 # Download artifacts for wheel installation
463474 - name : Download LFX package artifact
464- if : steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
475+ if : steps.install-method.outputs.method == 'wheel' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
465476 uses : actions/download-artifact@v7
466477 with :
467- name : ${{ inputs.lfx-artifact-name }}
478+ name : ${{ inputs.lfx-artifact-name || needs.build-if-needed.outputs.lfx-artifact-name || 'adhoc-dist-lfx' }}
468479 path : ./lfx-dist
469480
470481 - name : Download base package artifact
@@ -488,7 +499,7 @@ jobs:
488499
489500 # Wheel installation steps
490501 - name : Install LFX package from wheel (Windows)
491- if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
502+ if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
492503 run : |
493504 ls -la ./lfx-dist/
494505 find ./lfx-dist -name "*.whl" -type f
@@ -530,7 +541,7 @@ jobs:
530541 shell : bash
531542
532543 - name : Install LFX package from wheel (Unix)
533- if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != ''
544+ if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && ( inputs.lfx-artifact-name != '' || needs.build-if-needed.outputs.lfx-artifact-name != '')
534545 run : |
535546 ls -la ./lfx-dist/
536547 find ./lfx-dist -name "*.whl" -type f
@@ -575,7 +586,7 @@ jobs:
575586 if : steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows'
576587 run : |
577588 # Reinstall LFX if it was provided
578- if [ -n "${{ inputs.lfx-artifact-name }}" ]; then
589+ if [ -n "${{ inputs.lfx-artifact-name || needs.build-if-needed.outputs.lfx-artifact-name }}" ]; then
579590 LFX_WHEEL=$(find ./lfx-dist -name "*.whl" -type f | head -1)
580591 if [ -n "$LFX_WHEEL" ]; then
581592 echo "Force reinstalling LFX: $LFX_WHEEL"
@@ -603,7 +614,7 @@ jobs:
603614 if : steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows'
604615 run : |
605616 # Reinstall LFX if it was provided
606- if [ -n "${{ inputs.lfx-artifact-name }}" ]; then
617+ if [ -n "${{ inputs.lfx-artifact-name || needs.build-if-needed.outputs.lfx-artifact-name }}" ]; then
607618 LFX_WHEEL=$(find ./lfx-dist -name "*.whl" -type f | head -1)
608619 if [ -n "$LFX_WHEEL" ]; then
609620 echo "Force reinstalling LFX: $LFX_WHEEL"
0 commit comments