From 5524eafac50b0f621c99ea3752484ccb7b87065b Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 08:59:32 +0300 Subject: [PATCH 01/11] Add patches to fix msc316dm (#345) --- .../kernel/patches/20_fix_gcc8.patch | 1 + .../30_fix_vfp-force-non-conditional.patch | 1 + ...coding-for-external-Thumb2-tail-call.patch | 149 ++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 120000 br-ext-chip-sigmastar/board/infinity3/kernel/patches/20_fix_gcc8.patch create mode 120000 br-ext-chip-sigmastar/board/infinity3/kernel/patches/30_fix_vfp-force-non-conditional.patch create mode 100644 patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch diff --git a/br-ext-chip-sigmastar/board/infinity3/kernel/patches/20_fix_gcc8.patch b/br-ext-chip-sigmastar/board/infinity3/kernel/patches/20_fix_gcc8.patch new file mode 120000 index 00000000..66ce4243 --- /dev/null +++ b/br-ext-chip-sigmastar/board/infinity3/kernel/patches/20_fix_gcc8.patch @@ -0,0 +1 @@ +../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch \ No newline at end of file diff --git a/br-ext-chip-sigmastar/board/infinity3/kernel/patches/30_fix_vfp-force-non-conditional.patch b/br-ext-chip-sigmastar/board/infinity3/kernel/patches/30_fix_vfp-force-non-conditional.patch new file mode 120000 index 00000000..672eef53 --- /dev/null +++ b/br-ext-chip-sigmastar/board/infinity3/kernel/patches/30_fix_vfp-force-non-conditional.patch @@ -0,0 +1 @@ +../../../../../patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch \ No newline at end of file diff --git a/patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch b/patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch new file mode 100644 index 00000000..6bdf3125 --- /dev/null +++ b/patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch @@ -0,0 +1,149 @@ +From patchwork Thu Sep 17 06:19:48 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Ard Biesheuvel +X-Patchwork-Id: 11781619 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7EA96CA + for ; + Thu, 17 Sep 2020 06:20:24 +0000 (UTC) +Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id 758BF208E4 + for ; + Thu, 17 Sep 2020 06:20:24 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="asIIUop8"; + dkim=fail reason="signature verification failed" (1024-bit key) + header.d=kernel.org header.i=@kernel.org header.b="Dfh0zH+Q" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 758BF208E4 +Authentication-Results: mail.kernel.org; + dmarc=fail (p=none dis=none) header.from=kernel.org +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: + Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: + List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: + Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc + :Resent-Message-ID:In-Reply-To:References:List-Owner; + bh=Lo1QvkycLV/7qa6tRuaKU+043GrCtYRFDvZNpiyIHFs=; b=asIIUop8zx9VLyP8RxH3FSnpIB + goa+Fn9zbDfPdm1XBArYJdBUQkptX0eK5ggte4+RtYnD6jtYPnDQ1atbG+LXFXdCGBPPGD7Ec0NCz + 2rf7GocaLxeNTnfrTrLiyeLitFTbrFsfog6LNatG/wbNnekF7ykhcZ7bzwvfMVNbAYwx0vMjCBUDv + yaOUflwQYiTda6AkoJnj1IISdIYLgkCEIzyDVq3rIFW3BA+m5EhmhXKI2gcksipSVuIsbux+px9ZV + v42wJcIXgnVA+qJct1MFfxvPN1vQBL9aLZclNOcXNmKZD8Q09LA4yNxvFkRoNLlBOPKYSN6XHmtJn + mAF9oPSw==; +Received: from localhost ([::1] helo=merlin.infradead.org) + by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1kInGx-0003LG-UJ; Thu, 17 Sep 2020 06:20:00 +0000 +Received: from mail.kernel.org ([198.145.29.99]) + by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1kInGv-0003Kq-Ma + for linux-arm-kernel@lists.infradead.org; Thu, 17 Sep 2020 06:19:58 +0000 +Received: from e123331-lin.nice.arm.com (unknown [91.140.120.15]) + (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPSA id 9D4CD20707; + Thu, 17 Sep 2020 06:19:54 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; + s=default; t=1600323596; + bh=ziD1S262d4AhvP0HlkLo4WCfu8gkBuZJo+18GfJki9c=; + h=From:To:Cc:Subject:Date:From; + b=Dfh0zH+QgFdYO0gLoboRtZhySJAl+bjUHgIo8kCQVGjvzCWF7i2BSPEKZiFbSIEGm + fFSTDES62ApoJHYwFnIAtXQMpjV7DYbIoeuFScbKPT4lMxCYpo/X7ffl/+OEWMkRAK + 4Unu4CMR1SVL+8a4DZhSoF74nrvGspRqV5Nh1iTI= +From: Ard Biesheuvel +To: linux-arm-kernel@lists.infradead.org +Subject: [PATCH] ARM: vfp: force non-conditional encoding for external Thumb2 + tail call +Date: Thu, 17 Sep 2020 09:19:48 +0300 +Message-Id: <20200917061948.12403-1-ardb@kernel.org> +X-Mailer: git-send-email 2.17.1 +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200917_021957_811961_126E0A54 +X-CRM114-Status: GOOD ( 13.51 ) +X-Spam-Score: -8.2 (--------) +X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: + Content analysis details: (-8.2 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, + high trust [198.145.29.99 listed in list.dnswl.org] + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily + valid + -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from + envelope-from domain + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature + -3.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: ndesaulniers@google.com, linux@armlinux.org.uk, stable@vger.kernel.org, + Ard Biesheuvel +MIME-Version: 1.0 +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +Nick reports that the following error is produced in some cases when +using GCC+ld.bfd to build the ARM defconfig with Thumb2 enabled: + + arch/arm/vfp/vfphw.o: in function `vfp_support_entry': + (.text+0xa): relocation truncated to fit: R_ARM_THM_JUMP19 against + symbol `vfp_kmode_exception' defined in .text.unlikely section in + arch/arm/vfp/vfpmodule.o + + $ arm-linux-gnueabihf-ld --version + GNU ld (GNU Binutils for Debian) 2.34 + +Generally, the linker should be able to fix up out of range branches by +emitting veneers, but apparently, it fails to do so in this particular +case, i.e., a conditional 'tail call' to vfp_kmode_exception(), which +is not defined in the same object file. + +So let's force the use of a non-conditional encoding of the B instruction, +which has more space for an immediate offset. + +Cc: +Reported-by: Nick Desaulniers +Tested-by: Nick Desaulniers +Signed-off-by: Ard Biesheuvel +--- + arch/arm/vfp/vfphw.S | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S +index 4fcff9f59947..f1468702fbc9 100644 +--- a/arch/arm/vfp/vfphw.S ++++ b/arch/arm/vfp/vfphw.S +@@ -82,6 +82,7 @@ ENTRY(vfp_support_entry) + ldr r3, [sp, #S_PSR] @ Neither lazy restore nor FP exceptions + and r3, r3, #MODE_MASK @ are supported in kernel mode + teq r3, #USR_MODE ++THUMB( it ne ) + bne vfp_kmode_exception @ Returns through lr + + VFPFMRX r1, FPEXC @ Is the VFP enabled? From 0506d83baccebaaad573473882c9bd51593e17bb Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 09:51:51 +0300 Subject: [PATCH 02/11] Add patches to fix fh8852v100 (#346) --- .../board/fh8852v100/kernel/patches/20_fix_gcc8.patch | 1 + 1 file changed, 1 insertion(+) create mode 120000 br-ext-chip-fullhan/board/fh8852v100/kernel/patches/20_fix_gcc8.patch diff --git a/br-ext-chip-fullhan/board/fh8852v100/kernel/patches/20_fix_gcc8.patch b/br-ext-chip-fullhan/board/fh8852v100/kernel/patches/20_fix_gcc8.patch new file mode 120000 index 00000000..d4d42088 --- /dev/null +++ b/br-ext-chip-fullhan/board/fh8852v100/kernel/patches/20_fix_gcc8.patch @@ -0,0 +1 @@ +../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch \ No newline at end of file From 1392bd546f87366634ced3f5cf8319515010b848 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 11:13:02 +0300 Subject: [PATCH 03/11] Add patches to fix hi3516av200 (#347) --- .../board/hi3519v101/kernel/patches/20_fix_gcc8.patch | 1 + 1 file changed, 1 insertion(+) create mode 120000 br-ext-chip-hisilicon/board/hi3519v101/kernel/patches/20_fix_gcc8.patch diff --git a/br-ext-chip-hisilicon/board/hi3519v101/kernel/patches/20_fix_gcc8.patch b/br-ext-chip-hisilicon/board/hi3519v101/kernel/patches/20_fix_gcc8.patch new file mode 120000 index 00000000..66ce4243 --- /dev/null +++ b/br-ext-chip-hisilicon/board/hi3519v101/kernel/patches/20_fix_gcc8.patch @@ -0,0 +1 @@ +../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch \ No newline at end of file From 9d48dd5896e913046c4934efc78ee5f8c5f2d1a8 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 12:29:27 +0300 Subject: [PATCH 04/11] Add patches to fix hi3536cv100 (#349) --- .../board/hi3536cv100/kernel/patches/20_fix_gcc8.patch | 1 + 1 file changed, 1 insertion(+) create mode 120000 br-ext-chip-hisilicon/board/hi3536cv100/kernel/patches/20_fix_gcc8.patch diff --git a/br-ext-chip-hisilicon/board/hi3536cv100/kernel/patches/20_fix_gcc8.patch b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/patches/20_fix_gcc8.patch new file mode 120000 index 00000000..66ce4243 --- /dev/null +++ b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/patches/20_fix_gcc8.patch @@ -0,0 +1 @@ +../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch \ No newline at end of file From e7fca9c6f5903af3455471a8841da51b185469e6 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 12:31:42 +0300 Subject: [PATCH 05/11] Bump libevent to version with fixed builds with old CMake, fixes #325 (#348) --- general/package/libevent-openipc/libevent-openipc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/package/libevent-openipc/libevent-openipc.mk b/general/package/libevent-openipc/libevent-openipc.mk index c362f08d..1d032396 100644 --- a/general/package/libevent-openipc/libevent-openipc.mk +++ b/general/package/libevent-openipc/libevent-openipc.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBEVENT_OPENIPC_VERSION = 99fd68abde4a59b90148db733fc51a7256cbd320 +LIBEVENT_OPENIPC_VERSION = 86b5d2e951eaa88cb5fed2be23fa5af85facad4a LIBEVENT_OPENIPC_SITE = $(call github,libevent,libevent,$(LIBEVENT_OPENIPC_VERSION)) LIBEVENT_OPENIPC_INSTALL_STAGING = YES LIBEVENT_OPENIPC_LICENSE = BSD-3-Clause, OpenBSD From 6e142ae5f0a55da3b977358c4b580a6e213364c5 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 12:52:59 +0300 Subject: [PATCH 06/11] Infer PLATFORM variable in make when nothing is provided (#350) --- Makefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Makefile b/Makefile index da1e2662..2469728e 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,22 @@ ROOT_DIR := $(CURDIR) BR_VER := 2021.02.12 BR_DIR := $(ROOT_DIR)/buildroot-$(BR_VER) + +ifeq ($(PLATFORM),) + ifeq ($(BOARD),) + BOARD = $(error BOARD must be set) + endif + + FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig") + ifeq ($(FULL_PATH),) + FULL_PATH := $(error Cannot find anything for $(BOARD)) + else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1) + FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH)) + endif + + PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 ) +endif + BR_EXT_DIR := $(ROOT_DIR)/br-ext-chip-$(PLATFORM) SCRIPTS_DIR := $(ROOT_DIR)/scripts #BOARDS := $(shell ls -1 $(BR_EXT_DIR)/configs) From e4ffd084b00ec4ed084d407876969be49ade5c8f Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 15:05:04 +0300 Subject: [PATCH 07/11] Cleanup building scripts (#351) --- Makefile | 20 +- building.sh | 749 ++++++++++++---------------------------------------- 2 files changed, 185 insertions(+), 584 deletions(-) diff --git a/Makefile b/Makefile index 2469728e..c673300e 100644 --- a/Makefile +++ b/Makefile @@ -4,18 +4,16 @@ BR_VER := 2021.02.12 BR_DIR := $(ROOT_DIR)/buildroot-$(BR_VER) ifeq ($(PLATFORM),) - ifeq ($(BOARD),) - BOARD = $(error BOARD must be set) + ifneq ($(BOARD),) + FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig") + ifeq ($(FULL_PATH),) + FULL_PATH := $(error Cannot find anything for $(BOARD)) + else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1) + FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH)) + endif + + PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 ) endif - - FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig") - ifeq ($(FULL_PATH),) - FULL_PATH := $(error Cannot find anything for $(BOARD)) - else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1) - FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH)) - endif - - PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 ) endif BR_EXT_DIR := $(ROOT_DIR)/br-ext-chip-$(PLATFORM) diff --git a/building.sh b/building.sh index 7e78ebbc..c8c247e1 100755 --- a/building.sh +++ b/building.sh @@ -1,20 +1,15 @@ #!/bin/bash # -# OpenIPC.org | v.20220813 +# OpenIPC.org (c) # BR_VER=2021.02.12 -MAX_KERNEL_SIZE=0x200000 # 2MiB, 2097152 -MAX_KERNEL_SIZE_ULTIMATE=0x300000 # 3MiB, 3145728 -MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480 # ~3.9MiB, 4097152 -MAX_ROOTFS_SIZE=0x500000 # 5MiB, 5242880 -MAX_ROOTFS_SIZE_ULTIMATE=0xA00000 # 10MiB, 10485760 - -clone() { - sudo apt-get update -y ; apt-get install -y bc build-essential git unzip rsync autotools-dev automake libtool - git clone --depth=1 https://github.com/OpenIPC/firmware.git -} +MAX_KERNEL_SIZE=0x200000 # 2MiB, 2097152 +MAX_KERNEL_SIZE_ULTIMATE=0x300000 # 3MiB, 3145728 +MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480 # ~3.9MiB, 4097152 +MAX_ROOTFS_SIZE=0x500000 # 5MiB, 5242880 +MAX_ROOTFS_SIZE_ULTIMATE=0xA00000 # 10MiB, 10485760 fresh() { echo -e "\nThe start-stop times\n" >/tmp/openipc_buildtime.txt @@ -38,24 +33,24 @@ should_fit() { rename() { if grep -q ultimate_defconfig ./output/.config || grep -q fpv_defconfig ./output/.config; then - should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE - should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE + should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE + should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE else - should_fit uImage $MAX_KERNEL_SIZE - should_fit rootfs.squashfs $MAX_ROOTFS_SIZE + should_fit uImage $MAX_KERNEL_SIZE + should_fit rootfs.squashfs $MAX_ROOTFS_SIZE fi - mv -v ./output/images/uImage ./output/images/uImage.${soc} - mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${soc} - mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio - mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar + mv -v ./output/images/uImage ./output/images/uImage.${SOC} + mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${SOC} + mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio + mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar date >>/tmp/openipc_buildtime.txt } rename_initramfs() { should_fit uImage $MAX_KERNEL_SIZE_EXPERIMENTAL - mv -v ./output/images/uImage ./output/images/uImage.initramfs.${soc} - mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio - mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar + mv -v ./output/images/uImage ./output/images/uImage.initramfs.${SOC} + mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio + mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar date >>/tmp/openipc_buildtime.txt echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" } @@ -64,561 +59,170 @@ autoup_rootfs() { echo -e "\n" curl -L -o ./output/images/u-boot-hi3518ev200-universal.bin https://github.com/OpenIPC/firmware/releases/download/latest/u-boot-hi3518ev200-universal.bin echo -e "\n" - ./output/host/bin/mkimage -A arm -O linux -T firmware -n 'OpenIPC v.2.2.7' -a 0x000000000000 -e 0x000000050000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img + D=$(date "+%y.%m.%d") + RELEASE=$(echo OpenIPC v${D:0:1}.${D:1}) + ./output/host/bin/mkimage -A arm -O linux -T firmware -n $RELEASE -a 0x0 -e 0x50000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img echo -e "\n" - ./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n 'OpenIPC v2.2.7' -a 0x000000050000 -e 0x000000250000 -d ./output/images/uImage.${soc} ./output/images/autoupdate-kernel.img + ./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n $RELEASE -a 0x50000 -e 0x250000 -d ./output/images/uImage.${SOC} ./output/images/autoupdate-kernel.img echo -e "\n" - ./output/host/bin/mkimage -A arm -O linux -T filesystem -n 'OpenIPC v.2.2.7' -a 0x000000250000 -e 0x000000750000 -d ./output/images/rootfs.squashfs.${soc} ./output/images/autoupdate-rootfs.img -} - -sdk() { - make br-sdk -} - -upload() { - TFTP_SERVER="root@172.17.32.17:/mnt/bigger-2tb/Rotator/TFTP" - echo -e "\n\nStart transferring files to the TFTP server...\n" - scp -P 22 -r ./output/images/rootfs.squashfs.* ./output/images/uImage.* ${TFTP_SERVER} -} - -tg_message() { - #TG_TOKEN= - #TG_CHANNEL= - TG_REPLY="${TG_REPLY:=No comment.\nAll details will come later.}" - TG_MESSAGE=$(echo -e "\xF0\x9F\x8C\x8D PARADOX" "%0A${TG_REPLY}") - # - curl -s -k --connect-timeout 30 --max-time 30 -X POST \ - https://api.telegram.org/bot${TG_TOKEN}/sendMessage -d chat_id="${TG_CHANNEL}" -d disable_notification="true" -d text="${TG_MESSAGE}" >/dev/null 2>&1 + ./output/host/bin/mkimage -A arm -O linux -T filesystem -n $RELEASE -a 0x250000 -e 0x750000 -d ./output/images/rootfs.squashfs.${SOC} ./output/images/autoupdate-rootfs.img } ################################################################################# -ambarella-s3l() { - soc="s3l" - fresh && make PLATFORM=ambarella BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -ak3918ev200() { - soc="ak3918ev200" - fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ak3916ev300() { - soc="ak3916ev300" - fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ak3918ev300() { - soc="ak3918ev300" - fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -fh8833v100() { - soc="fh8833v100" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8852v100() { - soc="fh8852v100" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8852v200() { - soc="fh8852v200" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8852v210() { - soc="fh8852v210" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8856v100() { - soc="fh8856v100" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8856v200() { - soc="fh8856v200" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8856v210() { - soc="fh8856v210" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8858v200() { - soc="fh8858v200" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -fh8858v210() { - soc="fh8858v210" - fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -gk7101() { - soc="gk7101" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7101s() { - soc="gk7101s" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7102() { - soc="gk7102" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7102s() { - soc="gk7102s" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7205v200() { - soc="gk7205v200" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7205v200_ultimate() { - soc="gk7205v200" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -gk7205v200_fpv() { - soc="gk7205v200" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename -} - -gk7205v200_iscom() { - soc="gk7205v200" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_iscom all && rename -} - -gk7205v200_ufanet() { - soc="gk7205v200" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ufanet all && rename -} - -gk7205v210() { - soc="gk7205v210" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7205v300() { - soc="gk7205v300" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gk7205v300_ultimate() { - soc="gk7205v300" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -gk7205v300_fpv() { - soc="gk7205v300" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename -} - -gk7605v100() { - soc="gk7605v100" - fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -gm8135() { - soc="gm8135" - fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename -} - -gm8136() { - soc="gm8136" - fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -hi3516cv100() { - soc="hi3516cv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3518ev100() { - soc="hi3518ev100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -hi3516cv200() { - soc="hi3516cv200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3518ev200() { - soc="hi3518ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3518ev200_domsip() { - soc="hi3518ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_domsip all && rename -} - -hi3518ev200_hs303() { - soc="hi3518ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename && autoup_rootfs - #PLATFORM=hisilicon make br-linux-{dirclean,rebuild} - #PLATFORM=hisilicon make br-mbedtls-openipc-{dirclean,rebuild} -} - -hi3518ev200_ultimate() { - soc="hi3518ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -################################################################################# - -hi3516cv300() { - soc="hi3516cv300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516cv300_ultimate() { - soc="hi3516cv300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -hi3516ev100() { - soc="hi3516ev100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} -################################################################################# - -hi3516av100() { - soc="hi3516av100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516av100_ultimate() { - soc="hi3516av100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -hi3516dv100() { - soc="hi3516dv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516dv100_ultimate() { - soc="hi3516dv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -################################################################################# - -hi3519v101() { - soc="hi3519v101" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516av200() { - soc="hi3516av200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516av200_ultimate() { - soc="hi3516av200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -################################################################################# - -hi3516av300() { - soc="hi3516av300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516cv500() { - soc="hi3516cv500" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516dv300() { - soc="hi3516dv300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -hi3516dv200() { - soc="hi3516dv200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516ev200() { - soc="hi3516ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516ev200_dozor() { - soc="hi3516ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dozor all && rename -} - -hi3516ev200_eltis() { - soc="hi3516ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_eltis all && rename -} - -hi3516ev200_vixand() { - soc="hi3516ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename -} - -hi3516ev200_ultimate() { - soc="hi3516ev200" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -hi3516ev300() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3516ev300_dev() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dev all && rename -} - -hi3516ev300_fpv() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_fpv all && rename -} - -hi3516ev300_glibc() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_glibc all && rename -} - -hi3516ev300_tehshield() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_tehshield all && rename -} - -hi3516ev300_ultimate() { - soc="hi3516ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -hi3518ev300() { - soc="hi3518ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3518ev300_ultimate() { - soc="hi3518ev300" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename -} - -hi3536cv100() { - soc="hi3536cv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3536dv100() { - soc="hi3536dv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename -} - -hi3536dv100_vixand() { - soc="hi3536dv100" - fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename -} - -################################################################################# - -msc313e() { - soc="msc313e" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -msc313e_baresip() { - soc="msc313e" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_baresip all && rename -} - -msc316dc() { - soc="msc316dc" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -msc316dm() { - soc="msc316dm" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -nt98562() { - soc="nt98562" - fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename - #PLATFORM=novatek make br-linux-{dirclean,rebuild} -} - -nt98566() { - soc="nt98566" - fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename -} - -nt98566_polcam() { - soc="nt98566" - fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_polcam all && rename -} - -################################################################################# - -rv1109() { - soc="rv1109" - fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -rv1126() { - soc="rv1126" - fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -ssc325() { - soc="ssc325" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -ssc333() { - soc="ssc333" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ssc335() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ssc335_blackbird() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_blackbird all && rename -} - -ssc335_goodcam() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_goodcam all && rename -} - -ssc335_initramfs() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_initramfs all && rename_initramfs -} - -ssc335_musl() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_musl all && rename -} - -ssc335_portal() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_portal all && rename -} - -ssc335_rotek() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_rotek all && rename -} - -ssc335_tiandy() { - soc="ssc335" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_tiandy all && rename -} - -ssc337() { - soc="ssc337" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ssc337_kama() { - soc="ssc337" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_kama all && rename -} - -################################################################################# - -ssc335de() { - soc="ssc335de" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -ssc337de() { - soc="ssc337de" - fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename -} - -################################################################################# - -t10() { - soc="t10" - fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename -} - -t20() { - soc="t20" - fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename -} - -t30() { - soc="t30" - fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename -} - -t31() { - soc="t31" - fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename -} - -t31_vixand() { - soc="t31" - fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_vixand all && rename -} - -################################################################################# - -xm510() { - soc="xm510" - fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename -} - -xm530() { - soc="xm530" - fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename -} - -xm550() { - soc="xm550" - fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename -} +FUNCS=( + ambarella-s3l + + ak3918ev200 + ak3916ev300 + ak3918ev300 + + fh8833v100 + fh8852v100 + fh8852v200 + fh8852v210 + fh8856v100 + fh8856v200 + fh8856v210 + fh8858v200 + fh8858v210 + + gk7101 + gk7101s + gk7102 + gk7102s + + gk7205v200 + gk7205v200_ultimate + gk7205v200_fpv + gk7205v200_iscom + gk7205v200_ufanet + gk7205v210 + gk7205v300 + gk7205v300_ultimate + gk7205v300_fpv + gk7605v100 + + gm8135 + gm8136 + + hi3516cv100 + hi3518ev100 + + hi3516cv200 + hi3518ev200 + hi3518ev200_domsip + hi3518ev200_hs303 + hi3518ev200_ultimate + + hi3516cv300 + hi3516cv300_ultimate + hi3516ev100 + + hi3516av100 + hi3516av100_ultimate + hi3516dv100 + hi3516dv100_ultimate + + hi3519v101 + hi3516av200 + hi3516av200_ultimate + + hi3516av300 + hi3516cv500 + hi3516dv300 + + hi3516dv200 + hi3516ev200 + hi3516ev200_dozor + hi3516ev200_eltis + hi3516ev200_vixand + hi3516ev200_ultimate + hi3516ev300 + hi3516ev300_dev + hi3516ev300_fpv + hi3516ev300_glibc + hi3516ev300_tehshield + hi3516ev300_ultimate + hi3518ev300 + hi3518ev300_ultimate + + hi3536cv100 + hi3536dv100 + hi3536dv100_vixand + + msc313e + msc313e_baresip + msc316dc + msc316dm + + nt98562 + nt98566 + nt98566_polcam + + rv1109 + rv1126 + + ssc325 + ssc333 + ssc335 + ssc335_blackbird + ssc335_goodcam + ssc335_initramfs + ssc335_musl + ssc335_portal + ssc335_rotek + ssc335_tiandy + ssc337 + ssc337_kama + + ssc335de + ssc337de + + t10 + t20 + t30 + t31 + t31_vixand + + xm510 + xm530 + xm550 +) + +copy_function() { + test -n "$(declare -f "$1")" || return + eval "${_/$1/$2}" +} + +uni_build() { + BOARD=$FUNCNAME + SOC=$(echo $BOARD | cut -d '_' -f 1) + + set -e + if [ "$(echo $BOARD | cut -d '_' -f 2)" == "" ]; then + BOARD="${BOARD}_openipc" + elif [ "$BOARD" == "hi3518ev200_hs303" ]; then + BOARD=hi3518ev200_openipc + NEED_AUTOUP=1 + fi + + fresh + make BOARD=unknown_unknown_${BOARD} all + if [ "$BOARD" == "ssc335_initramfs" ]; then + rename_initramfs + else + rename + fi + + if [ ! -z "$NEED_AUTOUP" ]; then + autoup_rootfs + fi +} + +for i in "${FUNCS[@]}"; do + copy_function uni_build $i +done ################################################################################# @@ -627,7 +231,7 @@ xm550() { # Build firmware ####### # -# ambarella-s3l # testing.. +# ambarella-s3l # testing.. # ####### # @@ -782,4 +386,3 @@ xm550() { # echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" - From 7397364b95d39be6d2d339284ac97d862ad0f9d2 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 17:39:42 +0300 Subject: [PATCH 08/11] Set internal release versions more flexible (#352) --- scripts/executing_commands_for_glibc.sh | 3 ++- scripts/executing_commands_for_musl.sh | 3 ++- scripts/executing_commands_for_uclibc.sh | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/executing_commands_for_glibc.sh b/scripts/executing_commands_for_glibc.sh index 58b48d8a..4779c6dd 100755 --- a/scripts/executing_commands_for_glibc.sh +++ b/scripts/executing_commands_for_glibc.sh @@ -3,7 +3,8 @@ # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config # -date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release +D=$(date "+%y.%m.%d") +echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release if grep -q fpv_defconfig ${BR2_CONFIG}; then echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release diff --git a/scripts/executing_commands_for_musl.sh b/scripts/executing_commands_for_musl.sh index ddf46850..60a1af9f 100755 --- a/scripts/executing_commands_for_musl.sh +++ b/scripts/executing_commands_for_musl.sh @@ -3,7 +3,8 @@ # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config # -date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release +D=$(date "+%y.%m.%d") +echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release if grep -q fpv_defconfig ${BR2_CONFIG}; then echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release diff --git a/scripts/executing_commands_for_uclibc.sh b/scripts/executing_commands_for_uclibc.sh index 7a3f3565..ef79da49 100755 --- a/scripts/executing_commands_for_uclibc.sh +++ b/scripts/executing_commands_for_uclibc.sh @@ -3,7 +3,8 @@ # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config # -date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release +D=$(date "+%y.%m.%d") +echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release if grep -q fpv_defconfig ${BR2_CONFIG}; then echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release @@ -20,4 +21,4 @@ if ! grep -q ^BR2_PACKAGE_WIFIBROADCAST=y ${BR2_CONFIG}; then rm -f ${TARGET_DIR}/usr/lib/libstdc++* fi -rm -f ${TARGET_DIR}/usr/bin/gdbserver \ No newline at end of file +rm -f ${TARGET_DIR}/usr/bin/gdbserver From 005fe74e042887058f59930d334c717b5c084732 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 19:37:19 +0300 Subject: [PATCH 09/11] Test gather all hi3516ev200 family to matrix (#343) * Test gather all hi3516ev200 family to matrix * Fix prev commit issues * Cleanup the code * Add separate toolchain build * Test with swap enabled * Fix conditionals in actions --- .github/CODEOWNERS | 12 + .github/workflows/hi3516dv200_images.yml | 149 ---------- .github/workflows/hi3516ev200_fpv_images.yml | 130 --------- .github/workflows/hi3516ev200_images.yml | 149 ---------- .github/workflows/hi3516ev200_matrix.yml | 269 ++++++++++++++++++ .../workflows/hi3516ev200_ultimate_images.yml | 148 ---------- .github/workflows/hi3516ev300_fpv_images.yml | 130 --------- .github/workflows/hi3516ev300_images.yml | 149 ---------- .../workflows/hi3516ev300_ultimate_images.yml | 148 ---------- .github/workflows/hi3518ev300_images.yml | 149 ---------- .../workflows/hi3518ev300_ultimate_images.yml | 148 ---------- 11 files changed, 281 insertions(+), 1300 deletions(-) create mode 100644 .github/CODEOWNERS delete mode 100644 .github/workflows/hi3516dv200_images.yml delete mode 100644 .github/workflows/hi3516ev200_fpv_images.yml delete mode 100644 .github/workflows/hi3516ev200_images.yml create mode 100644 .github/workflows/hi3516ev200_matrix.yml delete mode 100644 .github/workflows/hi3516ev200_ultimate_images.yml delete mode 100644 .github/workflows/hi3516ev300_fpv_images.yml delete mode 100644 .github/workflows/hi3516ev300_images.yml delete mode 100644 .github/workflows/hi3516ev300_ultimate_images.yml delete mode 100644 .github/workflows/hi3518ev300_images.yml delete mode 100644 .github/workflows/hi3518ev300_ultimate_images.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..3df7fb5b --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,12 @@ +## @file +# CODEOWNERS +# +# Copyright (c) 2022, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +* @ZigFisher +* @p0i5k +* @cronyx +* @dimerr +* @widgetii diff --git a/.github/workflows/hi3516dv200_images.yml b/.github/workflows/hi3516dv200_images.yml deleted file mode 100644 index 5b14b323..00000000 --- a/.github/workflows/hi3516dv200_images.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: "Hi3516Dv200 " - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Dv200 - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Dv200 firmware - id: build-hi3516dv200-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516dv200-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516dv200_openipc all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516DV200" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516DV200" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.hi3516dv200 - mv rootfs.squashfs rootfs.squashfs.hi3516dv200 - md5sum rootfs.squashfs.hi3516dv200 > rootfs.squashfs.hi3516dv200.md5sum - md5sum uImage.hi3516dv200 > uImage.hi3516dv200.md5sum - tar -cvzf $ARCHIVE_FW *hi3516dv200* - - - name: Build Hi3516Dv200 SDK - id: build-hi3516dv200-sdk - continue-on-error: true - run: | - ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" - echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE/output - make sdk - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516dv200-firmware.outcome != 'success' || steps.build-hi3516dv200-sdk.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516DV200}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: "openipc.hi3516dv200-br.tgz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload SDK to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_SDK }} - asset_name: "arm-openipc-hi3516dv200-linux-musleabi_sdk-buildroot.tar.gz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev200_fpv_images.yml b/.github/workflows/hi3516ev200_fpv_images.yml deleted file mode 100644 index d095dadd..00000000 --- a/.github/workflows/hi3516ev200_fpv_images.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: "Hi3516Ev200 (fpv)" - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev200 (fpv) - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "BOARD=hi3516ev200" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev200 (fpv) firmware - id: build-hi3516ev200-fpv-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.${BOARD} - mv rootfs.squashfs rootfs.squashfs.${BOARD} - md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev200-fpv-firmware.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev200_images.yml b/.github/workflows/hi3516ev200_images.yml deleted file mode 100644 index 67b8cf3f..00000000 --- a/.github/workflows/hi3516ev200_images.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: "Hi3516Ev200 " - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev200 - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev200 firmware - id: build-hi3516ev200-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev200-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev200_openipc all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV200" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV200" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.hi3516ev200 - mv rootfs.squashfs rootfs.squashfs.hi3516ev200 - md5sum rootfs.squashfs.hi3516ev200 > rootfs.squashfs.hi3516ev200.md5sum - md5sum uImage.hi3516ev200 > uImage.hi3516ev200.md5sum - tar -cvzf $ARCHIVE_FW *hi3516ev200* - - - name: Build Hi3516Ev200 SDK - id: build-hi3516ev200-sdk - continue-on-error: true - run: | - ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" - echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE/output - make sdk - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev200-firmware.outcome != 'success' || steps.build-hi3516ev200-sdk.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV200}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: "openipc.hi3516ev200-br.tgz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload SDK to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_SDK }} - asset_name: "arm-openipc-hi3516ev200-linux-musleabi_sdk-buildroot.tar.gz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev200_matrix.yml b/.github/workflows/hi3516ev200_matrix.yml new file mode 100644 index 00000000..cd325c4a --- /dev/null +++ b/.github/workflows/hi3516ev200_matrix.yml @@ -0,0 +1,269 @@ +name: build + +on: + pull_request: + types: + - synchronize + - reopened + - opened + paths-ignore: + - '**.md' + push: + branches: + - production + tags: + - "v*" + paths-ignore: + - '**.md' + schedule: + - cron: "00 03 * * *" + workflow_dispatch: + +jobs: + toolchain: + name: Build toolchain + runs-on: ubuntu-latest + + env: + BOARD: hi3516ev200 + + outputs: + sdk-file: ${{ steps.build-sdk.outputs.sdk-file }} + + steps: + + - name: Checkout + id: checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + + - name: Install build dependencies + run: | + make install-deps + mkdir -p tmp + if [ ! -z "$ACT" ]; then + apt install -y cpio rsync bc + echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV + # Mitigate #325 issue + apt install -y pip && pip install cmake + fi + + - name: Free disk space + if: ${{ !env.ACT }} + run: | + sudo apt clean + docker rmi $(docker image ls -aq) + df -h + + - name: Build Buildroot SDK + id: build-sdk + run: | + make prepare + make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_openipc br-sdk + SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz") + echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV + SDK_FILE=$(basename $SDK_PATH) + echo "SDK_FILE=$SDK_FILE" >> $GITHUB_ENV + echo "::set-output name=sdk-file::$SDK_FILE" + + - uses: actions/upload-artifact@v3 + with: + name: ${{ env.SDK_FILE }} + path: ${{ env.SDK_PATH }} + retention-days: 1 + + buildroot: + name: Build firmware + needs: toolchain + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + platform: + - hi3516ev200 + - hi3516ev300 + - hi3518ev300 + - hi3516dv200 + release: + - lite + - ultimate + include: + - platform: hi3516ev200 + release: fpv + - platform: hi3516ev300 + release: fpv + exclude: + - platform: hi3516dv200 + release: ultimate + + env: + HAS_NAND: ${{ matrix.release == 'ultimate' }} && (${{ matrix.platform == 'hi3516ev300' }} || ${{ matrix.platform == 'hi3516ev200' }}) + + steps: + + - name: Checkout + id: checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + + - name: Install build dependencies + run: | + make install-deps + mkdir -p tmp + if [ ! -z "$ACT" ]; then + apt install -y cpio rsync bc + echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV + # Mitigate #325 issue + apt install -y pip && pip install cmake + fi + + - name: Free disk space + if: ${{ !env.ACT }} + run: | + sudo apt clean + docker rmi $(docker image ls -aq) + df -h + + - name: Prepare buildroot + id: prepare + run: | + HEAD_TAG=$(git tag --points-at HEAD) + GIT_HASH=$(git rev-parse --short $GITHUB_SHA) + BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3) + if [ -z "$HEAD_TAG" ]; then + TAG_NAME="latest" + RELEASE_NAME="Development Build" + PRERELEASE=true + else + TAG_NAME=${{ github.ref }} + RELEASE_NAME="Release ${{ github.ref }}" + PRERELEASE=false + fi + echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV + echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV + echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV + echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV + echo "BRANCH=$BRANCH" >> $GITHUB_ENV + cd $GITHUB_WORKSPACE + make prepare + + - uses: actions/download-artifact@v3 + with: + name: ${{ needs.toolchain.outputs.sdk-file }} + + - name: Build firmware + run: | + BOARD=unknown_unknown_${{ matrix.platform }} + if [ "${{ matrix.release }}" != "lite" ]; then + SUFF="${{ matrix.release }}-" + BOARD="${BOARD}_${{ matrix.release }}" + else + BOARD="${BOARD}_openipc" + fi + + NORFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-${SUFF}br.tgz" + echo "NORFW_PATH=$NORFW_PATH" >> $GITHUB_ENV + NORFW_FILE=$(basename $NORFW_PATH) + echo "NORFW_FILE=$NORFW_FILE" >> $GITHUB_ENV + + cd $GITHUB_WORKSPACE + CONF_PATH=$(find . -name "${BOARD}_defconfig") + + echo Using ${{ needs.toolchain.outputs.sdk-file }} + echo "BR2_TOOLCHAIN_EXTERNAL=y" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_PATH=\"/tmp/extsdk\"" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX=\"arm-openipc-linux-musleabi\"" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y" >> $CONF_PATH + echo "BR2_TOOLCHAIN_EXTERNAL_GCC_8=y" >> $CONF_PATH + LIBC="musl" + echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH + mkdir /tmp/extsdk + tar xvf ${{ needs.toolchain.outputs.sdk-file }} --strip-components=1 -C /tmp/extsdk >/dev/null + + make PLATFORM=hisilicon BOARD=$BOARD all + + [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1 + [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1 + cd ${GITHUB_WORKSPACE}/output/images + mv uImage uImage.${{ matrix.platform }} + mv rootfs.squashfs rootfs.squashfs.${{ matrix.platform }} + md5sum rootfs.squashfs.${{ matrix.platform }} > rootfs.squashfs.${{ matrix.platform }}.md5sum + md5sum uImage.${{ matrix.platform }} > uImage.${{ matrix.platform }}.md5sum + tar -cvzf $NORFW_PATH uImage* *rootfs.squashfs.${{ matrix.platform }}* + + # TODO: infer from configs + if [ "$HAS_NAND" == "true" ]; then + NANDFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-nand-br.tgz" + echo "NANDFW_PATH=$NANDFW_PATH" >> $GITHUB_ENV + NANDFW_FILE=$(basename $NANDFW_PATH) + echo "NANDFW_FILE=$NANDFW_FILE" >> $GITHUB_ENV + + mv rootfs.ubi rootfs.ubi.${{ matrix.platform }} + mv rootfs.ubifs rootfs.ubifs.${{ matrix.platform }} + md5sum rootfs.ubifs.${{ matrix.platform }} > rootfs.ubifs.${{ matrix.platform }}.md5sum + tar -cvzf $NANDFW_PATH uImage* *rootfs.ubi*.${{ matrix.platform }}* + fi + + - name: Send error message to telegram channel + env: + TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} + TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} + if: ${{ !env.ACT && failure() && github.event_name != 'pull_request' }} + run: | + TG_OPTIONS="-s --connect-timeout 30 --max-time 30" + TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${{ matrix.platform }} (${{ matrix.release }})}" + TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") + curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ + -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" + exit 2 + + - name: Create release + if: ${{ !env.ACT && github.event_name != 'pull_request' }} + uses: actions/create-release@v1 + continue-on-error: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ env.TAG_NAME }} + release_name: ${{ env.RELEASE_NAME }} + draft: false + prerelease: ${{ env.PRERELEASE }} + + - name: Upload NOR FW to release + if: ${{ !env.ACT && github.event_name != 'pull_request' }} + uses: svenstaro/upload-release-action@v2 + continue-on-error: true + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.NORFW_PATH }} + asset_name: ${{ env.NORFW_FILE }} + tag: ${{ env.TAG_NAME }} + overwrite: true + + - name: Upload NAND FW to release + if: ${{ !env.ACT && github.event_name != 'pull_request' && env.HAS_NAND }} + uses: svenstaro/upload-release-action@v2 + continue-on-error: true + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.NANDFW_PATH }} + asset_name: ${{ env.NANDFW_FILE }} + tag: ${{ env.TAG_NAME }} + overwrite: true + + - name: Send binary file to telegram channel + if: ${{ !env.ACT && github.event_name != 'pull_request' }} + env: + TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} + TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} + run: | + TG_OPTIONS="-s --connect-timeout 30 --max-time 30" + TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") + curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ + -F chat_id=$TG_CHANNEL -F document="@$NORFW_PATH" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev200_ultimate_images.yml b/.github/workflows/hi3516ev200_ultimate_images.yml deleted file mode 100644 index 7f2b7557..00000000 --- a/.github/workflows/hi3516ev200_ultimate_images.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: "Hi3516Ev200 (ultimate)" - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev200 (ultimate) - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "BOARD=hi3516ev200" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev200 (ultimate) firmware - id: build-hi3516ev200-ultimate-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" - ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.${BOARD} - mv rootfs.squashfs rootfs.squashfs.${BOARD} - mv rootfs.ubi rootfs.ubi.${BOARD} - mv rootfs.ubifs rootfs.ubifs.${BOARD} - md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* - tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev200-ultimate-firmware.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload NAND FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW_NAND }} - asset_name: openipc.${{ env.BOARD }}-nand-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev300_fpv_images.yml b/.github/workflows/hi3516ev300_fpv_images.yml deleted file mode 100644 index 90813bd8..00000000 --- a/.github/workflows/hi3516ev300_fpv_images.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: "Hi3516Ev300 (fpv)" - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev300 (fpv) - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "BOARD=hi3516ev300" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev300 (fpv) firmware - id: build-hi3516ev300-fpv-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.${BOARD} - mv rootfs.squashfs rootfs.squashfs.${BOARD} - md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev300-fpv-firmware.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev300_images.yml b/.github/workflows/hi3516ev300_images.yml deleted file mode 100644 index 1aad52eb..00000000 --- a/.github/workflows/hi3516ev300_images.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: "Hi3516Ev300 " - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev300 - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev300 firmware - id: build-hi3516ev300-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev300-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev300_openipc all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV300" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV300" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.hi3516ev300 - mv rootfs.squashfs rootfs.squashfs.hi3516ev300 - md5sum rootfs.squashfs.hi3516ev300 > rootfs.squashfs.hi3516ev300.md5sum - md5sum uImage.hi3516ev300 > uImage.hi3516ev300.md5sum - tar -cvzf $ARCHIVE_FW *hi3516ev300* - - - name: Build Hi3516Ev300 SDK - id: build-hi3516ev300-sdk - continue-on-error: true - run: | - ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" - echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE/output - make sdk - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev300-firmware.outcome != 'success' || steps.build-hi3516ev300-sdk.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV300}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: "openipc.hi3516ev300-br.tgz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload SDK to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_SDK }} - asset_name: "arm-openipc-hi3516ev300-linux-musleabi_sdk-buildroot.tar.gz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3516ev300_ultimate_images.yml b/.github/workflows/hi3516ev300_ultimate_images.yml deleted file mode 100644 index 115571eb..00000000 --- a/.github/workflows/hi3516ev300_ultimate_images.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: "Hi3516Ev300 (ultimate)" - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3516Ev300 (ultimate) - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "BOARD=hi3516ev300" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3516Ev300 (ultimate) firmware - id: build-hi3516ev300-ultimate-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" - ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.${BOARD} - mv rootfs.squashfs rootfs.squashfs.${BOARD} - mv rootfs.ubi rootfs.ubi.${BOARD} - mv rootfs.ubifs rootfs.ubifs.${BOARD} - md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* - tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3516ev300-ultimate-firmware.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload NAND FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW_NAND }} - asset_name: openipc.${{ env.BOARD }}-nand-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3518ev300_images.yml b/.github/workflows/hi3518ev300_images.yml deleted file mode 100644 index 6590b267..00000000 --- a/.github/workflows/hi3518ev300_images.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: "Hi3518Ev300 " - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3518Ev300 - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3518Ev300 firmware - id: build-hi3518ev300-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3518ev300-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_hi3518ev300_openipc all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3518EV300" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3518EV300" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.hi3518ev300 - mv rootfs.squashfs rootfs.squashfs.hi3518ev300 - md5sum rootfs.squashfs.hi3518ev300 > rootfs.squashfs.hi3518ev300.md5sum - md5sum uImage.hi3518ev300 > uImage.hi3518ev300.md5sum - tar -cvzf $ARCHIVE_FW *hi3518ev300* - - - name: Build Hi3518Ev300 SDK - id: build-hi3518ev300-sdk - continue-on-error: true - run: | - ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" - echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE/output - make sdk - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3518ev300-firmware.outcome != 'success' || steps.build-hi3518ev300-sdk.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3518EV300}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: "openipc.hi3518ev300-br.tgz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload SDK to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_SDK }} - asset_name: "arm-openipc-hi3518ev300-linux-musleabi_sdk-buildroot.tar.gz" - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" diff --git a/.github/workflows/hi3518ev300_ultimate_images.yml b/.github/workflows/hi3518ev300_ultimate_images.yml deleted file mode 100644 index e26f3022..00000000 --- a/.github/workflows/hi3518ev300_ultimate_images.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: "Hi3518Ev300 (ultimate)" - -on: - push: - branches: - - production - tags: - - "v*" - schedule: - - cron: "00 03 * * *" - workflow_dispatch: - -jobs: - build_core: - name: OpenIPC firmware for Hi3518Ev300 (ultimate) - runs-on: ubuntu-latest - - steps: - - - name: Checkout - id: checkout - uses: actions/checkout@v2 - - - name: Install build dependencies - run: | - make install-deps - mkdir -p tmp - if [ ! -z "$ACT" ]; then - apt install -y cpio rsync bc - echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake - fi - - - name: Free disk space - if: ${{ !env.ACT }} - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare buildroot - id: prepare - run: | - HEAD_TAG=$(git tag --points-at HEAD) - GIT_HASH=$(git rev-parse --short $GITHUB_SHA) - BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) - if [ -z "$HEAD_TAG" ]; then - TAG_NAME="latest" - RELEASE_NAME="Development Build" - PRERELEASE=true - else - TAG_NAME=${{ github.ref }} - RELEASE_NAME="Release ${{ github.ref }}" - PRERELEASE=false - fi - echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV - echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - echo "BOARD=hi3518ev300" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make prepare - - - name: Build Hi3518Ev300 (ultimate) firmware - id: build-hi3518ev300-ultimate-firmware - continue-on-error: true - run: | - ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" - ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" - echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV - echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV - cd $GITHUB_WORKSPACE - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 - cd ${GITHUB_WORKSPACE}/output/images - mv uImage uImage.${BOARD} - mv rootfs.squashfs rootfs.squashfs.${BOARD} - mv rootfs.ubi rootfs.ubi.${BOARD} - mv rootfs.ubifs rootfs.ubifs.${BOARD} - md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum - md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum - tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* - tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* - - - name: Send error message to telegram channel - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - if: steps.build-hi3518ev300-ultimate-firmware.outcome != 'success' - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" - TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ - -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" - exit 2 - - - name: Create release - if: ${{ !env.ACT }} - uses: actions/create-release@v1 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.TAG_NAME }} - release_name: ${{ env.RELEASE_NAME }} - draft: false - prerelease: ${{ env.PRERELEASE }} - - - name: Upload NOR FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW }} - asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Upload NAND FW to release - if: ${{ !env.ACT }} - uses: svenstaro/upload-release-action@v2 - continue-on-error: true - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.ARCHIVE_FW_NAND }} - asset_name: openipc.${{ env.BOARD }}-nand-br.tgz - tag: ${{ env.TAG_NAME }} - overwrite: true - - - name: Send binary file to telegram channel - if: ${{ !env.ACT }} - env: - TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} - TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} - run: | - TG_OPTIONS="-s --connect-timeout 30 --max-time 30" - TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") - curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ - -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" From 97b85c3a1d8aa00efba8a636e1e90b7525ac74d4 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 19:53:01 +0300 Subject: [PATCH 10/11] Add Toolchain gen script (#353) * Set internal release versions more flexible * Add show_toolchains.sh script --- ...how-kernel-vers.sh => show_kernel_vers.sh} | 0 scripts/show_toolchains.sh | 42 +++++++++++++++++++ 2 files changed, 42 insertions(+) rename scripts/{show-kernel-vers.sh => show_kernel_vers.sh} (100%) create mode 100755 scripts/show_toolchains.sh diff --git a/scripts/show-kernel-vers.sh b/scripts/show_kernel_vers.sh similarity index 100% rename from scripts/show-kernel-vers.sh rename to scripts/show_kernel_vers.sh diff --git a/scripts/show_toolchains.sh b/scripts/show_toolchains.sh new file mode 100755 index 00000000..b3296533 --- /dev/null +++ b/scripts/show_toolchains.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +shopt -s nullglob + +if [ $# -eq 0 ]; then + $0 1 | sort + #$0 1 | sort | uniq +else + for D in br-ext-chip-*; do + for CF in $D/configs/*; do + BR2_VER=$(grep BR2_DEFAULT_KERNEL_VERSION $CF) + if [ ! -z $BR2_VER ]; then + VENDOR=$(echo $CF | cut -d - -f 4 | cut -d / -f 1 | sed -r 's/\<./\U&/g') + VER=$(echo $BR2_VER | cut -d \" -f 2 | awk -F . '{printf "%s_%s", $1, $2}') + GCC_VER=$(sed -rn "s/^BR2_GCC_VERSION_([0-9]*)_X=y/\1/p" $CF) + ARCH=$(sed -rn "s/^BR2_(arm[a-z0-9_]+)=y/\1/p" $CF) + if [ -z "$ARCH" ]; then + ARCH=$(sed -rn "s/^BR2_(cortex_[a-z0-9_]+)=y/\1/p" $CF) + fi + if [ -z "$ARCH" ]; then + ARCH=$(sed -rn "s/^BR2_(arm)=y/\1/p" $CF) + else + # Here we have something from ARM modern family + HF=$(sed -rn "s/^BR2_ARM_EABI(HF)=y/\1/p" $CF | tr '[:upper:]' '[:lower:]') + if [ ! -z "$HF" ]; then + ARCH="${ARCH}_${HF}" + fi + fi + + if [ -z "$ARCH" ]; then + ARCH=$(sed -rn "s/^BR2_(mips_[a-z]*)=y/\1/p" $CF) + fi + + LIBC=$(sed -rn "s/^BR2_TOOLCHAIN_BUILDROOT_LIBC=\"(.*)\"/\1/p" $CF) + + SOC=$(echo $CF | cut -d _ -f 3) + # $GCC_VER + echo $ARCH $LIBC $VER $VENDOR $CF + fi + done + done +fi From 04bfd11695b1de53ee1adc04ff9ba25091cfda26 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Sun, 14 Aug 2022 21:07:30 +0300 Subject: [PATCH 11/11] Cleanup ci (#354) * Set internal release versions more flexible * Simplify CI code after master updated --- .github/workflows/hi3516ev200_matrix.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/hi3516ev200_matrix.yml b/.github/workflows/hi3516ev200_matrix.yml index cd325c4a..c4f340ad 100644 --- a/.github/workflows/hi3516ev200_matrix.yml +++ b/.github/workflows/hi3516ev200_matrix.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest env: - BOARD: hi3516ev200 + CHIP: hi3516ev200 outputs: sdk-file: ${{ steps.build-sdk.outputs.sdk-file }} @@ -45,8 +45,6 @@ jobs: if [ ! -z "$ACT" ]; then apt install -y cpio rsync bc echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake fi - name: Free disk space @@ -59,8 +57,9 @@ jobs: - name: Build Buildroot SDK id: build-sdk run: | + set -x make prepare - make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_openipc br-sdk + make BOARD=unknown_unknown_${CHIP}_openipc br-sdk SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz") echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV SDK_FILE=$(basename $SDK_PATH) @@ -116,8 +115,6 @@ jobs: if [ ! -z "$ACT" ]; then apt install -y cpio rsync bc echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV - # Mitigate #325 issue - apt install -y pip && pip install cmake fi - name: Free disk space @@ -186,7 +183,7 @@ jobs: mkdir /tmp/extsdk tar xvf ${{ needs.toolchain.outputs.sdk-file }} --strip-components=1 -C /tmp/extsdk >/dev/null - make PLATFORM=hisilicon BOARD=$BOARD all + make BOARD=$BOARD all [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1 [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1