Skip to content

ci: refactor workflow/kernel cache key + cache initrd#176

Open
laurazard wants to merge 5 commits intomainfrom
laurazard/ci-refactor-up
Open

ci: refactor workflow/kernel cache key + cache initrd#176
laurazard wants to merge 5 commits intomainfrom
laurazard/ci-refactor-up

Conversation

@laurazard
Copy link
Copy Markdown
Member

No description provided.

laurazard added 5 commits May 5, 2026 14:46
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Copilot AI review requested due to automatic review settings May 5, 2026 12:48
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the CI workflows around cached VM artifacts: it centralizes kernel cache-key calculation, splits kernel builds by architecture, and adds initrd caching/artifact handoff so integration jobs can reuse prebuilt guest artifacts.

Changes:

  • Extracts kernel cache-key generation into a reusable composite action and updates the benchmark workflow to use it.
  • Splits CI kernel builds into separate x86_64 and arm64 jobs and forwards their cache keys into integration.
  • Adds a dedicated initrd build/cache/upload job, then updates integration to restore the kernel, download the initrd artifact, build the shim locally, and run the integration script.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/ci.yml Refactors CI job graph for kernel/initrd artifact reuse and updates integration execution.
.github/workflows/benchmarks.yml Switches benchmark kernel cache-key calculation to the new reusable action.
.github/actions/kernel-cache-key/action.yml Adds a composite action that computes deterministic kernel cache keys.
.github/actions/build-kernel/action.yml Reuses the new cache-key action and exposes the computed key as an output.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
kernel_version: ${{ needs.setup.outputs.kernel-version }}
kernel_arch: ${{ matrix.arch }}
path: _output/nerdbox-initrd
key: initrd-${{ matrix.arch }}-${{ hashFiles('go.sum', 'Dockerfile', 'cmd/vminitd/**', 'internal/**') }}
Comment thread .github/workflows/ci.yml
Comment on lines +274 to 279
- name: Build shim
run: make _output/containerd-shim-nerdbox-v1

- name: Add _output to PATH
run: echo "$(pwd)/_output" >> $GITHUB_PATH

Comment thread .github/workflows/ci.yml
- name: Run integration tests
run: go test -v ./integration/...
shell: bash
run: ./integration/test.sh
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.

2 participants