Skip to content

ci: hand build→aggregate kernel artifacts via workflow artifacts#50

Open
lacraig2 wants to merge 1 commit into
mainfrom
workspace/ci-artifact-handoff
Open

ci: hand build→aggregate kernel artifacts via workflow artifacts#50
lacraig2 wants to merge 1 commit into
mainfrom
workspace/ci-artifact-handoff

Conversation

@lacraig2

Copy link
Copy Markdown
Contributor

What

The kernel build pipeline (build matrix → aggregate) passed per-target
tarballs between jobs through a shared hostPath
(/home/runner/_shared/runs/$GITHUB_RUN_ID/build-output): build wrote them,
aggregate read them back. This only works because all rehosting-arc runners
are currently pinned to a single node.

This PR switches that handoff to GitHub workflow artifacts:

  • build uploads kernels-<target> via actions/upload-artifact
  • aggregate pulls them with actions/download-artifact (merge-multiple) into
    a workspace-local build-output/, then combines/releases exactly as before.

The obsolete per-run runs/ cleanup step is removed (artifacts expire on their
own retention; the workspace dir is ephemeral). Combine/merge/release logic is
otherwise unchanged.

Why

It removes the last cross-node dependency in rehosting CI. Today rehosting-arc
is pinned (nodeSelector: rehosting.shared-node) to the control-plane node so
this handoff stays on one node — which also confines all rehosting CI to that
one (disk-pressured) node and leaves the second 100-core worker unusable by
rehosting. With this handoff node-agnostic, the scale set can spread across both
nodes.

Note: the aggregate job only runs on tag/workflow_dispatch (release) builds,
so normal PR/push builds were already node-agnostic; this fixes the release path.

Test plan

  • A release build (tag / workflow_dispatch) produces kernels-latest.tar.gz
    and kernel-devel-all.tar.gz identical in contents to before.

The build matrix wrote per-target kernel tarballs to a shared hostPath
(/home/runner/_shared/runs/$GITHUB_RUN_ID) and the aggregate job read them
back. That only works while all rehosting-arc runners are pinned to one node.
Pass the tarballs through actions/upload-artifact + download-artifact instead,
removing the cross-node dependency so rehosting CI can run across both cluster
nodes. Combine/merge/release logic is unchanged.
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.

1 participant