mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-02 21:00:55 +00:00
Now that we have the kernel build infrastructure at https://github.com/edera-dev/kernels it makes sense to drop building the kernel and download the kernel images directly. This change introduces a ./hack/kernel/fetch.sh script which is backed by crates/build We utilize the OCI infrastructure itself to download the kernel image. The DEV guide has been updated to include calling the fetch script, and the OS builder now uses this method instead. Due to the lack of need for the kernel build infra to exist here now, it has also been removed. This should significantly speed up full builds. This change will also enable us to turn on os build workflows for all PRs. We should likely make the OS status checks required once this is merged.
48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# shellcheck source-path=SCRIPTDIR source=common.sh
|
|
. "$(dirname "${0}")/common.sh"
|
|
|
|
if [ -z "${KRATA_KERNEL_BUILD_JOBS}" ]
|
|
then
|
|
KRATA_KERNEL_BUILD_JOBS="2"
|
|
fi
|
|
|
|
TARGET_ARCH="$("${KRATA_DIR}/hack/build/arch.sh")"
|
|
BUNDLE_TAR="${OUTPUT_DIR}/bundle-systemd-${TARGET_ARCH}.tgz"
|
|
rm -f "${BUNDLE_TAR}"
|
|
BUNDLE_DIR="$(mktemp -d /tmp/krata-bundle.XXXXXXXXXXXXX)"
|
|
BUNDLE_DIR="${BUNDLE_DIR}/krata"
|
|
mkdir -p "${BUNDLE_DIR}"
|
|
|
|
./hack/build/cargo.sh build --release --bin kratad --bin kratanet --bin kratactl
|
|
|
|
RUST_TARGET="$(./hack/build/target.sh)"
|
|
for X in kratad kratanet kratactl
|
|
do
|
|
cp "${KRATA_DIR}/target/${RUST_TARGET}/release/${X}" "${BUNDLE_DIR}/${X}"
|
|
done
|
|
./hack/initrd/build.sh
|
|
./hack/kernel/fetch.sh
|
|
|
|
cd "${BUNDLE_DIR}"
|
|
|
|
cp "${KRATA_DIR}/target/initrd/initrd-${TARGET_ARCH}" initrd
|
|
cp "${KRATA_DIR}/target/kernel/kernel-${TARGET_ARCH}" kernel
|
|
cp "${KRATA_DIR}/target/kernel/addons-${TARGET_ARCH}.squashfs" addons.squashfs
|
|
cp "${KRATA_DIR}/resources/systemd/kratad.service" kratad.service
|
|
cp "${KRATA_DIR}/resources/systemd/kratanet.service" kratanet.service
|
|
cp "${KRATA_DIR}/resources/bundle/install.sh" install.sh
|
|
cp "${KRATA_DIR}/resources/bundle/uninstall.sh" uninstall.sh
|
|
|
|
for X in install.sh uninstall.sh kratactl kratad kratanet
|
|
do
|
|
chmod +x "${X}"
|
|
done
|
|
|
|
cd ..
|
|
tar czf "${BUNDLE_TAR}" .
|
|
cd "${KRATA_DIR}"
|
|
rm -rf "$(dirname "${BUNDLE_DIR}")"
|