nightly: bundle systemd service files and install script

This commit is contained in:
Alex Zenla 2024-03-05 22:17:14 +00:00
parent a5af3ffbe7
commit 0f85e30149
No known key found for this signature in database
GPG Key ID: 067B238899B51269
8 changed files with 82 additions and 28 deletions

View File

@ -11,9 +11,9 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: ./scripts/ci/install-deps.sh
- run: ./scripts/ci/nightly.sh
- run: ./scripts/bundle.sh
- uses: actions/upload-artifact@v4
with:
name: krata-nightly
path: krata.tgz
path: target/bundle/krata.tgz
compression-level: 0

3
.gitignore vendored
View File

@ -1,2 +1,5 @@
/target
/krata.tgz
/initrd/target
/kernel/target
Cargo.lock

View File

@ -10,7 +10,7 @@ if [ ! -f "${SRC_DIR_NAME}/Makefile" ]
then
rm -rf "${SRC_DIR_NAME}"
curl -L -o "${SRC_DIR_NAME}.txz" "${KERNEL_SRC_URL}"
tar xvf "${SRC_DIR_NAME}.txz"
tar xf "${SRC_DIR_NAME}.txz"
rm "${SRC_DIR_NAME}.txz"
fi

32
resources/install/install.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh
set -e
REAL_SCRIPT="$(realpath "${0}")"
cd "$(dirname "${REAL_SCRIPT}")"
if [ -f "/etc/systemd/system/kratad.service" ]
then
systemctl disable --now kratad.service
fi
if [ -f "/etc/systemd/system/kratanet.service" ]
then
systemctl disable --now kratanet.service
fi
cp kratad.service /etc/systemd/system/kratad.service
cp kratanet.service /etc/systemd/system/kratanet.service
cp kratad kratanet kratactl /usr/local/bin
chmod +x /usr/local/bin/kratad
chmod +x /usr/local/bin/kratanet
chmod +x /usr/local/bin/kratactl
mkdir -p /var/lib/krata/default
cp kernel /var/lib/krata/default/kernel
cp initrd /var/lib/krata/default/initrd
systemctl daemon-reload
systemctl enable kratad.service kratanet.service
systemctl restart kratad.service kratanet.service

View File

@ -5,7 +5,8 @@ Description=Krata Controller Daemon
Restart=on-failure
Type=simple
WorkingDirectory=/var/lib/krata
ExecStart=/usr/bin/kratad
ExecStart=/usr/local/bin/kratad -l /var/lib/krata/daemon.socket --unix-listen-unlink
Environment=RUST_LOG=info
User=root
[Install]

View File

@ -5,7 +5,8 @@ Description=Krata Networking Daemon
Restart=on-failure
Type=simple
WorkingDirectory=/var/lib/krata
ExecStart=/usr/bin/kratanet
ExecStart=/usr/local/bin/kratanet
Environment=RUST_LOG=info
User=root
[Install]

40
scripts/bundle.sh Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
set -e
REAL_SCRIPT="$(realpath "${0}")"
cd "$(dirname "${REAL_SCRIPT}")/.."
KRATA_DIR="${PWD}"
OUTPUT_DIR="${KRATA_DIR}/target/bundle"
mkdir -p "${OUTPUT_DIR}"
BUNDLE_TAR="${OUTPUT_DIR}/krata.tgz"
rm -f "${BUNDLE_TAR}"
BUNDLE_DIR="$(mktemp -d /tmp/krata-bundle.XXXXXXXXXXXXX)"
BUNDLE_DIR="${BUNDLE_DIR}/krata"
mkdir -p "${BUNDLE_DIR}"
for X in kratad kratanet kratactl
do
cargo build --release --target x86_64-unknown-linux-gnu --bin "${X}"
cp "${KRATA_DIR}/target/x86_64-unknown-linux-gnu/release/${X}" "${BUNDLE_DIR}/${X}"
done
./initrd/build.sh
if [ "${KRATA_BUNDLE_SKIP_KERNEL_BUILD}" != "1" ]
then
./kernel/build.sh
fi
cd "${BUNDLE_DIR}"
cp "${KRATA_DIR}/initrd/target/initrd" initrd
cp "${KRATA_DIR}/kernel/target/kernel" kernel
cp "${KRATA_DIR}/resources/systemd/kratad.service" kratad.service
cp "${KRATA_DIR}/resources/systemd/kratanet.service" kratanet.service
cp "${KRATA_DIR}/resources/install/install.sh" install.sh
for X in install.sh kratactl kratad kratanet
do
chmod +x "${X}"
done
cd ..
tar czf "${BUNDLE_TAR}" .
cd "${KRATA_DIR}"
rm -rf "$(dirname "${BUNDLE_DIR}")"

View File

@ -1,23 +0,0 @@
#!/bin/sh
set -e
REAL_SCRIPT="$(realpath "${0}")"
cd "$(dirname "${REAL_SCRIPT}")/../.."
KRATA_DIR="${PWD}"
NIGHTLY_TAR="${KRATA_DIR}/krata.tgz"
NIGHTLY_DIR="$(mktemp -d /tmp/krata-release.XXXXXXXXXXXXX)"
for X in kratad kratanet kratactl
do
cargo build --release --target x86_64-unknown-linux-gnu --bin "${X}"
cp "${KRATA_DIR}/target/x86_64-unknown-linux-gnu/release/${X}" "${NIGHTLY_DIR}/${X}"
done
./initrd/build.sh
./kernel/build.sh
cd "${NIGHTLY_DIR}"
cp "${KRATA_DIR}/initrd/target/initrd" initrd
cp "${KRATA_DIR}/kernel/target/kernel" kernel
cp "${KRATA_DIR}/resources/systemd/kratad.service" kratad.service
cp "${KRATA_DIR}/resources/systemd/kratanet.service" kratanet.service
tar czf "${NIGHTLY_TAR}" .
cd "${KRATA_DIR}"
rm -rf "${NIGHTLY_DIR}"