FROM BUILDER AS build_prep ARG DUAL_SIGN="true" ARG KERNEL_FLAVOR_ARG ARG KERNEL_NAME_ARG ARG RPMFUSION_MIRROR_ARG ARG VERSION_ARG #ifdef CI_SETX ARG CI=1 #endif /* CI_SETX */ #ifdef NVIDIA ARG KMOD_REPO_ARG #endif /* NVIDIA */ # /* # common copy/add # */ COPY certs /tmp/certs COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules #ifndef CENTOS ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${VERSION}/ublue-os-akmods-fedora-${VERSION}.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo ADD https://negativo17.org/repos/fedora-multimedia.repo \ /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo #endif # /* # Preperation # */ COPY build_files/prep /tmp/ RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail ls -sh /tmp/kernel_cache /tmp/build-prep.sh RUNEOF FROM build_prep AS builder ARG DUAL_SIGN="true" ARG KERNEL_FLAVOR_ARG ARG KERNEL_NAME_ARG ARG RPMFUSION_MIRROR_ARG ARG VERSION_ARG #ifdef CI_SETX ARG CI=1 #endif /* CI_SETX */ #ifdef NVIDIA ARG KMOD_REPO_ARG #endif /* NVIDIA */ #ifdef ZFS ARG ZFS_MINOR_VERSION="2.3" #endif /* ZFS */ #if defined COMMON # /* # common akmods # */ COPY build_files/common /tmp/ RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail /tmp/build-ublue-os-akmods-addons.sh cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm /var/cache/rpms/ublue-os/ RUNEOF RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' /tmp/build-kmod-framework-laptop.sh /tmp/build-kmod-openrazer.sh /tmp/build-kmod-v4l2loopback.sh /tmp/build-kmod-wl.sh /tmp/build-kmod-xone.sh RUNEOF #elif defined NVIDIA # /* # nvidia kmods # */ COPY build_files/nvidia /tmp/ RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' /tmp/build-ublue-os-nvidia-addons.sh cp /tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/noarch/ublue-os-nvidia-addons*.rpm /var/cache/rpms/ublue-os/ RUNEOF RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' /tmp/build-kmod-nvidia.sh "$KMOD_REPO" RUNEOF #elif defined ZFS # /* # zfs akmods # */ COPY build_files/zfs /tmp/ RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail if [[ "${KERNEL_FLAVOR}" =~ (coreos|longterm) ]]; then /tmp/build-ublue-os-ucore-addons.sh cp /tmp/ublue-os-ucore-addons/rpmbuild/RPMS/noarch/ublue-os-ucore-addons*.rpm /var/cache/rpms/ucore/ fi RUNEOF RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail /tmp/build-kmod-zfs.sh RUNEOF #endif # /* # Signing # */ COPY build_files/post /tmp/ RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail #ifdef ZFS /tmp/dual-sign-zfs.sh #else /tmp/dual-sign.sh #endif /* ZFS */ /tmp/build-post.sh RUNEOF FROM scratch AS RPM_CACHE COPY --from=builder /var/cache/kernel-rpms /kernel-rpms COPY --from=builder /var/cache/rpms /rpms FROM build_prep AS test ARG DUAL_SIGN="true" ARG KERNEL_FLAVOR_ARG ARG KERNEL_NAME_ARG ARG RPMFUSION_MIRROR_ARG ARG VERSION_ARG #ifdef CI_SETX ENV CI=1 #endif COPY --from=RPM_CACHE /kernel-rpms /tmp/kernel_cache COPY --from=RPM_CACHE /rpms /tmp/akmods-rpms COPY build_files/test/test-prep.sh /tmp/ COPY certs /tmp/certs RUN --mount=type=cache,dst=/var/cache/dnf \ --mount=type=cache,dst=/var/cache/libdnf5 \ bash <<'RUNEOF' set "${CI+-x}" -euo pipefail /tmp/test-prep.sh RUNEOF COPY build_files/test/check-signatures.sh /tmp/ CMD ["/tmp/check-signatures.sh"] FROM scratch AS RPMS COPY --from=RPM_CACHE / /