mirror of https://github.com/OpenIPC/firmware.git
Makefile: add buildroot to cached downloads
parent
1c140dc0df
commit
81520783d4
|
@ -19,7 +19,7 @@ env:
|
||||||
MAX_KERNEL_SIZE_ULTIMATE: 0x300000
|
MAX_KERNEL_SIZE_ULTIMATE: 0x300000
|
||||||
MAX_ROOTFS_SIZE_ULTIMATE: 0xA00000
|
MAX_ROOTFS_SIZE_ULTIMATE: 0xA00000
|
||||||
MAX_KERNEL_SIZE_NAND: 0x0800000
|
MAX_KERNEL_SIZE_NAND: 0x0800000
|
||||||
MAX_ROOTFS_SIZE_NAND: 0x1200000
|
MAX_ROOTFS_SIZE_NAND: 0x1000000
|
||||||
TAG_NAME: latest
|
TAG_NAME: latest
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
@ -65,11 +65,10 @@ jobs:
|
||||||
|
|
||||||
- name: Determine toolchain
|
- name: Determine toolchain
|
||||||
run: |
|
run: |
|
||||||
make BOARD=${{matrix.platform}}_lite prepare
|
|
||||||
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
||||||
echo GCC=${GCC} >> ${GITHUB_ENV}
|
echo GCC=${GCC} >> ${GITHUB_ENV}
|
||||||
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
||||||
echo ${URL}
|
echo Check: ${URL}
|
||||||
if ! wget --spider ${URL} 2> /dev/null; then
|
if ! wget --spider ${URL} 2> /dev/null; then
|
||||||
echo BUILD=true >> ${GITHUB_ENV}
|
echo BUILD=true >> ${GITHUB_ENV}
|
||||||
fi
|
fi
|
||||||
|
@ -268,14 +267,19 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Restore download
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: /tmp/download
|
||||||
|
key: buildroot-cache
|
||||||
|
|
||||||
- name: Determine toolchain
|
- name: Determine toolchain
|
||||||
run: |
|
run: |
|
||||||
make BOARD=${{matrix.platform}}_lite prepare
|
|
||||||
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
||||||
echo GCC=${GCC} >> ${GITHUB_ENV}
|
echo GCC=${GCC} >> ${GITHUB_ENV}
|
||||||
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
||||||
echo ${URL}
|
echo Download: ${URL}
|
||||||
wget -q -c --retry-on-http-error=503 --timeout=15 ${URL}
|
wget -c -q --timeout=15 --retry-on-http-error=503 ${URL}
|
||||||
|
|
||||||
- name: Setup ccache
|
- name: Setup ccache
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
|
@ -291,12 +295,6 @@ jobs:
|
||||||
path: /tmp/ccache
|
path: /tmp/ccache
|
||||||
key: ${{env.GCC}}
|
key: ${{env.GCC}}
|
||||||
|
|
||||||
- name: Restore download
|
|
||||||
uses: actions/cache/restore@v3
|
|
||||||
with:
|
|
||||||
path: /tmp/download
|
|
||||||
key: buildroot-cache
|
|
||||||
|
|
||||||
- name: Build firmware
|
- name: Build firmware
|
||||||
run: |
|
run: |
|
||||||
FAMILY=${{matrix.platform}}
|
FAMILY=${{matrix.platform}}
|
||||||
|
@ -304,9 +302,8 @@ jobs:
|
||||||
CONFIG=$(find br-ext-chip-* -name ${FAMILY}_${RELEASE}_defconfig)
|
CONFIG=$(find br-ext-chip-* -name ${FAMILY}_${RELEASE}_defconfig)
|
||||||
IMAGES=${GITHUB_WORKSPACE}/output/images
|
IMAGES=${GITHUB_WORKSPACE}/output/images
|
||||||
|
|
||||||
DIR=/tmp/openipc
|
|
||||||
SDK=/tmp/extsdk
|
SDK=/tmp/extsdk
|
||||||
mkdir -p ${DIR} ${SDK}
|
mkdir -p ${SDK}
|
||||||
tar xf ${GCC}.tgz --strip-components=1 -C ${SDK}
|
tar xf ${GCC}.tgz --strip-components=1 -C ${SDK}
|
||||||
|
|
||||||
EXT=BR2_TOOLCHAIN_EXTERNAL
|
EXT=BR2_TOOLCHAIN_EXTERNAL
|
||||||
|
@ -355,12 +352,11 @@ jobs:
|
||||||
echo ------------------------------------------------------------
|
echo ------------------------------------------------------------
|
||||||
|
|
||||||
check_size() {
|
check_size() {
|
||||||
FILE=$(basename ${1})
|
|
||||||
SIZE1=$(expr $(stat --printf="%s" ${1}) / 1024)
|
SIZE1=$(expr $(stat --printf="%s" ${1}) / 1024)
|
||||||
SIZE2=$(expr ${2} / 1024)
|
SIZE2=$(expr ${2} / 1024)
|
||||||
echo - ${FILE}: [${SIZE1}KB/${SIZE2}KB]
|
echo - ${1}: [${SIZE1}KB/${SIZE2}KB]
|
||||||
if [ ${SIZE1} -gt ${SIZE2} ]; then
|
if [ ${SIZE1} -gt ${SIZE2} ]; then
|
||||||
echo -- Error: ${FILE} size exceeded by $(expr ${SIZE1} - ${SIZE2})KB
|
echo -- Error: ${1} size exceeded by $(expr ${SIZE1} - ${SIZE2})KB
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -370,38 +366,41 @@ jobs:
|
||||||
MAX_ROOTFS_SIZE=${MAX_ROOTFS_SIZE_ULTIMATE}
|
MAX_ROOTFS_SIZE=${MAX_ROOTFS_SIZE_ULTIMATE}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mkdir -p /tmp/openipc
|
||||||
|
cd /tmp/openipc
|
||||||
|
|
||||||
if [ -e ${IMAGES}/uImage ]; then
|
if [ -e ${IMAGES}/uImage ]; then
|
||||||
check_size ${IMAGES}/uImage ${MAX_KERNEL_SIZE}
|
mv ${IMAGES}/uImage uImage.${FAMILY}
|
||||||
mv ${IMAGES}/uImage ${DIR}/uImage.${FAMILY}
|
md5sum uImage.${FAMILY} > uImage.${FAMILY}.md5sum
|
||||||
md5sum ${DIR}/uImage.${FAMILY} > ${DIR}/uImage.${FAMILY}.md5sum
|
check_size uImage.${FAMILY} ${MAX_KERNEL_SIZE}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e ${IMAGES}/zboot.img ]; then
|
if [ -e ${IMAGES}/zboot.img ]; then
|
||||||
check_size ${IMAGES}/zboot.img ${MAX_KERNEL_SIZE_NAND}
|
mv ${IMAGES}/zboot.img boot.img.${FAMILY}
|
||||||
mv ${IMAGES}/zboot.img ${DIR}/boot.img.${FAMILY}
|
md5sum boot.img.${FAMILY} > boot.img.${FAMILY}.md5sum
|
||||||
md5sum ${DIR}/boot.img.${FAMILY} > ${DIR}/boot.img.${FAMILY}.md5sum
|
check_size boot.img.${FAMILY} ${MAX_KERNEL_SIZE_NAND}
|
||||||
rm -f ${IMAGES}/rootfs.squashfs
|
rm -f ${IMAGES}/rootfs.squashfs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e ${IMAGES}/rootfs.squashfs ]; then
|
if [ -e ${IMAGES}/rootfs.squashfs ]; then
|
||||||
check_size ${IMAGES}/rootfs.squashfs ${MAX_ROOTFS_SIZE}
|
mv ${IMAGES}/rootfs.squashfs rootfs.squashfs.${FAMILY}
|
||||||
mv ${IMAGES}/rootfs.squashfs ${DIR}/rootfs.squashfs.${FAMILY}
|
md5sum rootfs.squashfs.${FAMILY} > rootfs.squashfs.${FAMILY}.md5sum
|
||||||
md5sum ${DIR}/rootfs.squashfs.${FAMILY} > ${DIR}/rootfs.squashfs.${FAMILY}.md5sum
|
check_size rootfs.squashfs.${FAMILY} ${MAX_ROOTFS_SIZE}
|
||||||
|
|
||||||
NORFW=${IMAGES}/openipc.${FAMILY}-nor-${RELEASE}.tgz
|
NORFW=${IMAGES}/openipc.${FAMILY}-nor-${RELEASE}.tgz
|
||||||
echo NORFW=${NORFW} >> ${GITHUB_ENV}
|
echo NORFW=${NORFW} >> ${GITHUB_ENV}
|
||||||
tar czf ${NORFW} -C ${DIR} $(ls ${DIR})
|
tar czf ${NORFW} $(ls)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e ${IMAGES}/rootfs.ubi ]; then
|
if [ -e ${IMAGES}/rootfs.ubi ]; then
|
||||||
check_size ${IMAGES}/rootfs.ubi ${MAX_ROOTFS_SIZE_NAND}
|
mv ${IMAGES}/rootfs.ubi rootfs.ubi.${FAMILY}
|
||||||
mv ${IMAGES}/rootfs.ubi ${DIR}/rootfs.ubi.${FAMILY}
|
md5sum rootfs.ubi.${FAMILY} > rootfs.ubi.${FAMILY}.md5sum
|
||||||
md5sum ${DIR}/rootfs.ubi.${FAMILY} > ${DIR}/rootfs.ubi.${FAMILY}.md5sum
|
check_size rootfs.ubi.${FAMILY} ${MAX_ROOTFS_SIZE_NAND}
|
||||||
rm -f ${DIR}/rootfs.squashfs*
|
rm -f rootfs.squashfs*
|
||||||
|
|
||||||
NANDFW=${IMAGES}/openipc.${FAMILY}-nand-${RELEASE}.tgz
|
NANDFW=${IMAGES}/openipc.${FAMILY}-nand-${RELEASE}.tgz
|
||||||
echo NANDFW=${NANDFW} >> ${GITHUB_ENV}
|
echo NANDFW=${NANDFW} >> ${GITHUB_ENV}
|
||||||
tar czf ${NANDFW} -C ${DIR} $(ls ${DIR})
|
tar czf ${NANDFW} $(ls)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Upload firmware
|
- name: Upload firmware
|
||||||
|
@ -436,7 +435,7 @@ jobs:
|
||||||
ci-build-check:
|
ci-build-check:
|
||||||
if: github.event_name == 'pull_request' && always()
|
if: github.event_name == 'pull_request' && always()
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: CI buildcheck
|
name: CI Build Check
|
||||||
needs: buildroot
|
needs: buildroot
|
||||||
steps:
|
steps:
|
||||||
- run: |
|
- run: |
|
||||||
|
|
21
Makefile
21
Makefile
|
@ -1,7 +1,7 @@
|
||||||
BR_VER = 2021.02.12
|
BR_VER = 2021.02.12
|
||||||
BR_DIR = $(PWD)/buildroot-$(BR_VER)
|
BR_LINK = https://github.com/buildroot/buildroot/archive/refs/tags
|
||||||
BR_MAKE = $(MAKE) -C $(BR_DIR) BR2_EXTERNAL=$(PWD)/general O=$(PWD)/output
|
BR_MAKE = $(MAKE) -C buildroot-$(BR_VER) BR2_EXTERNAL=$(PWD)/general O=$(PWD)/output
|
||||||
CHECK = $(wildcard $(BR_DIR))
|
BR_FILE = /tmp/download/buildroot-$(BR_VER).tar.gz
|
||||||
|
|
||||||
ifdef BOARD
|
ifdef BOARD
|
||||||
CONFIG = $(shell find br-ext-chip-*/configs -type f | grep -m1 $(BOARD))
|
CONFIG = $(shell find br-ext-chip-*/configs -type f | grep -m1 $(BOARD))
|
||||||
|
@ -21,8 +21,8 @@ help:
|
||||||
@printf "BR-OpenIPC usage:\n \
|
@printf "BR-OpenIPC usage:\n \
|
||||||
- make clean - remove defconfig and target folder\n \
|
- make clean - remove defconfig and target folder\n \
|
||||||
- make distclean - remove buildroot and output folder\n \
|
- make distclean - remove buildroot and output folder\n \
|
||||||
- make list-configs - show available board configurations\n \
|
- make list-configs - show available device configurations\n \
|
||||||
- make all BOARD=<device> - builds the selected board\n\n"
|
- make all BOARD=<config> - builds the selected device\n\n"
|
||||||
|
|
||||||
all: defconfig
|
all: defconfig
|
||||||
@$(BR_MAKE) all
|
@$(BR_MAKE) all
|
||||||
|
@ -37,12 +37,9 @@ toolname: prepare
|
||||||
@general/scripts/show_toolchains.sh $(CONFIG) $(BR_VER)
|
@general/scripts/show_toolchains.sh $(CONFIG) $(BR_VER)
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
ifeq ($(CHECK),)
|
@mkdir -p /tmp/download
|
||||||
@wget -O $(BR_DIR).tar.gz -nv --retry-connrefused --timeout=3 \
|
@test -e $(BR_FILE) || wget -c -q $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE)
|
||||||
https://github.com/buildroot/buildroot/archive/refs/tags/$(BR_VER).tar.gz
|
@test -e buildroot-$(BR_VER) || tar -xf $(BR_FILE) -C $(PWD)
|
||||||
@tar -C $(PWD) -xf $(BR_DIR).tar.gz
|
|
||||||
@rm -f $(BR_DIR).tar.gz
|
|
||||||
endif
|
|
||||||
|
|
||||||
buildroot-version:
|
buildroot-version:
|
||||||
@echo $(BR_VER)
|
@echo $(BR_VER)
|
||||||
|
@ -51,7 +48,7 @@ clean:
|
||||||
@rm -rf output/target output/.config
|
@rm -rf output/target output/.config
|
||||||
|
|
||||||
distclean:
|
distclean:
|
||||||
@rm -rf output buildroot-*.*
|
@rm -rf output buildroot-$(BR_VER) $(BR_FILE)
|
||||||
|
|
||||||
list-configs:
|
list-configs:
|
||||||
@ls -1 br-ext-chip-*/configs
|
@ls -1 br-ext-chip-*/configs
|
||||||
|
|
Loading…
Reference in New Issue