mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			285 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			YAML
		
	
	
| name: build
 | |
| on:
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - master
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|   workflow_dispatch:
 | |
| 
 | |
| env:
 | |
|   TAG_NAME: latest
 | |
|   TG_TOKEN: ${{secrets.TELEGRAM_TOKEN_BOT_OPENIPC}}
 | |
|   TG_CHANNEL: ${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}}
 | |
|   TG_OPTIONS: -s -o /dev/null -w %{http_code}
 | |
| 
 | |
| jobs:
 | |
|   buildroot:
 | |
|     name: Firmware
 | |
|     runs-on: ubuntu-latest
 | |
| 
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         platform:
 | |
|           - hi3516cv100
 | |
|           - hi3518cv100
 | |
|           - hi3518ev100
 | |
|           - hi3516av100
 | |
|           - hi3516dv100
 | |
|           - hi3516cv200
 | |
|           - hi3518ev200
 | |
|           - hi3519v101
 | |
|           - hi3516av200
 | |
|           - hi3516cv300
 | |
|           - hi3516ev100
 | |
|           - hi3516cv500
 | |
|           - hi3516dv300
 | |
|           - hi3516av300
 | |
|           - hi3516ev200
 | |
|           - hi3516ev300
 | |
|           - hi3518ev300
 | |
|           - hi3516dv200
 | |
|           - hi3536cv100
 | |
|           - hi3536dv100
 | |
|           - gk7205v200
 | |
|           - gk7205v210
 | |
|           - gk7205v300
 | |
|           - gk7202v300
 | |
|           - gk7605v100
 | |
|           - t20
 | |
|           - t31
 | |
|           - t40
 | |
| 
 | |
|         release:
 | |
|           - lite
 | |
|           - ultimate
 | |
| 
 | |
|         include:
 | |
|             # Sigmastar infinity6
 | |
|           - {"platform": "ssc325", "release": "lite"}
 | |
|           - {"platform": "ssc325de", "release": "lite"}
 | |
| 
 | |
|             # Sigmastar infinity6b0
 | |
|           - {"platform": "ssc333", "release": "lite"}
 | |
|           - {"platform": "ssc333", "release": "ultimate"}
 | |
|           - {"platform": "ssc335", "release": "lite"}
 | |
|           - {"platform": "ssc335", "release": "ultimate"}
 | |
|           - {"platform": "ssc335de", "release": "lite"}
 | |
|           - {"platform": "ssc335de", "release": "ultimate"}
 | |
|           - {"platform": "ssc337", "release": "lite"}
 | |
|           - {"platform": "ssc337", "release": "ultimate"}
 | |
|           - {"platform": "ssc337de", "release": "lite"}
 | |
|           - {"platform": "ssc337de", "release": "ultimate"}
 | |
| 
 | |
|             # Sigmastar infinity6c
 | |
|           - {"platform": "ssc377", "release": "lite"}
 | |
| 
 | |
|             # Sigmastar infinity6e
 | |
|           - {"platform": "ssc30kd", "release": "lite"}
 | |
|           - {"platform": "ssc30kd", "release": "ultimate"}
 | |
|           - {"platform": "ssc30kq", "release": "fpv"}
 | |
|           - {"platform": "ssc30kq", "release": "lite"}
 | |
|           - {"platform": "ssc30kq", "release": "ultimate"}
 | |
|           - {"platform": "ssc338q", "release": "fpv"}
 | |
|           - {"platform": "ssc338q", "release": "lite"}
 | |
|           - {"platform": "ssc338q", "release": "ultimate"}
 | |
| 
 | |
|           - platform: hi3518ev200
 | |
|             release: mini
 | |
|           - platform: hi3516cv300
 | |
|             release: mini
 | |
|           - platform: hi3516ev200
 | |
|             release: fpv
 | |
|           - platform: hi3516ev300
 | |
|             release: fpv
 | |
|           - platform: gk7205v200
 | |
|             release: fpv
 | |
|           - platform: gk7205v210
 | |
|             release: fpv
 | |
|           - platform: gk7205v300
 | |
|             release: fpv
 | |
|           - platform: hi3516ev200
 | |
|             release: lte
 | |
|           - platform: hi3516ev300
 | |
|             release: lte
 | |
|           - platform: hi3536dv100
 | |
|             release: fpv
 | |
|           - platform: gk7205v200
 | |
|             release: lte
 | |
|           - platform: gk7205v300
 | |
|             release: lte
 | |
|           - platform: gk7205v200
 | |
|             release: venc
 | |
|           - platform: gk7205v210
 | |
|             release: venc
 | |
|           - platform: gk7205v300
 | |
|             release: venc
 | |
| 
 | |
|           # MVP
 | |
|           - platform: fh8852v100
 | |
|             release: lite
 | |
|           - platform: fh8852v200
 | |
|             release: lite
 | |
|           - platform: gm8136
 | |
|             release: lite
 | |
|           - platform: nt98562
 | |
|             release: lite
 | |
|           - platform: nt98566
 | |
|             release: lite
 | |
|           - platform: rv1109
 | |
|             release: lite
 | |
|           - platform: rv1126
 | |
|             release: lite
 | |
|           - platform: t10
 | |
|             release: lite
 | |
|           - platform: t21
 | |
|             release: lite
 | |
|           - platform: t30
 | |
|             release: lite
 | |
|           - platform: xm510
 | |
|             release: lite
 | |
|           - platform: xm530
 | |
|             release: lite
 | |
|           - platform: xm550
 | |
|             release: lite
 | |
| 
 | |
|           # TODO
 | |
|           - platform: ak3916ev300
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: ak3918ev300
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: dm36x
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: gk7102
 | |
|             release: lite
 | |
|           - platform: gk7102s
 | |
|             release: lite
 | |
|           - platform: msc313e
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: msc316dc
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: msc316dm
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
|           - platform: s3l
 | |
|             release: lite
 | |
|             custom: onlyci
 | |
| 
 | |
|         exclude:
 | |
|           - platform: hi3516cv100
 | |
|             release: ultimate
 | |
|           - platform: hi3518cv100
 | |
|             release: ultimate
 | |
|           - platform: hi3518ev100
 | |
|             release: ultimate
 | |
|           - platform: hi3516cv200
 | |
|             release: ultimate
 | |
|           - platform: hi3519v101
 | |
|             release: ultimate
 | |
|           - platform: hi3516ev100
 | |
|             release: ultimate
 | |
|           - platform: hi3516cv500
 | |
|             release: ultimate
 | |
|           - platform: hi3516dv300
 | |
|             release: ultimate
 | |
|           - platform: hi3516av300
 | |
|             release: ultimate
 | |
|           - platform: hi3516dv200
 | |
|             release: ultimate
 | |
|           - platform: hi3536cv100
 | |
|             release: ultimate
 | |
|           - platform: hi3536dv100
 | |
|             release: ultimate
 | |
|           - platform: gk7605v100
 | |
|             release: ultimate
 | |
|           - platform: gk7205v210
 | |
|             release: ultimate
 | |
|           - platform: gk7202v300
 | |
|             release: ultimate
 | |
| 
 | |
|     steps:
 | |
|       - name: Checkout source
 | |
|         uses: actions/checkout@v3
 | |
| 
 | |
|       - name: Setup ccache
 | |
|         if: github.event_name != 'pull_request'
 | |
|         uses: actions/cache@v3
 | |
|         with:
 | |
|           path: /tmp/ccache
 | |
|           key: ${{matrix.platform}}_${{matrix.release}}
 | |
| 
 | |
|       - name: Restore ccache
 | |
|         if: github.event_name == 'pull_request'
 | |
|         uses: actions/cache/restore@v3
 | |
|         with:
 | |
|           path: /tmp/ccache
 | |
|           key: ${{matrix.platform}}_${{matrix.release}}
 | |
| 
 | |
|       - name: Download files
 | |
|         run: |
 | |
|           echo "8.8.8.8 invisible-mirror.net" | sudo tee -a /etc/hosts
 | |
|           echo "8.8.8.8 distfiles.dereferenced.org" | sudo tee -a /etc/hosts
 | |
|           make prepare
 | |
|           git clone https://github.com/openipc/br-cache
 | |
|           ln -s ${GITHUB_WORKSPACE}/br-cache $(ls -d output/buildroot-*)/dl
 | |
|           make BOARD=${{matrix.platform}}_${{matrix.release}} br-source          
 | |
| 
 | |
|       - name: Build firmware
 | |
|         run: |
 | |
|           export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA})
 | |
|           export GIT_BRANCH=${GITHUB_REF_NAME}
 | |
|           echo GIT_HASH=${GIT_HASH} >> ${GITHUB_ENV}
 | |
|           echo GIT_BRANCH=${GIT_BRANCH} >> ${GITHUB_ENV}
 | |
| 
 | |
|           mkdir -p /tmp/ccache
 | |
|           ln -s /tmp/ccache ${HOME}/.ccache
 | |
|           make BOARD=${{matrix.platform}}_${{matrix.release}} all
 | |
| 
 | |
|           TIME=$(date -d @${SECONDS} +%M:%S)
 | |
|           echo TIME=${TIME} >> ${GITHUB_ENV}
 | |
| 
 | |
|           NORFW=${GITHUB_WORKSPACE}/output/images/openipc.${{matrix.platform}}-nor-${{matrix.release}}.tgz
 | |
|           if [ -e ${NORFW} ]; then
 | |
|             echo NORFW=${NORFW} >> ${GITHUB_ENV}
 | |
|           fi
 | |
| 
 | |
|           NANDFW=${GITHUB_WORKSPACE}/output/images/openipc.${{matrix.platform}}-nand-${{matrix.release}}.tgz
 | |
|           if [ -e ${NANDFW} ]; then
 | |
|             echo NANDFW=${NANDFW} >> ${GITHUB_ENV}
 | |
|           fi          
 | |
| 
 | |
|       - name: Upload firmware
 | |
|         if: github.event_name != 'pull_request' && matrix.custom != 'onlyci'
 | |
|         uses: softprops/action-gh-release@v1
 | |
|         with:
 | |
|           tag_name: ${{env.TAG_NAME}}
 | |
|           files: |
 | |
|             ${{env.NORFW}}
 | |
|             ${{env.NANDFW}}            
 | |
| 
 | |
|       - name: Send binary
 | |
|         if: github.event_name != 'pull_request' && matrix.custom != 'onlyci' && env.NORFW
 | |
|         run: |
 | |
|           TG_MSG="Commit: ${GIT_HASH}\nBranch: ${GIT_BRANCH}\nTag: ${TAG_NAME}\nTime: ${TIME}\n\n"
 | |
|           TG_ICON="\xE2\x9C\x85 GitHub Actions"
 | |
|           TG_HEADER=$(echo -e ${TG_MSG}${TG_ICON})
 | |
|           HTTP=$(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 caption="${TG_HEADER}" -F document=@${NORFW})
 | |
|           echo Telegram response: ${HTTP}          
 | |
| 
 | |
|       - name: Send error
 | |
|         if: github.event_name != 'pull_request' && failure()
 | |
|         run: |
 | |
|           TG_WARN="Error: ${{matrix.platform}}_${{matrix.release}}\n"
 | |
|           TG_MSG="Commit: ${GIT_HASH}\nBranch: ${GIT_BRANCH}\nTag: ${TAG_NAME}\n\n"
 | |
|           TG_ICON="\xE2\x9A\xA0 GitHub Actions"
 | |
|           TG_HEADER=$(echo -e ${TG_WARN}${TG_MSG}${TG_ICON})
 | |
|           HTTP=$(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}")
 | |
|           echo Telegram response: ${HTTP}          
 |