linuxboot/.github/workflows/ci.yml
Daniel Maslowski a6a31b3c45 CI: omit beaglev for now due to upstream sources gone
Signed-off-by: Daniel Maslowski <info@orangecms.org>
2022-01-12 10:46:27 -08:00

106 lines
3.2 KiB
YAML

name: CI
on:
# Triggers the workflow on push or pull request events but only for the
# master branch.
push:
branches: [main]
pull_request:
branches: [main]
# Triggers the workflow every day at 23:00.
schedule:
- cron: '0 23 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in
# parallel.
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Environment variables
env:
# Setup $GOPATH
GOPATH: ${{ github.workspace }}/go
# Turn off modules because they are broken.
GO111MODULE: off
# Run the build for each one of these configurations in parallel.
strategy:
matrix:
# The `${{ matrix.mainboard }}` variable is replaced with each of these.
mainboard:
# '-' is used instead of '/' due to restrictions on artifact upload.
- aeeon-up
- aeeon-upxtreme
- amd-rome
- ampere-jade
- bytedance-g220a
- cubie-board
- digitalloggers-atomicpi
- hpe-dl360gen10
- intel-generic
- intel-hw
- intel-minplatform
- intel-s2600
- lenovo-hr630
- lenovo-sr630
- lenovo-thinkpad
- marvel-macchiatobin
- opentitanpilot-dresden
- pcengines-apu
- pcengines-apu2
# - seeed-beaglev # FIXME: broken due to upstream sources gone
- slimboot
- st-st32mp1517c
- tyan7106
- qemu-x86_64
- walmart-robot
# Do not cancel all jobs steps if a single one fails.
fail-fast: false
# Steps represent a sequence of tasks that will be executed as part of the
# job.
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can
# access it.
- uses: actions/checkout@v2
# We need this newer version of Go.
- name: Go version
uses: actions/setup-go@v2
with:
go-version: '^1.17.6'
- name: Install dependent packages
run: |
set -ex
sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi{,hf} gcc-riscv64-linux-gnu libelf-dev u-boot-tools
# TODO: This is a temporary workaround, need to streamline key handling
- name: Fake SSH keys to pass builds
run: |
mkdir ~/.ssh && touch ~/.ssh/cpu_rsa.pub
touch mainboards/tyan7106/key.pub
touch mainboards/tyan7106/ssh_host_rsa_key
# Runs a set of commands using the runners shell
- name: Make ${{ matrix.mainboard }} kernel
run: |
set -ex
cd mainboards
PATH=$GOPATH/bin:/usr/local/go/bin:$PATH
cd $(echo ${{ matrix.mainboard }} | tr '-' '/')
make fetch
make flashkernel
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.mainboard }}
path: |
**/flashkernel
**/flashinitramfs.cpio
retention-days: 30