chore: Update CI workflows to use bigger runner#9915
Conversation
- Modified the `runs-on` attribute in both `docker_test.yml` and `docker-build.yml` to include ARM64 support, ensuring compatibility with the langflow-ai-arm64-40gb environment.
- Added ARM64 support to the `runs-on` attribute in both `nightly_build.yml` and `release.yml`, ensuring compatibility with the langflow-ai-arm64-40gb environment. - Enhanced the logic for determining the runner to improve flexibility in specifying custom runners.
- Added ARM64 support to the `runs-on` attribute in `ci.yml`, `python_test.yml`, and `typescript_test.yml`, ensuring compatibility with the langflow-ai-arm64-40gb environment. - Enhanced the logic for determining the runner to improve flexibility in specifying custom runners across all workflows.
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughMultiple GitHub Actions workflows were updated to support dynamic runner selection via either a plain string or a JSON array string, defaulting to ubuntu-latest. A new multi-label self-hosted ARM64 runner option "[self-hosted, linux, ARM64, langflow-ai-arm64-40gb]" was added. Docker workflows were pointed to the multi-label runner. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant U as Workflow dispatch / caller
participant G as GitHub Actions
participant R as Runner(s)
U->>G: Provide inputs.runs-on / runs_on
rect rgba(225,240,255,0.5)
note over G: Resolve runs-on
alt Input starts with "["
G->>G: fromJSON(inputs.runs-on)
G->>G: runs-on = array of labels
else Input provided (string)
G->>G: runs-on = string label
else No input
G->>G: runs-on = "ubuntu-latest"
end
end
G->>R: Schedule job on matching runner
note over R: May target [self-hosted, linux, ARM64, langflow-ai-arm64-40gb]
R-->>G: Execute job steps
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (8.12%) is below the target coverage (10.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #9915 +/- ##
=======================================
Coverage 23.04% 23.04%
=======================================
Files 1085 1085
Lines 39733 39733
Branches 5420 5420
=======================================
+ Hits 9157 9158 +1
+ Misses 30421 30420 -1
Partials 155 155
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 12
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/typescript_test.yml (1)
307-315: Self-hosted detection is brittle with multi-label arrays. Use contains() on the stringified input.Equality checks miss "[self-hosted, ...]". Switch to contains over the coalesced value.
Apply this diff:
- - name: Install Playwright Browser Dependencies - if: steps.cache-playwright.outputs.cache-hit != 'true' && inputs.runs-on != 'self-hosted' + - name: Install Playwright Browser Dependencies + if: steps.cache-playwright.outputs.cache-hit != 'true' && !contains(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'] || '')), 'self-hosted') run: | cd ./src/frontend npx playwright install --with-deps chromium - - name: Install Playwright Browsers (Self-Hosted) - if: steps.cache-playwright.outputs.cache-hit != 'true' && inputs.runs-on == 'self-hosted' + - name: Install Playwright Browsers (Self-Hosted) + if: steps.cache-playwright.outputs.cache-hit != 'true' && contains(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'] || '')), 'self-hosted') run: | cd ./src/frontend npx playwright install chromium
🧹 Nitpick comments (6)
.github/workflows/docker_test.yml (2)
19-19: Unknown custom runner label in lint; add to actionlint config.actionlint flags "langflow-ai-arm64-40gb" as unknown. Add this label under runner-labels in your actionlint config to silence false positives for your self-hosted runner.
23-34: Echoing env context inside same step renders empty. Use shell var instead.${{ env.* }} is evaluated before the step runs; echo will print blank. Use $CONTAINER_RUNTIME.
Apply this diff:
- echo "Using container runtime: ${{ env.CONTAINER_RUNTIME }}" + echo "Using container runtime: $CONTAINER_RUNTIME".github/workflows/docker-build.yml (4)
186-186: Unknown custom runner label in lint; add to actionlint config.Add "langflow-ai-arm64-40gb" to actionlint's allowed runner labels to avoid false positives.
259-259: Same as above for build_components job.Extend actionlint config for this label.
218-236: Cross-arch builds on ARM64 may fail without QEMU.Add setup-qemu to guarantee linux/amd64 builds on an ARM64 self-hosted runner.
Apply this diff (place before Buildx setup; repeat similarly in build_components job):
+ - name: Set up QEMU (for cross-arch build) + uses: docker/setup-qemu-action@v3 + with: + platforms: all
289-297: Mirror QEMU setup in build_components.Add setup-qemu here too for consistency.
+ - name: Set up QEMU (for cross-arch build) + uses: docker/setup-qemu-action@v3 + with: + platforms: all
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
.github/workflows/ci.yml(3 hunks).github/workflows/docker-build.yml(2 hunks).github/workflows/docker_test.yml(1 hunks).github/workflows/nightly_build.yml(3 hunks).github/workflows/python_test.yml(5 hunks).github/workflows/release.yml(2 hunks).github/workflows/typescript_test.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/docker_test.yml
19-19: label "langflow-ai-arm64-40gb" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "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", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "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
186-186: label "langflow-ai-arm64-40gb" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "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", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "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)
259-259: label "langflow-ai-arm64-40gb" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "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", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "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). (8)
- GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- 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 / Unit Tests - Python 3.10 - Group 3
- GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: Run Backend Tests / Integration Tests - Python 3.10
- GitHub Check: Test Starter Templates
- GitHub Check: Run Frontend Unit Tests / Frontend Jest Unit Tests
🔇 Additional comments (5)
.github/workflows/nightly_build.yml (1)
13-13: Runner option addition LGTM..github/workflows/typescript_test.yml (1)
63-64: Runner option addition LGTM..github/workflows/release.yml (1)
54-55: Runner option addition LGTM..github/workflows/ci.yml (1)
52-53: Runner option addition LGTM..github/workflows/python_test.yml (1)
46-47: Runner option addition LGTM.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| secrets: |
There was a problem hiding this comment.
Bracket access for 'runs-on' and support workflow_dispatch context.
Use inputs['runs-on'] and coalesce with github.event.inputs for top-level runs.
Apply this diff:
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| secrets: | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| secrets: |
🤖 Prompt for AI Agents
In .github/workflows/ci.yml around lines 196-197, replace the current runs-on
expression to use bracket access for the inputs key and add a fallback to
workflow_dispatch inputs: use inputs['runs-on'] (instead of inputs.runs-on) with
the same startsWith/fromJSON parsing logic, then coalesce with
github.event.inputs['runs-on'], and finally default to 'ubuntu-latest'; ensure
the bracketed key is used consistently and the precedence is: parsed
inputs['runs-on'] → raw inputs['runs-on'] → github.event.inputs['runs-on'] →
'ubuntu-latest'.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| secrets: |
There was a problem hiding this comment.
Same fix for test-frontend job.
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In .github/workflows/ci.yml around lines 218 to 219, the test-frontend job's
runs-on value needs the same conditional handling as other jobs; replace the
current runs-on with the expression that evaluates inputs.runs-on (checking for
JSON array with startsWith/ fromJSON) and falls back to 'ubuntu-latest' so the
job accepts either a single runner or a JSON array input consistently.
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | ||
| secrets: |
There was a problem hiding this comment.
Broken context: use github.event.inputs for workflow_dispatch.
In top-level workflows, inputs.* is not guaranteed. Use github.event.inputs.runs_on (and keep JSON detection).
Apply this diff:
- runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }}
+ runs-on: ${{ ((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest' }}📝 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.
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | |
| secrets: | |
| runs-on: ${{ ((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest' }} | |
| secrets: |
🤖 Prompt for AI Agents
.github/workflows/nightly_build.yml around lines 158 to 159: the current
expression reads inputs.runs_on but top-level workflows should read
workflow_dispatch inputs from github.event.inputs; update the expression to use
github.event.inputs.runs_on (preserving the existing JSON detection logic that
checks startsWith(format(...),'[') and fromJSON(...)) while keeping the existing
fallback to 'ubuntu-latest' so the runs-on resolves correctly in both direct and
JSON-array cases.
| python-versions: '["3.10", "3.11", "3.12", "3.13"]' | ||
| runs-on: ${{ inputs.runs_on || 'ubuntu-latest' }} | ||
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | ||
| secrets: |
There was a problem hiding this comment.
Same fix for backend-unit-tests job.
- runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }}
+ runs-on: ${{ ((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest' }}📝 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.
| python-versions: '["3.10", "3.11", "3.12", "3.13"]' | |
| runs-on: ${{ inputs.runs_on || 'ubuntu-latest' }} | |
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | |
| secrets: | |
| python-versions: '["3.10", "3.11", "3.12", "3.13"]' | |
| runs-on: ${{ ((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest' }} | |
| secrets: |
🤖 Prompt for AI Agents
In .github/workflows/nightly_build.yml around lines 171 to 173, apply the same
fix to the backend-unit-tests job: replace its static runs-on (and matching
python-versions entry if present) with the dynamic expression used here (i.e.,
use python-versions: '["3.10", "3.11", "3.12", "3.13"]' and set runs-on to ${{
(inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') &&
fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }}), ensuring
the backend-unit-tests job accepts inputs.runs_on arrays or single values the
same way as the current job.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| strategy: |
There was a problem hiding this comment.
Bracket access + workflow_dispatch context.
Fix property access and support manual runs.
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| strategy: | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| strategy: |
🤖 Prompt for AI Agents
.github/workflows/python_test.yml around lines 59 to 60: the current runs-on
expression doesn't handle manual (workflow_dispatch) runs and uses dot-style
access for an input name containing a hyphen; update the expression to detect
manual runs via github.event_name == 'workflow_dispatch' and, when present, use
bracket access to read the dispatched input (github.event.inputs['runs-on'])
falling back to the normal inputs.runs-on and finally to 'ubuntu-latest';
implement this by replacing the current runs-on line with a conditional that
checks github.event_name and uses bracket access for the 'runs-on' property.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| strategy: |
There was a problem hiding this comment.
Repeat the runs-on fix for test-cli.
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| strategy: | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| strategy: |
🤖 Prompt for AI Agents
.github/workflows/python_test.yml lines 172-173: the dynamic runs-on expression
used here should also be applied to the test-cli job but currently isn't; locate
the test-cli job's runs-on key and replace its value with the same expression:
use the conditional that checks inputs.runs-on, handles JSON arrays via
startsWith/ fromJSON, and falls back to 'ubuntu-latest' so the test-cli job
supports both string and array inputs consistently.
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | ||
| secrets: inherit |
There was a problem hiding this comment.
Fix context for workflow_dispatch and keep JSON-array support.
Use github.event.inputs.runs_on (with fallback) to avoid expression errors.
Apply this diff:
- runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest') }}📝 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.
| runs-on: ${{ (inputs.runs_on && (startsWith(format('{0}', inputs.runs_on), '[') && fromJSON(inputs.runs_on) || inputs.runs_on)) || 'ubuntu-latest' }} | |
| secrets: inherit | |
| runs-on: ${{ (((github.event.inputs.runs_on || inputs.runs_on) && (startsWith(format('{0}', (github.event.inputs.runs_on || inputs.runs_on)), '[') && fromJSON((github.event.inputs.runs_on || inputs.runs_on)) || (github.event.inputs.runs_on || inputs.runs_on))) || 'ubuntu-latest') }} | |
| secrets: inherit |
🤖 Prompt for AI Agents
In .github/workflows/release.yml around lines 68 to 69, the current expression
uses inputs.runs_on which can cause expression errors for workflow_dispatch
events; update the runs-on expression to reference github.event.inputs.runs_on
(with the same JSON-array detection and fallback behavior) so it reads
conceptually: use github.event.inputs.runs_on if present, detect and parse a
JSON array when the input starts with '[' and otherwise use the scalar value,
and fall back to 'ubuntu-latest' when absent; keep the secrets: inherit line
as-is.
| determine-test-suite: | ||
| name: Determine Test Suites and Shard Distribution | ||
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | ||
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| outputs: |
There was a problem hiding this comment.
Two fixes: bracket access for 'runs-on' and workflow_dispatch context.
- Property names with hyphens require bracket notation.
- Support top-level workflow_dispatch via github.event.inputs.
Apply this diff:
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| determine-test-suite: | |
| name: Determine Test Suites and Shard Distribution | |
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | |
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| outputs: | |
| determine-test-suite: | |
| name: Determine Test Suites and Shard Distribution | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| outputs: |
🤖 Prompt for AI Agents
.github/workflows/typescript_test.yml around lines 75-78: the expression uses
dotted access for the input name with a hyphen and doesn't account for top-level
workflow_dispatch inputs; change dotted property access to bracket notation for
'runs-on' (e.g., inputs['runs-on']) everywhere in the expression and add a
fallback to github.event.inputs['runs-on'] so the runs-on value is read from
workflow_dispatch top-level inputs when present, keeping the existing array
detection and fromJSON logic and falling back to 'ubuntu-latest'.
| name: Playwright Tests - Shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | ||
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | ||
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| if: ${{ needs.determine-test-suite.outputs.test_grep != '' }} |
There was a problem hiding this comment.
Repeat the same runs-on fix here.
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| name: Playwright Tests - Shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | |
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| if: ${{ needs.determine-test-suite.outputs.test_grep != '' }} | |
| name: Playwright Tests - Shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| if: ${{ needs.determine-test-suite.outputs.test_grep != '' }} |
🤖 Prompt for AI Agents
.github/workflows/typescript_test.yml around lines 262 to 264: the runs-on
expression for the Playwright Tests job should use the same robust handling as
elsewhere to support inputs.runs-on being a JSON array or a simple string;
update the runs-on line to evaluate inputs.runs-on by checking
startsWith(format('{0}', inputs.runs-on), '[') and parsing with fromJSON when
appropriate, falling back to inputs.runs-on, and then defaulting to
'ubuntu-latest' if empty — mirror the exact expression used in the other job to
ensure consistent behavior.
| needs: setup-and-test | ||
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | ||
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | ||
| if: always() |
There was a problem hiding this comment.
Repeat runs-on bracket/context fix for merge-reports.
- runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }}
+ runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }}📝 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.
| needs: setup-and-test | |
| runs-on: ${{ inputs.runs-on || 'ubuntu-latest' }} | |
| runs-on: ${{ (inputs.runs-on && (startsWith(format('{0}', inputs.runs-on), '[') && fromJSON(inputs.runs-on) || inputs.runs-on)) || 'ubuntu-latest' }} | |
| if: always() | |
| needs: setup-and-test | |
| runs-on: ${{ (((inputs['runs-on'] || github.event.inputs['runs-on']) && (startsWith(format('{0}', (inputs['runs-on'] || github.event.inputs['runs-on'])), '[') && fromJSON((inputs['runs-on'] || github.event.inputs['runs-on'])) || (inputs['runs-on'] || github.event.inputs['runs-on']))) || 'ubuntu-latest') }} | |
| if: always() |
🤖 Prompt for AI Agents
.github/workflows/typescript_test.yml around lines 363 to 365: the merge-reports
job's runs-on line must use the same bracket/JSON-aware expression used
elsewhere, so replace the current runs-on value with the conditional expression
that checks inputs.runs-on, uses startsWith(format('{0}', inputs.runs-on), '[')
to detect JSON array and fromJSON(inputs.runs-on) when present, otherwise falls
back to inputs.runs-on, and finally defaults to 'ubuntu-latest'; leave the needs
and if lines intact.
- Introduced steps to display Docker system usage before and after cleanup in the `docker-build.yml` workflow. - Added commands to prune unused Docker objects and volumes, enhancing resource management during the build process.
- Refactored the `runs-on` attribute in `ci.yml`, `nightly_build.yml`, `python_test.yml`, `release.yml`, and `typescript_test.yml` to use a consistent syntax for better readability and maintainability. - Enhanced the logic to allow for more flexible runner specifications, improving compatibility across different environments.
|



runs-onattribute inci.yml,python_test.yml, andtypescript_test.yml, ensuring compatibility with the langflow-ai-arm64-40gb environment.Summary by CodeRabbit