Skip to content

Commit

Permalink
Add silverblue-downloader-kernel-cache image
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Wiest committed Jul 23, 2024
1 parent 4bedfde commit 6a9854a
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 0 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,32 @@ env:
REGISTRY_PASSWORD: ${{ github.token }}

jobs:
silverblue-downloader-kernel-cache-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Build container image
uses: redhat-actions/buildah-build@v2
with:
context: "silverblue-downloader-kernel-cache"
containerfiles: "silverblue-downloader-kernel-cache/Containerfile"
image: silverblue-downloader-kernel-cache
layers: false
oci: true

- name: Push to ghcr.io
uses: redhat-actions/push-to-registry@v2
with:
image: silverblue-downloader-kernel-cache
tags: "latest"
registry: ${{ env.IMAGE_REGISTRY }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
extra-args: |
--disable-content-trust
silverblue-builder-libimobiledevice-build:
runs-on: ubuntu-latest
steps:
Expand Down
10 changes: 10 additions & 0 deletions silverblue-downloader-kernel-cache/Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM fedora:40 AS downloader

RUN dnf install -y skopeo jq dnf-plugins-core && \
dnf clean all

COPY files/download-kernels.sh /tmp
RUN /tmp/download-kernels.sh

FROM scratch
COPY --from=downloader /tmp/rpms /rpms
24 changes: 24 additions & 0 deletions silverblue-downloader-kernel-cache/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

RED='\033[0;31m'
NO_COLOR='\033[0m'

set -eou pipefail


err_report() {
echo
echo
echo -e "${RED}Error $1 occured on line $2${NO_COLOR}"
echo
exit $1
}

trap 'err_report $? $LINENO' ERR

cd $(dirname $0)

IMGNAME=$(basename $PWD)
DATESTAMP=$(date +%Y-%m-%d)

time podman build $@ . -t "${IMGNAME}:${DATESTAMP}" -t "${IMGNAME}:latest" -t "ghcr.io/twiest/${IMGNAME}:latest"
48 changes: 48 additions & 0 deletions silverblue-downloader-kernel-cache/files/download-kernels.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

# Adapted / simplified for my use case from:
# https://github.com/ublue-os/kernel-cache/tree/main

set -euo pipefail

mkdir /tmp/rpms
cd /tmp/rpms

arch=x86_64
kernel_release=$(skopeo inspect docker://quay.io/fedora/fedora-coreos:stable | jq -r '.Labels["ostree.linux"]')

kernel_major=$(echo "$kernel_release" | cut -d '.' -f 1)
kernel_minor=$(echo "$kernel_release" | cut -d '.' -f 2)
kernel_patch=$(echo "$kernel_release" | cut -d '.' -f 3 | cut -d '-' -f 1)
kernel_distro_magic=$(echo "$kernel_release" | cut -d '.' -f 3 | cut -d '-' -f 2)
kernel_distro=$(echo "$kernel_release" | cut -d '.' -f 4)
kernel_arch=$(echo "$kernel_release" | cut -d '.' -f 5)
kernel_version=${kernel_major}.${kernel_minor}.${kernel_patch}-${kernel_distro_magic}.${kernel_distro}.${kernel_arch}

if [ $# -gt 0 ] && [ "$1" == "--debug" ]; then
echo kernel_major: $kernel_major
echo kernel_minor: $kernel_minor
echo kernel_patch: $kernel_patch
echo kernel_distro_magic: $kernel_distro_magic
echo kernel_distro: $kernel_distro
echo kernel_arch: $kernel_arch
echo kernel_version: $kernel_version
fi


kernel_pkg_base="https://kojipkgs.fedoraproject.org/packages/kernel/${kernel_major}.${kernel_minor}.${kernel_patch}/${kernel_distro_magic}.${kernel_distro}/${kernel_arch}"

for pkg in kernel kernel-modules kernel-modules-core kernel-modules-extra kernel-devel kernel-devel-matched kernel-uki-virt; do
echo "Running: dnf download -y ${kernel_pkg_base}/${pkg}-$kernel_version.rpm"
dnf download -y "${kernel_pkg_base}/${pkg}-$kernel_version.rpm"
echo
done

echo --------------------------------------------------------------------------------
echo
echo Results:
echo
pwd
ls -la --color
echo
echo --------------------------------------------------------------------------------

0 comments on commit 6a9854a

Please sign in to comment.