Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build kernels on CI #45

Merged
merged 2 commits into from
Dec 8, 2023
Merged

build kernels on CI #45

merged 2 commits into from
Dec 8, 2023

Conversation

lmb
Copy link
Collaborator

@lmb lmb commented Dec 7, 2023

rename Dockerfile to Dockerfile.builder

Signed-off-by: Lorenz Bauer <[email protected]>

build kernels on CI

We've so far relied on manually compiling kernels on developer machines. 
This means that we often lag behind vs released kernel.org versions. The
compiled kernels are stored in large-file storage which is awkward to use
and bloats the repository. There is also no way to validate that the built
artifacts have not been tampered with.

Add a GH Actions workflow which reads a list of versions from a JSON and 
then builds the kernels. Selftests are only built for the latest stable 
release, since keeping up with selftest breakage is just not worth it.

The existing ccache integration is used to make repeated builds of the same
kernels faster. This brings a very simple rebuild down to two minutes or so.

The output of the build process is a single package with several tags for
each kernel version:

    ghcr.io/cilium/ci-kernels:6.7-rc4
   ghcr.io/cilium/ci-kernels:6.7
   ghcr.io/cilium/ci-kernels:6.7-rc4-selftests
   ghcr.io/cilium/ci-kernels:6.7-selftests

Signed-off-by: Lorenz Bauer <[email protected]>

@lmb lmb force-pushed the lmb/gha-build branch 10 times, most recently from 7c375f1 to 5251bf8 Compare December 8, 2023 11:22
@lmb lmb force-pushed the lmb/gha-build branch 18 times, most recently from 96cf603 to 3ef22a4 Compare December 8, 2023 15:10
@lmb lmb changed the title WIP build kernels on CI Dec 8, 2023
@lmb lmb requested review from ti-mo and removed request for ti-mo December 8, 2023 15:11
@lmb lmb marked this pull request as ready for review December 8, 2023 15:14
We've so far relied on manually compiling kernels on developer machines.
This means that we often lag behind vs released kernel.org versions.
The compiled kernels are stored in large-file storage which is awkward
to use and bloats the repository. There is also no way to validate that
the built artifacts have not been tampered with.

Add a GH Actions workflow which reads a list of versions from a JSON and
then builds the kernels. Selftests are only built for the latest stable
release, since keeping up with selftest breakage is just not worth it.

The existing ccache integration is used to make repeated builds of the
same kernels faster. This brings a very simple rebuild down to two
minutes or so.

The output of the build process is a single package with several tags
for each kernel version:

    ghcr.io/cilium/ci-kernels:6.7-rc4
    ghcr.io/cilium/ci-kernels:6.7
    ghcr.io/cilium/ci-kernels:6.7-rc4-selftests
    ghcr.io/cilium/ci-kernels:6.7-selftests

Signed-off-by: Lorenz Bauer <[email protected]>
@lmb lmb merged commit 474179e into master Dec 8, 2023
12 checks passed
@lmb lmb deleted the lmb/gha-build branch December 8, 2023 15:27
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