Skip to content

Add split build/test callable workflow for validation#1067

Open
bob80905 wants to merge 3 commits intollvm:mainfrom
bob80905:split_build_from_test
Open

Add split build/test callable workflow for validation#1067
bob80905 wants to merge 3 commits intollvm:mainfrom
bob80905:split_build_from_test

Conversation

@bob80905
Copy link
Copy Markdown
Contributor

@bob80905 bob80905 commented Apr 8, 2026

Every PR test job holds a GPU runner for the full build+test duration (7–16 min), even though 67–86% of that time is CPU-only DXC/LLVM compilation. With one self-hosted runner per GPU SKU, this means builds block GPU-dependent test work unnecessarily.

This PR adds two new, standalone workflow files — no existing workflows are modified:

build-and-test-split-callable.yaml — A split version of the callable workflow:

  • Build job: Runs on any available runner of the matching architecture ([self-hosted, Windows, X64] for Intel/NVIDIA/AMD, [self-hosted, ARM64, Windows] for QC). Builds DXC + LLVM, uploads artifacts via tar.
  • Test job: Runs on the GPU-specific runner (hlsl-${{ inputs.SKU }}). Downloads build artifacts, extracts with --touch to preserve ninja timestamp freshness, then runs tests.
  • macOS: Unchanged — stays as a single combined job since builds are only ~1 min.

validate-split-build-test.yaml — A workflow_dispatch workflow to validate the split callable per-SKU before migrating production workflows.

Fixes #1081

Assisted by: Github Copilot

@bob80905 bob80905 changed the title first attempt Add split build/test callable workflow for validation Apr 8, 2026
@bob80905 bob80905 marked this pull request as ready for review April 8, 2026 22:59
DXC/build/bin llvm-project/build
- name: Upload build artifacts
if: inputs.OS == 'windows'
uses: actions/upload-artifact@v4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

Write-Host "DxDiag report saved to $output"
- name: Upload dxdiag artifact
if: failure()
uses: actions/upload-artifact@v4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

# --touch ensures extracted files get current timestamps so ninja
# sees build outputs as newer than source files (no rebuild).
- name: Download build artifacts
uses: actions/download-artifact@v4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
uses: actions/download-artifact@v4
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split build jobs from test jobs in the offload test suite.

2 participants