Skip to content

Conversation

@Adam-Aghili
Copy link
Collaborator

@Adam-Aghili Adam-Aghili commented Jan 8, 2026

In November and periodically since we have ran into issue with runners hanging and not properly cleaning themselves up causing our CI/CD pipeline to fail due to timeout or self canceling.

Summary by CodeRabbit

  • Chores
    • Updated GitHub Actions workflows to use ephemeral ARM64 runners for improved infrastructure resource management across continuous integration pipelines.

✏️ Tip: You can customize this high-level summary in your review settings.

In November and periodically since we have ran into issue with runners hanging and not properly cleaning themselves up causing our CI/CD pipeline to fail due to timeout or self canceling.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 8, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

All GitHub Actions workflow files have been updated to use ephemeral ARM64 runner labels by appending "-ephemeral" to the runner specification. Additional minor changes include quote style updates, environment variable removal, matrix restructuring, and whitespace cleanup.

Changes

Cohort / File(s) Summary
ARM64 Runner Ephemeral Migration (Single Occurrence)
.github/workflows/docker_test.yml, .github/workflows/nightly_build.yml, .github/workflows/typescript_test.yml
Updated self-hosted ARM64 runner labels from langflow-ai-arm64-40gb to langflow-ai-arm64-40gb-ephemeral to use ephemeral runner instances.
ARM64 Runner Ephemeral Migration with Quote Normalization
.github/workflows/ci.yml
Updated ARM64 runner label to ephemeral variant; normalized Python version string quotes from single to double quotes.
ARM64 Runner Ephemeral Migration (Multi-job)
.github/workflows/docker-build-v2.yml, .github/workflows/docker-nightly-build.yml
Updated self-hosted ARM64 runner labels across multiple matrix jobs to use ephemeral runner instances.
ARM64 Runner Ephemeral Migration with Configuration Restructuring
.github/workflows/docker-build.yml
Updated ARM64 runner labels to ephemeral variant; removed global environment block (PYTHON_VERSION, TEST_TAG); removed Docker Hub login step from build_components job; restructured matrix definition to explicit include list.
ARM64 Runner Ephemeral Migration with Whitespace Cleanup
.github/workflows/python_test.yml
Updated ARM64 runner label to ephemeral variant; removed extraneous blank lines around job definitions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 7
✅ Passed checks (7 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: use self hosted ephemeral runner' directly summarizes the main change across all modified workflow files—switching ARM64 runners from stable to ephemeral variants.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Test Coverage For New Implementations ✅ Passed This PR exclusively modifies GitHub Actions workflow YAML configuration files in .github/workflows/ to switch self-hosted runners from stable to ephemeral variants with no application code or new functionality introduced.
Test Quality And Coverage ✅ Passed The test quality and coverage check is not applicable to this pull request. This PR makes exclusively infrastructure and configuration changes to GitHub Actions workflows with no new code implementations.
Test File Naming And Structure ✅ Passed This custom check about test file naming and structure is not applicable to this pull request. The PR exclusively modifies GitHub Actions workflow configuration files to switch self-hosted runners from fixed ARM64 instances to ephemeral variants, containing no modifications to actual test files.
Excessive Mock Usage Warning ✅ Passed This custom check is not applicable to the provided pull request. The PR only modifies GitHub Actions workflow configuration files to switch from stable to ephemeral ARM64 runners, addressing infrastructure issues. It contains no changes to test files, no modifications to mock usage, and no alterations to test design.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch aka-ephemeral-runner

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2026

Frontend Unit Test Coverage Report

Coverage Summary

Lines Statements Branches Functions
Coverage: 17%
17.44% (4977/28526) 10.76% (2364/21957) 11.55% (722/6246)

Unit Test Results

Tests Skipped Failures Errors Time
1989 0 💤 0 ❌ 0 🔥 26.217s ⏱️

@Adam-Aghili
Copy link
Collaborator Author

Adam-Aghili commented Jan 8, 2026

Right now I only change some of the easeir options to test what happens. I will push up a commit replacing all runs-on: ubuntu-latest with

    runs-on: 
      labels: ["self-hosted", "linux", "ARM64", "langflow-ai-arm64-40gb-ephemeral"]  

@codecov
Copy link

codecov bot commented Jan 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 34.13%. Comparing base (fdffcc3) to head (896ac0e).
⚠️ Report is 1 commits behind head on main.

❌ Your project check has failed because the head coverage (40.80%) is below the target coverage (60.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #11253      +/-   ##
==========================================
+ Coverage   34.12%   34.13%   +0.01%     
==========================================
  Files        1408     1408              
  Lines       66770    66770              
  Branches     9858     9858              
==========================================
+ Hits        22783    22790       +7     
+ Misses      42794    42787       -7     
  Partials     1193     1193              
Flag Coverage Δ
backend 53.26% <ø> (+0.03%) ⬆️
frontend 15.99% <ø> (ø)
lfx 40.80% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 6 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/docker_test.yml (1)

17-17: LGTM! Docker test workflow updated to ephemeral runner.

The runner specification is correctly updated. The actionlint warning about the unknown label is expected for custom self-hosted runners. If you want to suppress this warning, you can create an actionlint.yaml configuration file in the .github directory listing your custom labels.

Optional: Suppress actionlint warnings for custom runner labels

Create .github/actionlint.yaml with your custom runner labels:

self-hosted-runner:
  labels:
    - langflow-ai-arm64-40gb-ephemeral
    - langflow-ai-arm64-40gb
    - Langflow-runner

This will help maintain cleaner static analysis output.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c782532 and 8435247.

📒 Files selected for processing (8)
  • .github/workflows/ci.yml
  • .github/workflows/docker-build-v2.yml
  • .github/workflows/docker-build.yml
  • .github/workflows/docker-nightly-build.yml
  • .github/workflows/docker_test.yml
  • .github/workflows/nightly_build.yml
  • .github/workflows/python_test.yml
  • .github/workflows/typescript_test.yml
🧰 Additional context used
🪛 actionlint (1.7.10)
.github/workflows/docker_test.yml

17-17: label "langflow-ai-arm64-40gb-ephemeral" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

.github/workflows/docker-build.yml

204-204: label "langflow-ai-arm64-40gb-ephemeral" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)


291-291: label "langflow-ai-arm64-40gb-ephemeral" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (13)
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: Lint Backend / Run Mypy (3.11)
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: Run Backend Tests / Integration Tests - Python 3.10
  • GitHub Check: Run Backend Tests / LFX Tests - Python 3.10
  • GitHub Check: Lint Backend / Run Mypy (3.12)
  • GitHub Check: Lint Backend / Run Mypy (3.10)
  • GitHub Check: Lint Backend / Run Mypy (3.13)
  • GitHub Check: Run Frontend Unit Tests / Frontend Jest Unit Tests
  • GitHub Check: Test Starter Templates
🔇 Additional comments (8)
.github/workflows/nightly_build.yml (1)

13-13: LGTM! Workflow dispatch option updated to ephemeral runner.

The runner option for manual workflow dispatch is correctly updated to use the ephemeral variant, maintaining consistency with the broader CI migration.

.github/workflows/typescript_test.yml (1)

63-63: LGTM! TypeScript test workflow dispatch option updated.

The runner option for manual workflow dispatch is correctly updated to the ephemeral variant, aligning with the infrastructure improvements across all workflows.

.github/workflows/python_test.yml (1)

46-46: LGTM! Python test workflow dispatch option updated.

The runner option for manual workflow dispatch is correctly updated to use the ephemeral ARM64 runner, completing the consistent migration across all workflows in this PR.

.github/workflows/docker-build-v2.yml (1)

66-67: LGTM! Consistent ephemeral runner adoption across all build jobs.

The switch to ephemeral ARM64 runners is correctly applied to all six build jobs (base, main, main-backend, main-frontend, main-ep, main-all) at lines 66-67, 152-153, 238-239, 328-329, 414-415, and 500-501. Each job properly configures the langflow-ai-arm64-40gb-ephemeral runner label with the correct matrix strategy for ARM64 architecture.

Note: Runner registration status cannot be verified from the repository—confirm that langflow-ai-arm64-40gb-ephemeral is registered in GitHub Actions settings before merging.

.github/workflows/docker-build.yml (2)

61-63: Summary inconsistency detected.

The AI-generated summary states that the global env block was removed, but the code shows the env block is still present at lines 61-63 with PYTHON_VERSION: "3.13" and TEST_TAG: "langflowai/langflow:test". The env variable is referenced at line 217, confirming it's still in use.


204-204: Ephemeral runner migration is complete.

Both the build (line 204) and build_components (line 291) jobs now use the ephemeral ARM64 runner label langflow-ai-arm64-40gb-ephemeral, addressing the runner cleanup objectives.

.github/workflows/ci.yml (1)

61-61: Good addition of ephemeral runner option.

Adding the ephemeral runner as a workflow_dispatch choice allows manual workflow runs to test with the new ephemeral infrastructure, which aligns with the PR objectives.

.github/workflows/docker-nightly-build.yml (1)

54-55: Ephemeral runner migration is correct.

All three nightly build jobs have been consistently updated to use the langflow-ai-arm64-40gb-ephemeral runner label (lines 55, 149, 242). The changes should resolve the hanging runner cleanup issues.

Ensure the langflow-ai-arm64-40gb-ephemeral runner label is registered in your GitHub self-hosted runner configuration before merging.

${{ inputs['runs_on'] || github.event.inputs['runs_on'] || 'ubuntu-latest' }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants