On Sat, 19 Feb 2022, Mark Cave-Ayland wrote:
This is a GitHub push action that builds OpenBIOS for all of the currently supported architectures (amd64, sparc32, sparc64, ppc and x86) and generates an output zip file containing debug and release binaries.
The output zip file is stored both as a build artifact (which has a maximum lifetime of 90 days) and for upstream OpenBIOS builds a "latest" release is added to the repository.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
.github/workflows/main.yml | 103 +++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 .github/workflows/main.yml
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..1217d9d --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,103 @@ +name: Build OpenBIOS
+on:
- push:
- # Build for non-release tags only
- branches:
- "*"
- tags:
- "!v*"
Maybe v[0-9]* or similar is a better pattern for catching the right tags in case one happens to use some other tag starting with a v but maybe it won't happen in practice.
Regards, BALATON Zoltan
+jobs:
- build:
- runs-on: ubuntu-latest
- name: OpenBIOS build for amd64 ppc sparc32 sparc64 x86
- container:
image: ghcr.io/openbios/openbios-builder:master
- steps:
- name: Checkout OpenBIOS
uses: actions/checkout@v2
- name: Backup Makefile.target
run: cp Makefile.target Makefile.target.orig
- name: Configure debug
run: |
cat Makefile.target.orig | sed 's#CFLAGS+= -Os#CFLAGS+= -O0#g' > Makefile.target
./config/scripts/switch-arch amd64 ppc sparc32 sparc64 x86
- name: Build debug
run: "make V=1"
- name: Move debug build
run: "mkdir -p debug && mv obj-* debug"
- name: Configure release
run: |
cp Makefile.target.orig Makefile.target
./config/scripts/switch-arch amd64 ppc sparc32 sparc64 x86
- name: Build release
run: "make V=1"
- name: Move release build
run: "mkdir -p release && mv obj-* release"
- name: Store artifacts
uses: actions/upload-artifact@v2
with:
name: openbios-multiarch-latest
path: |
debug/obj-x86/*.dict
debug/obj-x86/openbios-builtin*
debug/obj-x86/openbios.multiboot*
debug/obj-x86/openbios-multiboot.syms
debug/obj-x86/QEMU,VGA.bin
debug/obj-amd64/openbios-unix
debug/obj-amd64/*.dict
debug/obj-ppc/*.dict
debug/obj-ppc/openbios-qemu*
debug/obj-ppc/QEMU,VGA.bin
debug/obj-sparc32/*.dict
debug/obj-sparc32/openbios-builtin*
debug/obj-sparc32/QEMU,cgthree.bin
debug/obj-sparc32/QEMU,tcx.bin
debug/obj-sparc64/*.dict
debug/obj-sparc64/openbios-builtin*
debug/obj-sparc64/QEMU,VGA.bin
release/obj-x86/*.dict
release/obj-x86/openbios-builtin*
release/obj-x86/openbios.multiboot*
release/obj-x86/openbios-multiboot.syms
release/obj-x86/QEMU,VGA.bin
release/obj-amd64/openbios-unix
release/obj-amd64/*.dict
release/obj-ppc/*.dict
release/obj-ppc/openbios-qemu*
release/obj-ppc/QEMU,VGA.bin
release/obj-sparc32/*.dict
release/obj-sparc32/openbios-builtin*
release/obj-sparc32/QEMU,cgthree.bin
release/obj-sparc32/QEMU,tcx.bin
release/obj-sparc64/*.dict
release/obj-sparc64/openbios-builtin*
release/obj-sparc64/QEMU,VGA.bin
- name: Prepare pre-release from artifacts
uses: actions/download-artifact@v2
with:
name: openbios-multiarch-latest
path: archive
- name: Archive pre-release
run: cd archive && zip -r ../openbios-multiarch-latest.zip debug release && cd ..
- name: Upload pre-release (upstream repository only)
if: "${{ env.GITHUB_REPOSITORY_OWNER == 'openbios' }}"
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: true
automatic_release_tag: "latest"
title: "Development Build"
files: openbios-multiarch-latest.zip