Skip to content

Commit

Permalink
Switch to GitHub CI builds
Browse files Browse the repository at this point in the history
Remove AppVeyor builds
  • Loading branch information
pbatard committed Mar 25, 2021
1 parent 93bb618 commit 07ab11c
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 65 deletions.
80 changes: 80 additions & 0 deletions .github/workflows/linux_edk2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Copyright (c) 2021, Pete Batard <[email protected]>
# SPDX-License-Identifier: BSD-3-Clause

name: UEFI firmware - EDK2 build

on:
push:
tags:
- '*'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Set version
id: set_version
run: echo "::set-output name=version::${GITHUB_REF/refs\/tags\//}"
- name: Set up Linux environment
run: sudo apt install acpica-tools gcc-aarch64-linux-gnu python3-distutils uuid-dev
- name: Check out EDK2 repositories
uses: actions/checkout@v2
- name: Check out EDK2 submodules
run: git submodule update --init --recursive
- name: Patch EDK2 repositories
run: patch --binary -d edk2 -p1 -i ../0001-MdeModulePkg-UefiBootManagerLib-Signal-ReadyToBoot-o.patch
- name: Set up EDK2
run: make -C edk2/BaseTools
- name: Build UEFI firmware
run: |
export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi
export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
export BUILD_FLAGS="-D SECURE_BOOT_ENABLE=TRUE -D INCLUDE_TFTP_COMMAND=TRUE -D NETWORK_ISCSI_ENABLE=TRUE"
source edk2/edksetup.sh
# EDK2's 'build' command doesn't play nice with spaces in environmnent variables, so we can't move the PCDs there...
build -a AARCH64 -t GCC5 -p edk2-platforms/Platform/RaspberryPi/RPi4/RPi4.dsc -b DEBUG --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor=L"https://github.com/pftf/RPi4" --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString=L"UEFI Firmware ${{steps.set_version.outputs.version}}" ${BUILD_FLAGS}
build -a AARCH64 -t GCC5 -p edk2-platforms/Platform/RaspberryPi/RPi4/RPi4.dsc -b RELEASE --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor=L"https://github.com/pftf/RPi4" --pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString=L"UEFI Firmware ${{steps.set_version.outputs.version}}" ${BUILD_FLAGS}
cp Build/RPi4/RELEASE_GCC5/FV/RPI_EFI.fd .
- name: Upload UEFI firmware artifacts
uses: actions/upload-artifact@v2
with:
name: RPi4 UEFI Firmware ${{steps.set_version.outputs.version}} Artifacts
path: |
Build/RPi4/DEBUG_GCC5/FV/RPI_EFI.fd
Build/RPi4/RELEASE_GCC5/FV/RPI_EFI.fd
- name: Download Raspberry Pi support files
run: |
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/fixup4.dat
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/start4.elf
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/bcm2711-rpi-4-b.dtb
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/bcm2711-rpi-cm4.dtb
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/bcm2711-rpi-400.dtb
curl -O -L https://github.com/raspberrypi/firmware/raw/master/boot/overlays/miniuart-bt.dtbo
mkdir overlays
mv miniuart-bt.dtbo overlays
- name: Create UEFI firmware archive
run: zip -r RPi4_UEFI_Firmware_${{steps.set_version.outputs.version}}.zip RPI_EFI.fd *.dtb config.txt fixup4.dat start4.elf overlays Readme.md
- name: Display SHA-256
run: sha256sum Build/RPi4/DEBUG_GCC5/FV/RPI_EFI.fd Build/RPi4/RELEASE_GCC5/FV/RPI_EFI.fd RPi4_UEFI_Firmware_${{steps.set_version.outputs.version}}.zip
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
draft: false
prerelease: false
release_name: ${{steps.set_version.outputs.version}}
body: Raspberry Pi 4 UEFI Firmware ${{steps.set_version.outputs.version}}
tag_name: ${{steps.set_version.outputs.version}}
- name: Upload release assets
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
upload_url: ${{steps.create_release.outputs.upload_url}}
asset_path: RPi4_UEFI_Firmware_${{steps.set_version.outputs.version}}.zip
asset_name: RPi4_UEFI_Firmware_${{steps.set_version.outputs.version}}.zip
asset_content_type: application/zip
4 changes: 2 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Raspberry Pi 4 UEFI Firmware Images
===================================

[![Build status](https://img.shields.io/appveyor/ci/pbatard/RPi4.svg?style=flat-square)](https://ci.appveyor.com/project/pbatard/RPi4)
[![Build status](https://img.shields.io/github/workflow/status/pftf/RPi4/UEFI%20firmware%20-%20EDK2%20build.svg?style=flat-square)](https://github.com/pftf/RPi4/actions)
[![Github stats](https://img.shields.io/github/downloads/pftf/RPi4/total.svg?style=flat-square)](https://github.com/pftf/RPi4/releases)
[![Release](https://img.shields.io/github/release-pre/pftf/RPi4?style=flat-square)](https://github.com/pftf/RPi4/releases)

Expand Down Expand Up @@ -84,7 +84,7 @@ card or on a USB drive in `efi/boot/bootaa64.efi`, you can let the UEFI system r

The firmware provided in the zip archive is the `RELEASE` version but you can also find
a `DEBUG` build of the firmware in the
[AppVeyor artifacts](https://ci.appveyor.com/project/pbatard/RPi4/build/artifacts).
[GitHub CI artifacts](https://github.com/pftf/RPi4/actions).

The provided firmwares should be able to auto-detect the UART being used (PL011 or mini
UART) according to whether `config.txt` contains the relevant overlay or not. The default
Expand Down
50 changes: 0 additions & 50 deletions appveyor.yml

This file was deleted.

13 changes: 0 additions & 13 deletions build_firmware.sh

This file was deleted.

0 comments on commit 07ab11c

Please sign in to comment.