add github action

This commit is contained in:
Austin English 2020-05-08 03:56:19 -05:00
parent dc05dac672
commit 349fdc5bfe
2 changed files with 58 additions and 0 deletions

21
.github/workflows/build-image.yml vendored Normal file
View File

@ -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"

37
tests/build-image.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2020 Austin English <austinenglish@gmail.com>
# 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 <https://www.gnu.org/licenses/>.
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"