From 190f7fe0ecb9a56deb09414079c74357b735b83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 18 Aug 2023 17:09:33 -0400 Subject: [PATCH] zabbly: Add build workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber --- .github/workflows/builds.yml | 111 +++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 .github/workflows/builds.yml diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml new file mode 100644 index 00000000000000..7c69a488244383 --- /dev/null +++ b/.github/workflows/builds.yml @@ -0,0 +1,111 @@ +name: Builds +on: + - push + +permissions: + contents: read + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + build-kernel: + name: Build kernel + strategy: + fail-fast: false + matrix: + os: + - ubuntu-20.04 + - ubuntu-22.04 + - debian-11 + - debian-12 + arch: + - amd64 + exclude: + - os: debian-11 + arch: arm64 + runs-on: + - self-hosted + - cpu-16 + - mem-8G + - arch-${{ matrix.arch }} + - image-${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get install --yes \ + bc \ + binutils \ + bison \ + cpio \ + debhelper \ + dpkg-dev \ + flex \ + git \ + kmod \ + libelf-dev \ + libssl-dev \ + rsync \ + zstd + + sudo apt-get install --yes pahole || true + + - name: Configure git + run: | + git config user.email "noreply@zabbly.com" + git config user.name "Zabbly kernel build" + + - name: Generate version string + env: + PKGARCH: "${{ matrix.arch }}" + PKGOS: "${{ matrix.os }}" + run: | + VERSION="$(make kernelversion)-${PKGARCH}-$(date -u +%Y%m%d%H%M)-$(echo ${PKGOS} | sed "s/-//g")" + echo "${VERSION}" + echo "${VERSION}" > ../.version + + - name: Update the configuration + run: | + export KDEB_PKGVERSION="$(cat ../.version)" + + make oldconfig + git diff .config > ../linux-${KDEB_PKGVERSION}.config.diff + git commit -m "TEMP: Refresh kernel configuration" .config + + - name: Prepare for the build + run: | + mv .config .config.new + git commit -m "TEMP: Remove config from index" .config + mv .config.new .config + + - name: Build the kernel + env: + DEBEMAIL: "info@zabbly.com" + DEBFULLNAME: "Zabbly Kernel Builds" + KDEB_CHANGELOG_DIST: "${{ matrix.os }}" + KDEB_COMPRESS: "zstd" + PKGOS: "${{ matrix.os }}" + run: | + [ "${PKGOS}" = "debian-11" ] && export KDEB_COMPRESS="gzip" + + export KDEB_PKGVERSION="$(cat ../.version)" + export KDEB_SOURCENAME="linux-zabbly-${KDEB_PKGVERSION}" + + make deb-pkg -j16 || make deb-pkg -j16 + + - name: Prepare the artifacts + run: | + mkdir out/ + mv ../linux-* out/ + rm -f out/*dbg* + + - name: Upload resulting build + uses: actions/upload-artifact@v3 + continue-on-error: true + with: + name: ${{ matrix.os }}-${{ matrix.arch }} + path: out/*