feat: Add Windows Playwright test fixes to RC (#12265)

* feat: Add Windows Playwright tests to nightly builds

- Add windows-latest to typescript_test.yml runner options
- Add shell: bash to all script steps for cross-platform compatibility
- Split Playwright installation into OS-aware steps (Linux uses --with-deps, Windows/macOS/self-hosted don't)
- Fix artifact naming with OS prefix to prevent conflicts: blob-report-${{ runner.os }}-${{ matrix.shardIndex }}
- Split frontend-tests into separate Linux and Windows jobs in nightly_build.yml
- Add ref parameter to all test jobs to checkout code from release branch
- Add resolve-release-branch to needs dependencies
- Update Slack notifications to handle both Linux and Windows test results
- Windows tests are non-blocking (not checked in release-nightly-build condition)
- Update .secrets.baseline with new line number (263 -> 347) for LANGFLOW_ENG_SLACK_WEBHOOK_URL

Fixes LE-566

* fix: Use contains() for self-hosted runner detection

- Replace exact string equality (==, !=) with contains() for substring matching
- Fixes issue when inputs.runs-on is array format: '["self-hosted", "linux", "ARM64", ...]'
- Ensures self-hosted Linux runners correctly skip --with-deps flag

Addresses CodeRabbit feedback on PR #12264
This commit is contained in:
vjgit96
2026-03-20 15:22:09 -04:00
committed by GitHub
parent 04b4af6e0f
commit 198fab1dc7
3 changed files with 216 additions and 1397 deletions

View File

@ -208,12 +208,13 @@ jobs:
frontend-tests-linux:
if: github.repository == 'langflow-ai/langflow' && !inputs.skip_frontend_tests
name: Run Frontend Tests - Linux
needs: create-nightly-tag
needs: [resolve-release-branch, create-nightly-tag]
uses: ./.github/workflows/typescript_test.yml
with:
tests_folder: "tests"
release: true
runs-on: ubuntu-latest
ref: ${{ needs.resolve-release-branch.outputs.branch }}
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
STORE_API_KEY: ${{ secrets.STORE_API_KEY }}
@ -223,16 +224,16 @@ jobs:
frontend-tests-windows:
if: github.repository == 'langflow-ai/langflow' && !inputs.skip_frontend_tests
name: Run Frontend Tests - Windows
needs: create-nightly-tag
# Allow Windows tests to fail without blocking the nightly build
# This gives us visibility into Windows-specific issues while we stabilize the tests
# Remove this once Windows tests are consistently passing
continue-on-error: true
needs: [resolve-release-branch, create-nightly-tag]
# Windows tests are non-blocking - the release-nightly-build job only checks
# frontend-tests-linux.result, allowing Windows tests to fail without blocking the build.
# This gives us visibility into Windows-specific issues while we stabilize the tests.
uses: ./.github/workflows/typescript_test.yml
with:
tests_folder: "tests"
release: true
runs-on: windows-latest
ref: ${{ needs.resolve-release-branch.outputs.branch }}
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
STORE_API_KEY: ${{ secrets.STORE_API_KEY }}
@ -242,11 +243,12 @@ jobs:
backend-unit-tests:
if: github.repository == 'langflow-ai/langflow' && !inputs.skip_backend_tests
name: Run Backend Unit Tests
needs: create-nightly-tag
needs: [resolve-release-branch, create-nightly-tag]
uses: ./.github/workflows/python_test.yml
with:
python-versions: '["3.10", "3.11", "3.12", "3.13"]'
runs-on: ${{ inputs['runs_on'] || github.event.inputs['runs_on'] || 'ubuntu-latest' }}
ref: ${{ needs.resolve-release-branch.outputs.branch }}
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

View File

@ -314,14 +314,14 @@ jobs:
playwright-${{ env.PLAYWRIGHT_VERSION }}-chromium-${{ runner.os }}
- name: Install Playwright Browser Dependencies (Linux)
if: steps.cache-playwright.outputs.cache-hit != 'true' && runner.os == 'Linux' && inputs.runs-on != 'self-hosted'
if: steps.cache-playwright.outputs.cache-hit != 'true' && runner.os == 'Linux' && !contains(inputs.runs-on, 'self-hosted')
shell: bash
run: |
cd ./src/frontend
npx playwright install --with-deps chromium
- name: Install Playwright Browsers (Windows/macOS/Self-Hosted)
if: steps.cache-playwright.outputs.cache-hit != 'true' && (runner.os != 'Linux' || inputs.runs-on == 'self-hosted')
if: steps.cache-playwright.outputs.cache-hit != 'true' && (runner.os != 'Linux' || contains(inputs.runs-on, 'self-hosted'))
shell: bash
run: |
cd ./src/frontend
@ -362,7 +362,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v6
with:
name: blob-report-${{ matrix.shardIndex }}
name: blob-report-${{ runner.os }}-${{ matrix.shardIndex }}
path: src/frontend/blob-report
retention-days: 1

File diff suppressed because it is too large Load Diff