Build kernel #250
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: kernel_build | |
run-name: Build kernel | |
on: | |
workflow_dispatch: | |
inputs: | |
kvnum: | |
description: 'Kernel version number' | |
required: true | |
default: '6.6.4' | |
type: 'string' | |
jobs: | |
amd64_kernel: | |
name: AMD64 Kernel | |
runs-on: ubuntu-latest | |
container: | |
image: docker.io/uycyjnzgntrn/rust-linux:1.64.0 | |
options: "--platform linux/amd64 --privileged --cap-add SYS_ADMIN --device /dev/fuse" | |
volumes: | |
- ${{ github.workspace }}:/src | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build | |
shell: bash | |
run: | | |
MAJOR_KERNEL_VERSION=$(echo "${{ inputs.kvnum }}" | awk -F"." '{print $1}') | |
mkdir -p /tmp/artifacts | |
cp config.amd64 /tmp/artifacts/config | |
apt update && apt install -y xz-utils build-essential ca-certificates curl bc kmod cpio flex gcc libncurses5-dev libelf-dev libssl-dev dwarves bison ccache rsync wget zstd debhelper | |
mkdir -p /usr/src/kernel | |
cd /usr/src/kernel && curl -L -o linux-${{ inputs.kvnum }}.tar.xz https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_KERNEL_VERSION}.x/linux-${{ inputs.kvnum }}.tar.xz | |
cd /usr/src/kernel && tar axf linux-${{ inputs.kvnum }}.tar.xz | |
rm /usr/src/kernel/linux-${{ inputs.kvnum }}.tar.xz | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && cp /tmp/artifacts/config .config | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && ./scripts/config --disable SYSTEM_TRUSTED_KEYS | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && ./scripts/config --disable SYSTEM_REVOCATION_KEYS | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && ./scripts/config --disable DEBUG_INFO | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && ./scripts/config --enable DEBUG_INFO_NONE | |
cd /usr/src/kernel/linux-${{ inputs.kvnum }} && nice make LOCALVERSION=-smallserver ZSTD_CLEVEL=22 CC="gcc" -j`nproc` bindeb-pkg && cp ../*.deb /tmp/artifacts/ && rm /tmp/artifacts/config | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: kernel-deblive-smallserver-${{ inputs.kvnum}}-amd64 | |
path: /tmp/artifacts | |
arm64_kernel: | |
name: ARM64 Kernel | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Build | |
shell: bash | |
run: | | |
MAJOR_KERNEL_VERSION=$(echo "${{ inputs.kvnum }}" | awk -F"." '{print $1}') | |
mkdir -p /tmp/artifacts && cp ${{ github.workspace }}/config.arm64 /tmp/artifacts/config && docker run --platform linux/amd64 --privileged --cap-add SYS_ADMIN --device /dev/fuse -v /tmp/artifacts:/artifacts docker.io/uycyjnzgntrn/rust-linux:1.64.0 /bin/sh -c "apt update && apt install -y xz-utils git ca-certificates binutils-aarch64-linux-gnu fakeroot zlib1g-dev gcc-aarch64-linux-gnu build-essential curl bc kmod cpio flex libncurses5-dev libelf-dev debhelper libssl-dev dwarves bison ccache rsync wget zstd && mkdir -p /usr/src/kernel && cd /usr/src/kernel && curl -L -o linux-${{ inputs.kvnum }}.tar.xz https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_KERNEL_VERSION}.x/linux-${{ inputs.kvnum }}.tar.xz && tar axf linux-${{ inputs.kvnum }}.tar.xz && rm /usr/src/kernel/linux-${{ inputs.kvnum }}.tar.xz && cd /usr/src/kernel/linux-${{ inputs.kvnum }} && cp /artifacts/config .config && ./scripts/config --disable SYSTEM_TRUSTED_KEYS && ./scripts/config --disable SYSTEM_REVOCATION_KEYS && ./scripts/config --disable DEBUG_INFO && ./scripts/config --enable DEBUG_INFO_NONE && nice make ARCH=arm64 DEB_HOST_ARCH=arm64 CONCURRENCY_LEVEL=`nproc` CC=aarch64-linux-gnu-gcc CROSS_COMPILE=aarch64-linux-gnu- LOCALVERSION=-smallserver ZSTD_CLEVEL=22 bindeb-pkg && cp ../*.deb /artifacts/ && rm /artifacts/config" | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: kernel-deblive-smallserver-${{ inputs.kvnum}}-arm64 | |
path: /tmp/artifacts |