From 349fdc5bfef033072ef42599cd0a92c839802a76 Mon Sep 17 00:00:00 2001 From: Austin English Date: Fri, 8 May 2020 03:56:19 -0500 Subject: [PATCH] add github action --- .github/workflows/build-image.yml | 21 ++++++++++++++++++ tests/build-image.sh | 37 +++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/workflows/build-image.yml create mode 100755 tests/build-image.sh diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml new file mode 100644 index 0000000..fa95490 --- /dev/null +++ b/.github/workflows/build-image.yml @@ -0,0 +1,21 @@ +# FIXME: currently just builds it, eventually, should use qemu to try to run +# the image (potentially as a separate action) +name: build-prawnos-image + +on: [push] +jobs: + build: + name: build + runs-on: ubuntu-latest + steps: + - name: checkout project + uses: actions/checkout@master + - name: build image + run: docker run --mount type=bind,source=$PWD,target=/PrawnOS + --privileged=true -v/dev:/dev debian:buster + /bin/bash /PrawnOS/tests/build-image.sh "$GITHUB_SHA" + - name: publish image + uses: actions/upload-artifact@v2 + with: + name: image + path: "PrawnOS-Shiba-c201-git-*.img" diff --git a/tests/build-image.sh b/tests/build-image.sh new file mode 100755 index 0000000..87828bc --- /dev/null +++ b/tests/build-image.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# This file is part of PrawnOS (http://www.prawnos.com) +# Copyright (c) 2020 Austin English + +# PrawnOS is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 +# as published by the Free Software Foundation. + +# PrawnOS is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with PrawnOS. If not, see . + +set -e +set -x + +GITHUB_SHA="$1" + +cd "$(dirname "$0")/.." + +# Get dependencies listed in README.md: +apt-get update +apt-get -y install --no-install-recommends --no-install-suggests bc binfmt-support bison cgpt cmake debootstrap device-tree-compiler flex g++ gawk gcc gcc-arm-none-eabi git libc-dev libncurses-dev libssl-dev lzip make parted patch qemu-user-static texinfo u-boot-tools vboot-kernel-utils wget + +# And install stuff that is missing from the Debian/buster container: +apt-get -y install --no-install-recommends --no-install-suggests bzip2 ca-certificates cpio file gpg gpg-agent kmod udev + +# Note: there's an error for /proc/modules, but at least building the image works fine: +# libkmod: ERROR ../libkmod/libkmod-module.c:1657 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory +make image + +# rename the image to include git sha: +mv PrawnOS-Shiba-c201.img "PrawnOS-Shiba-c201-git-${GITHUB_SHA}.img"