Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions .github/workflows/cross-platform-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ on:
description: "Name of the main package artifact"
required: true
type: string
lfx-artifact-name:
description: "Name of the LFX package artifact"
required: false
type: string

jobs:
build-if-needed:
Expand Down Expand Up @@ -142,6 +146,13 @@ jobs:
ignore-empty-workdir: true

# Download artifacts for wheel installation
- name: Download LFX package artifact
if: steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
uses: actions/download-artifact@v4
with:
name: ${{ inputs.lfx-artifact-name }}
path: ./lfx-dist

- name: Download base package artifact
if: steps.install-method.outputs.method == 'wheel'
uses: actions/download-artifact@v4
Expand All @@ -162,6 +173,20 @@ jobs:
shell: bash

# Wheel installation steps
- name: Install LFX package from wheel (Windows)
if: steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
run: |
ls -la ./lfx-dist/
find ./lfx-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
else
echo "No wheel file found in ./lfx-dist/"
exit 1
fi
shell: bash

- name: Install base package from wheel (Windows)
if: steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows'
run: |
Expand Down Expand Up @@ -190,6 +215,20 @@ jobs:
fi
shell: bash

- name: Install LFX package from wheel (Unix)
if: steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != ''
run: |
ls -la ./lfx-dist/
find ./lfx-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/bin/python "$WHEEL_FILE"
else
echo "No wheel file found in ./lfx-dist/"
exit 1
fi
shell: bash

- name: Install base package from wheel (Unix)
if: steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows'
run: |
Expand Down Expand Up @@ -395,6 +434,13 @@ jobs:
ignore-empty-workdir: true

# Download artifacts for wheel installation
- name: Download LFX package artifact
if: steps.install-method.outputs.method == 'wheel' && inputs.lfx-artifact-name != ''
uses: actions/download-artifact@v4
with:
name: ${{ inputs.lfx-artifact-name }}
path: ./lfx-dist

- name: Download base package artifact
if: steps.install-method.outputs.method == 'wheel'
uses: actions/download-artifact@v4
Expand All @@ -415,6 +461,20 @@ jobs:
shell: bash

# Wheel installation steps
- name: Install LFX package from wheel (Windows)
if: steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows' && inputs.lfx-artifact-name != ''
run: |
ls -la ./lfx-dist/
find ./lfx-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
else
echo "No wheel file found in ./lfx-dist/"
exit 1
fi
shell: bash

- name: Install base package from wheel (Windows)
if: steps.install-method.outputs.method == 'wheel' && matrix.os == 'windows'
run: |
Expand Down Expand Up @@ -443,6 +503,20 @@ jobs:
fi
shell: bash

- name: Install LFX package from wheel (Unix)
if: steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows' && inputs.lfx-artifact-name != ''
run: |
ls -la ./lfx-dist/
find ./lfx-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./lfx-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/bin/python "$WHEEL_FILE"
else
echo "No wheel file found in ./lfx-dist/"
exit 1
fi
shell: bash

- name: Install base package from wheel (Unix)
if: steps.install-method.outputs.method == 'wheel' && matrix.os != 'windows'
run: |
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,12 @@ jobs:
test-cross-platform:
name: Test Cross-Platform Installation
if: inputs.release_package_base == true || inputs.release_package_main == true
needs: [build-base, build-main]
needs: [build-base, build-main, build-lfx]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-base"
main-artifact-name: "dist-main"
lfx-artifact-name: ${{ inputs.release_lfx == true && 'dist-lfx' || '' }}

Comment on lines +211 to 217
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Blocking dependency: test-cross-platform is tied to build-lfx even when LFX isn’t being released.

When release_lfx is false, build-lfx is skipped, which can skip test-cross-platform and block base/main release flow.

Remove build-lfx from needs; you already pass the LFX artifact name conditionally:

   test-cross-platform:
     name: Test Cross-Platform Installation
     if: inputs.release_package_base == true || inputs.release_package_main == true
-    needs: [build-base, build-main, build-lfx]
+    needs: [build-base, build-main]
     uses: ./.github/workflows/cross-platform-test.yml
     with:
       base-artifact-name: "dist-base"
       main-artifact-name: "dist-main"
       lfx-artifact-name: ${{ inputs.release_lfx == true && 'dist-lfx' || '' }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
needs: [build-base, build-main, build-lfx]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-base"
main-artifact-name: "dist-main"
lfx-artifact-name: ${{ inputs.release_lfx == true && 'dist-lfx' || '' }}
test-cross-platform:
name: Test Cross-Platform Installation
if: inputs.release_package_base == true || inputs.release_package_main == true
needs: [build-base, build-main]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-base"
main-artifact-name: "dist-main"
lfx-artifact-name: ${{ inputs.release_lfx == true && 'dist-lfx' || '' }}
🤖 Prompt for AI Agents
.github/workflows/release.yml around lines 211 to 217: the workflow currently
lists build-lfx in the needs array which forces the cross-platform test job to
depend on build-lfx even when inputs.release_lfx is false; remove build-lfx from
the needs array so test-cross-platform only depends on build-base and
build-main, since the lfx artifact is already passed conditionally via the
with.lfx-artifact-name input; update the needs line to exclude build-lfx and
ensure the conditional artifact string remains unchanged.

test-lfx-cross-platform:
name: Test LFX Cross-Platform Installation
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,12 @@ jobs:

test-cross-platform:
name: Test Cross-Platform Installation
needs: [build-nightly-base, build-nightly-main]
needs: [build-nightly-lfx, build-nightly-base, build-nightly-main]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-nightly-base"
main-artifact-name: "dist-nightly-main"
lfx-artifact-name: "dist-nightly-lfx"

Comment on lines +301 to 307
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Blocking dependency: test-cross-platform will be skipped when build-nightly-lfx is not requested.

Because needs includes build-nightly-lfx, the test job gets skipped when LFX is disabled, unintentionally blocking base/main tests.

Fix by removing the LFX job from needs and passing the LFX artifact name conditionally:

   test-cross-platform:
     name: Test Cross-Platform Installation
-    needs: [build-nightly-lfx, build-nightly-base, build-nightly-main]
+    needs: [build-nightly-base, build-nightly-main]
     uses: ./.github/workflows/cross-platform-test.yml
     with:
       base-artifact-name: "dist-nightly-base"
       main-artifact-name: "dist-nightly-main"
-      lfx-artifact-name: "dist-nightly-lfx"
+      lfx-artifact-name: ${{ inputs.build_lfx == true && 'dist-nightly-lfx' || '' }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
needs: [build-nightly-lfx, build-nightly-base, build-nightly-main]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-nightly-base"
main-artifact-name: "dist-nightly-main"
lfx-artifact-name: "dist-nightly-lfx"
test-cross-platform:
name: Test Cross-Platform Installation
needs: [build-nightly-base, build-nightly-main]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-nightly-base"
main-artifact-name: "dist-nightly-main"
lfx-artifact-name: ${{ inputs.build_lfx == true && 'dist-nightly-lfx' || '' }}
🤖 Prompt for AI Agents
.github/workflows/release_nightly.yml around lines 301 to 307: the job currently
lists build-nightly-lfx in needs which causes the cross-platform test job to be
skipped when LFX is disabled; remove build-nightly-lfx from the needs array and
instead pass the lfx-artifact-name input conditionally (e.g., use a GitHub
Actions expression to set lfx-artifact-name to an empty string or omit it when
LFX is disabled) so the test job no longer depends on the LFX build but still
receives the artifact name when present.

publish-nightly-lfx:
name: Publish LFX Nightly to PyPI
Expand Down
Loading