mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			Workflow: create separate toolchain action
							parent
							
								
									0dabee3c7f
								
							
						
					
					
						commit
						c24a494335
					
				|  | @ -1,5 +1,4 @@ | |||
| name: build | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     types: | ||||
|  | @ -14,87 +13,21 @@ on: | |||
|   workflow_dispatch: | ||||
| 
 | ||||
| env: | ||||
|   TAG_NAME: latest | ||||
|   MAX_KERNEL_SIZE: 0x200000 | ||||
|   MAX_ROOTFS_SIZE: 0x500000 | ||||
|   MAX_KERNEL_SIZE_ULTIMATE: 0x300000 | ||||
|   MAX_ROOTFS_SIZE_ULTIMATE: 0xA00000 | ||||
|   MAX_KERNEL_SIZE_NAND: 0x0800000 | ||||
|   MAX_ROOTFS_SIZE_NAND: 0x1000000 | ||||
|   TAG_NAME: latest | ||||
|   TG_TOKEN: ${{secrets.TELEGRAM_TOKEN_BOT_OPENIPC}} | ||||
|   TG_CHANNEL: ${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}} | ||||
|   TG_OPTIONS: -s --connect-timeout 30 --retry 10 --http1.1 -o /dev/null -w %{http_code} | ||||
| 
 | ||||
| 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_CHANNEL: ${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}} | ||||
|       TG_OPTIONS: -s --connect-timeout 30 --retry 10 --http1.1 -o /dev/null -w %{http_code} | ||||
| 
 | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|  | @ -267,12 +200,6 @@ jobs: | |||
|         with: | ||||
|           fetch-depth: 0 | ||||
| 
 | ||||
|       - name: Restore download | ||||
|         uses: actions/cache/restore@v3 | ||||
|         with: | ||||
|           path: /tmp/download | ||||
|           key: buildroot-cache | ||||
| 
 | ||||
|       - name: Determine toolchain | ||||
|         run: | | ||||
|           GCC=$(make BOARD=${{matrix.platform}}_lite toolname) | ||||
|  | @ -295,6 +222,12 @@ jobs: | |||
|           path: /tmp/ccache | ||||
|           key: ${{env.GCC}} | ||||
| 
 | ||||
|       - name: Restore download | ||||
|         uses: actions/cache/restore@v3 | ||||
|         with: | ||||
|           path: /tmp/download | ||||
|           key: buildroot-cache | ||||
| 
 | ||||
|       - name: Build firmware | ||||
|         run: | | ||||
|           FAMILY=${{matrix.platform}} | ||||
|  | @ -337,9 +270,7 @@ jobs: | |||
| 
 | ||||
|           echo BR2_CCACHE=y >> ${CONFIG} | ||||
|           echo BR2_CCACHE_DIR=\"/tmp/ccache\" >> ${CONFIG} | ||||
| 
 | ||||
|           export BR2_DL_DIR=/tmp/download | ||||
|           export BR2_EXTERNAL_LIBC=${LIBC} | ||||
| 
 | ||||
|           export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA}) | ||||
|           export GIT_BRANCH=${GITHUB_REF_NAME} | ||||
|  | @ -347,12 +278,10 @@ jobs: | |||
|           echo GIT_BRANCH=${GIT_BRANCH} >> ${GITHUB_ENV} | ||||
| 
 | ||||
|           echo ------------------------------------------------------------ | ||||
|           echo ${CONFIG} | ||||
|           make info BOARD=${FAMILY}_${RELEASE} | ||||
|           echo ------------------------------------------------------------ | ||||
|           cat ${CONFIG} | ||||
|           echo ------------------------------------------------------------ | ||||
|           make info BOARD=${FAMILY}_${RELEASE} | ||||
|           echo ------------------------------------------------------------ | ||||
|           make all BOARD=${FAMILY}_${RELEASE} | ||||
|           echo ------------------------------------------------------------ | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ on: | |||
|   workflow_dispatch: | ||||
| 
 | ||||
| env: | ||||
|   REMOVE: aws* linux* gcc majestic mini | ||||
|   REMOVE: linux* gcc glibc aws* majestic mini | ||||
| 
 | ||||
| jobs: | ||||
|   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 | ||||
| 	@$(BR_MAKE) BR2_DEFCONFIG=$(PWD)/$(CONFIG) defconfig | ||||
| 
 | ||||
| toolname: prepare | ||||
| 	@general/scripts/show_toolchains.sh $(CONFIG) $(BR_VER) | ||||
| 
 | ||||
| prepare: | ||||
| 	@mkdir -p /tmp/download | ||||
| 	@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) | ||||
| 
 | ||||
| toolname: | ||||
| 	@general/scripts/show_toolchains.sh $(CONFIG) | ||||
| 
 | ||||
| buildroot-version: | ||||
| 	@echo $(BR_VER) | ||||
| 
 | ||||
|  | @ -52,6 +52,7 @@ distclean: | |||
| 	@rm -rf output buildroot-$(BR_VER) $(BR_FILE) | ||||
| 
 | ||||
| info: | ||||
| 	@echo $(CONFIG): | ||||
| 	@cat $(CONFIG) | grep BR2_OPENIPC | tr -d '"' | sed "s|BR2_OPENIPC_||g" | ||||
| 
 | ||||
| list: | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ export OPENIPC_MODEL = $(call qstrip,$(BR2_OPENIPC_MODEL)) | |||
| export OPENIPC_FAMILY = $(call qstrip,$(BR2_OPENIPC_FAMILY)) | ||||
| 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_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} | ||||
| 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 | ||||
| 
 | ||||
| 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++* | ||||
| fi | ||||
| 
 | ||||
| if [ ${BR2_EXTERNAL_LIBC} = "musl" ]; then | ||||
| if [ ${LIBC} = "musl" ]; then | ||||
|   NAME=${OPENIPC_RELEASE/lte/fpv} | ||||
|   LIST=${BR2_EXTERNAL_SCRIPTS}/excludes/${OPENIPC_MODEL}_${NAME}.list | ||||
|   test -e ${LIST} && xargs -a ${LIST} -i rm -f ${TARGET_DIR}{} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue