mirror of https://github.com/OpenIPC/firmware.git
Workflow: create separate toolchain action
parent
0dabee3c7f
commit
c24a494335
|
@ -1,5 +1,4 @@
|
||||||
name: build
|
name: build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types:
|
types:
|
||||||
|
@ -14,88 +13,22 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
TAG_NAME: latest
|
||||||
MAX_KERNEL_SIZE: 0x200000
|
MAX_KERNEL_SIZE: 0x200000
|
||||||
MAX_ROOTFS_SIZE: 0x500000
|
MAX_ROOTFS_SIZE: 0x500000
|
||||||
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: 0x1000000
|
MAX_ROOTFS_SIZE_NAND: 0x1000000
|
||||||
TAG_NAME: latest
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
toolchain:
|
|
||||||
name: Toolchain
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
platform:
|
|
||||||
- ak3918ev300
|
|
||||||
- dm36x
|
|
||||||
- fh8852v100
|
|
||||||
- fh8852v200
|
|
||||||
- gk7102
|
|
||||||
- gm8136
|
|
||||||
- hi3516cv100
|
|
||||||
- hi3516cv200
|
|
||||||
- hi3516cv300
|
|
||||||
- hi3516cv500
|
|
||||||
- hi3516ev200
|
|
||||||
- hi3519v101
|
|
||||||
- hi3536cv100
|
|
||||||
- msc313e
|
|
||||||
- msc316dc
|
|
||||||
- msc316dm
|
|
||||||
- nt98562
|
|
||||||
- rv1126
|
|
||||||
- s3l
|
|
||||||
- ssc335
|
|
||||||
- ssc338q
|
|
||||||
- t31
|
|
||||||
- t40
|
|
||||||
- xm510
|
|
||||||
- xm530
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout source
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Determine toolchain
|
|
||||||
run: |
|
|
||||||
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
|
||||||
echo GCC=${GCC} >> ${GITHUB_ENV}
|
|
||||||
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
|
||||||
echo Check: ${URL}
|
|
||||||
if ! wget --spider ${URL} 2> /dev/null; then
|
|
||||||
echo BUILD=true >> ${GITHUB_ENV}
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Build toolchain
|
|
||||||
if: env.BUILD
|
|
||||||
run: |
|
|
||||||
make BOARD=${{matrix.platform}}_lite br-sdk
|
|
||||||
SDK=$(find output/images -name *_sdk-buildroot.tar.gz)
|
|
||||||
mv ${SDK} ${GCC}.tgz
|
|
||||||
|
|
||||||
- name: Upload toolchain
|
|
||||||
if: env.BUILD && github.event_name != 'pull_request'
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
with:
|
|
||||||
tag_name: ${{env.TAG_NAME}}
|
|
||||||
files: ${{env.GCC}}.tgz
|
|
||||||
|
|
||||||
buildroot:
|
|
||||||
name: Firmware
|
|
||||||
needs: toolchain
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
TG_TOKEN: ${{secrets.TELEGRAM_TOKEN_BOT_OPENIPC}}
|
TG_TOKEN: ${{secrets.TELEGRAM_TOKEN_BOT_OPENIPC}}
|
||||||
TG_CHANNEL: ${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}}
|
TG_CHANNEL: ${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}}
|
||||||
TG_OPTIONS: -s --connect-timeout 30 --retry 10 --http1.1 -o /dev/null -w %{http_code}
|
TG_OPTIONS: -s --connect-timeout 30 --retry 10 --http1.1 -o /dev/null -w %{http_code}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildroot:
|
||||||
|
name: Firmware
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -267,12 +200,6 @@ 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: |
|
||||||
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
||||||
|
@ -295,6 +222,12 @@ 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}}
|
||||||
|
@ -337,9 +270,7 @@ jobs:
|
||||||
|
|
||||||
echo BR2_CCACHE=y >> ${CONFIG}
|
echo BR2_CCACHE=y >> ${CONFIG}
|
||||||
echo BR2_CCACHE_DIR=\"/tmp/ccache\" >> ${CONFIG}
|
echo BR2_CCACHE_DIR=\"/tmp/ccache\" >> ${CONFIG}
|
||||||
|
|
||||||
export BR2_DL_DIR=/tmp/download
|
export BR2_DL_DIR=/tmp/download
|
||||||
export BR2_EXTERNAL_LIBC=${LIBC}
|
|
||||||
|
|
||||||
export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA})
|
export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA})
|
||||||
export GIT_BRANCH=${GITHUB_REF_NAME}
|
export GIT_BRANCH=${GITHUB_REF_NAME}
|
||||||
|
@ -347,12 +278,10 @@ jobs:
|
||||||
echo GIT_BRANCH=${GIT_BRANCH} >> ${GITHUB_ENV}
|
echo GIT_BRANCH=${GIT_BRANCH} >> ${GITHUB_ENV}
|
||||||
|
|
||||||
echo ------------------------------------------------------------
|
echo ------------------------------------------------------------
|
||||||
echo ${CONFIG}
|
make info BOARD=${FAMILY}_${RELEASE}
|
||||||
echo ------------------------------------------------------------
|
echo ------------------------------------------------------------
|
||||||
cat ${CONFIG}
|
cat ${CONFIG}
|
||||||
echo ------------------------------------------------------------
|
echo ------------------------------------------------------------
|
||||||
make info BOARD=${FAMILY}_${RELEASE}
|
|
||||||
echo ------------------------------------------------------------
|
|
||||||
make all BOARD=${FAMILY}_${RELEASE}
|
make all BOARD=${FAMILY}_${RELEASE}
|
||||||
echo ------------------------------------------------------------
|
echo ------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REMOVE: aws* linux* gcc majestic mini
|
REMOVE: linux* gcc glibc aws* majestic mini
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
download:
|
download:
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
name: toolchain
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
TAG_NAME: latest
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
toolchain:
|
||||||
|
name: Toolchain
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
platform:
|
||||||
|
- ak3918ev300
|
||||||
|
- dm36x
|
||||||
|
- fh8852v100
|
||||||
|
- fh8852v200
|
||||||
|
- gk7102
|
||||||
|
- gm8136
|
||||||
|
- hi3516cv100
|
||||||
|
- hi3516cv200
|
||||||
|
- hi3516cv300
|
||||||
|
- hi3516cv500
|
||||||
|
- hi3516ev200
|
||||||
|
- hi3519v101
|
||||||
|
- hi3536cv100
|
||||||
|
- msc313e
|
||||||
|
- msc316dc
|
||||||
|
- msc316dm
|
||||||
|
- nt98562
|
||||||
|
- rv1126
|
||||||
|
- s3l
|
||||||
|
- ssc335
|
||||||
|
- ssc338q
|
||||||
|
- t31
|
||||||
|
- t40
|
||||||
|
- xm510
|
||||||
|
- xm530
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout source
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Determine toolchain
|
||||||
|
run: |
|
||||||
|
GCC=$(make BOARD=${{matrix.platform}}_lite toolname)
|
||||||
|
echo GCC=${GCC} >> ${GITHUB_ENV}
|
||||||
|
URL=https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAG_NAME}/${GCC}.tgz
|
||||||
|
echo Check: ${URL}
|
||||||
|
if ! wget --spider ${URL} 2> /dev/null; then
|
||||||
|
echo BUILD=true >> ${GITHUB_ENV}
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Restore download
|
||||||
|
if: env.BUILD
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: /tmp/download
|
||||||
|
key: buildroot-cache
|
||||||
|
|
||||||
|
- name: Build toolchain
|
||||||
|
if: env.BUILD
|
||||||
|
run: |
|
||||||
|
export BR2_DL_DIR=/tmp/download
|
||||||
|
make BOARD=${{matrix.platform}}_lite br-sdk
|
||||||
|
SDK=$(find output/images -name *_sdk-buildroot.tar.gz)
|
||||||
|
mv ${SDK} ${GCC}.tgz
|
||||||
|
|
||||||
|
- name: Upload toolchain
|
||||||
|
if: env.BUILD
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
tag_name: ${{env.TAG_NAME}}
|
||||||
|
files: ${{env.GCC}}.tgz
|
7
Makefile
7
Makefile
|
@ -34,14 +34,14 @@ br-%: defconfig
|
||||||
defconfig: prepare
|
defconfig: prepare
|
||||||
@$(BR_MAKE) BR2_DEFCONFIG=$(PWD)/$(CONFIG) defconfig
|
@$(BR_MAKE) BR2_DEFCONFIG=$(PWD)/$(CONFIG) defconfig
|
||||||
|
|
||||||
toolname: prepare
|
|
||||||
@general/scripts/show_toolchains.sh $(CONFIG) $(BR_VER)
|
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
@mkdir -p /tmp/download
|
@mkdir -p /tmp/download
|
||||||
@test -e $(BR_FILE) || wget -c -q $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE)
|
@test -e $(BR_FILE) || wget -c -q $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE)
|
||||||
@test -e buildroot-$(BR_VER) || tar -xf $(BR_FILE) -C $(PWD)
|
@test -e buildroot-$(BR_VER) || tar -xf $(BR_FILE) -C $(PWD)
|
||||||
|
|
||||||
|
toolname:
|
||||||
|
@general/scripts/show_toolchains.sh $(CONFIG)
|
||||||
|
|
||||||
buildroot-version:
|
buildroot-version:
|
||||||
@echo $(BR_VER)
|
@echo $(BR_VER)
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ distclean:
|
||||||
@rm -rf output buildroot-$(BR_VER) $(BR_FILE)
|
@rm -rf output buildroot-$(BR_VER) $(BR_FILE)
|
||||||
|
|
||||||
info:
|
info:
|
||||||
|
@echo $(CONFIG):
|
||||||
@cat $(CONFIG) | grep BR2_OPENIPC | tr -d '"' | sed "s|BR2_OPENIPC_||g"
|
@cat $(CONFIG) | grep BR2_OPENIPC | tr -d '"' | sed "s|BR2_OPENIPC_||g"
|
||||||
|
|
||||||
list:
|
list:
|
||||||
|
|
|
@ -3,7 +3,6 @@ export OPENIPC_MODEL = $(call qstrip,$(BR2_OPENIPC_MODEL))
|
||||||
export OPENIPC_FAMILY = $(call qstrip,$(BR2_OPENIPC_FAMILY))
|
export OPENIPC_FAMILY = $(call qstrip,$(BR2_OPENIPC_FAMILY))
|
||||||
export OPENIPC_RELEASE = $(call qstrip,$(BR2_OPENIPC_RELEASE))
|
export OPENIPC_RELEASE = $(call qstrip,$(BR2_OPENIPC_RELEASE))
|
||||||
|
|
||||||
export BR2_EXTERNAL_LIBC ?= $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
|
|
||||||
export BR2_EXTERNAL_SCRIPTS = $(BR2_EXTERNAL)/scripts
|
export BR2_EXTERNAL_SCRIPTS = $(BR2_EXTERNAL)/scripts
|
||||||
export BR2_EXTERNAL_VENDOR = $(BR2_EXTERNAL)/../br-ext-chip-$(BR2_OPENIPC_VENDOR)
|
export BR2_EXTERNAL_VENDOR = $(BR2_EXTERNAL)/../br-ext-chip-$(BR2_OPENIPC_VENDOR)
|
||||||
|
|
||||||
|
|
|
@ -8,15 +8,16 @@ date +GITHUB_VERSION="\"${GIT_BRANCH-local}+${GIT_HASH-build}, %Y-%m-%d"\" >> ${
|
||||||
echo BUILD_OPTION=${OPENIPC_RELEASE} >> ${FILE}
|
echo BUILD_OPTION=${OPENIPC_RELEASE} >> ${FILE}
|
||||||
date +TIME_STAMP=%s >> ${FILE}
|
date +TIME_STAMP=%s >> ${FILE}
|
||||||
|
|
||||||
echo --- BR2_TOOLCHAIN_BUILDROOT_LIBC: ${BR2_EXTERNAL_LIBC}
|
LIBC=$(grep -oP "TOOLCHAIN_USES.\K\w+" ${BR2_CONFIG} | awk '{print tolower($0)}')
|
||||||
|
echo --- BR2_TOOLCHAIN_BUILDROOT_LIBC: ${LIBC}
|
||||||
rm -f ${TARGET_DIR}/usr/bin/gdbserver
|
rm -f ${TARGET_DIR}/usr/bin/gdbserver
|
||||||
|
|
||||||
CONF="INGENIC_OSDRV_T30=y|LIBV4L=y|MAVLINK_ROUTER=y|WIFIBROADCAST=y"
|
CONF="INGENIC_OSDRV_T30=y|LIBV4L=y|MAVLINK_ROUTER=y|WIFIBROADCAST=y"
|
||||||
if [ ${BR2_EXTERNAL_LIBC} != "glibc" ] && ! grep -qE ${CONF} ${BR2_CONFIG}; then
|
if [ ${LIBC} != "glibc" ] && ! grep -qP ${CONF} ${BR2_CONFIG}; then
|
||||||
rm -f ${TARGET_DIR}/usr/lib/libstdc++*
|
rm -f ${TARGET_DIR}/usr/lib/libstdc++*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${BR2_EXTERNAL_LIBC} = "musl" ]; then
|
if [ ${LIBC} = "musl" ]; then
|
||||||
NAME=${OPENIPC_RELEASE/lte/fpv}
|
NAME=${OPENIPC_RELEASE/lte/fpv}
|
||||||
LIST=${BR2_EXTERNAL_SCRIPTS}/excludes/${OPENIPC_MODEL}_${NAME}.list
|
LIST=${BR2_EXTERNAL_SCRIPTS}/excludes/${OPENIPC_MODEL}_${NAME}.list
|
||||||
test -e ${LIST} && xargs -a ${LIST} -i rm -f ${TARGET_DIR}{}
|
test -e ${LIST} && xargs -a ${LIST} -i rm -f ${TARGET_DIR}{}
|
||||||
|
|
Loading…
Reference in New Issue