Add missing prerequisite #207
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: Build-All | |
on: [push] | |
# TODO: | |
# - Verify output binary | |
# - Create releases if pushed to Master (w/binary attachment and sig) | |
# This would require a private key in repo. Maybe a short-expiring sub-key? | |
# | |
# We are using Matrix build here on Github Actions for parallel execution. | |
# We have 3 parameters: device, arch, boot | |
# While the Mark II allows for 4 builds (imx6ulz, imx6ul) this matrix becomes | |
# an issue with the Mark One because the Makefile errors if you pass eMMC as | |
# the boot parameter or imx6ulz/imx6ul as the arch. | |
# | |
# +----------+---------+------+------+ | |
# | device | arch | boot | CI | | |
# +----------+---------+------+------+ | |
# | mark-one | imx53 | uSD | PASS | | |
# | mark-one | imx53 | eMMC | FAIL | | |
# | mark-one | imx6ul | uSD | FAIL | | |
# | mark-one | imx6ul | eMMC | FAIL | | |
# | mark-one | imx6ulz | uSD | FAIL | | |
# | mark-one | imx6ulz | eMMC | FAIL | | |
# +----------+---------+------+------+ | |
# | mark-two | imx53 | uSD | FAIL | | |
# | mark-two | imx53 | eMMC | FAIL | | |
# | mark-two | imx6ul | uSD | PASS | | |
# | mark-two | imx6ul | eMMC | PASS | | |
# | mark-two | imx6ulz | uSD | PASS | | |
# | mark-two | imx6ulz | eMMC | PASS | | |
# +----------+---------+------+------+ | |
# | |
# Therefore, there are only 5 successful builds, and 7 expected failed | |
# builds per the above matrix. However, Github Actions doesn't have a clean | |
# way of testing for failed builds with specific matrix params. Therefore, | |
# we need two "jobs" below. One for mark one, and one for mark two. | |
# | |
jobs: | |
mark-one: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [imx53] | |
boot: [uSD] | |
device: [mark-one] | |
steps: | |
- uses: actions/checkout@v3.3.0 | |
- uses: actions/setup-go@v3.5.0 | |
with: | |
go-version: '1.22.0' | |
- name: Prerequisites | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
bc binfmt-support bzip2 fakeroot gcc gcc-arm-linux-gnueabihf git \ | |
gnupg make parted rsync qemu-user-static wget xz-utils zip debootstrap \ | |
sudo dirmngr bison flex libssl-dev kmod | |
- name: Import Signing Keys | |
run: | # public key servers time out on at least one test, therefore we fetch cached keys | |
wget https://usbarmory.github.io/keys/38DBBDC86092693E.asc && gpg --import 38DBBDC86092693E.asc | |
wget https://usbarmory.github.io/keys/147C39FF9634B72C.asc && gpg --import 147C39FF9634B72C.asc | |
- run: make V=${{ matrix.device }} IMX=${{ matrix.arch }} BOOT=${{ matrix.boot }} | |
mark-two: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [imx6ul, imx6ulz] | |
boot: [uSD, eMMC] | |
mem: [512M, 1G] | |
device: [mark-two] | |
steps: | |
- uses: actions/checkout@v3.3.0 | |
- uses: actions/setup-go@v3.5.0 | |
with: | |
go-version: '1.22.0' | |
- name: Prerequisites | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
bc binfmt-support bzip2 fakeroot gcc gcc-arm-linux-gnueabihf git \ | |
gnupg make parted rsync qemu-user-static wget xz-utils zip debootstrap \ | |
sudo dirmngr bison flex libssl-dev kmod | |
- name: Import Signing Keys | |
run: | # public key servers time out on at least one test, therefore we fetch cached keys | |
wget https://usbarmory.github.io/keys/38DBBDC86092693E.asc && gpg --import 38DBBDC86092693E.asc | |
wget https://usbarmory.github.io/keys/147C39FF9634B72C.asc && gpg --import 147C39FF9634B72C.asc | |
- run: make V=${{ matrix.device }} IMX=${{ matrix.arch }} MEM=${{ matrix.mem }} BOOT=${{ matrix.boot }} |