Build #1034
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| schedule: | |
| - cron: '0 3 * * *' | |
| workflow_dispatch: | |
| inputs: | |
| platform: | |
| description: Platform | |
| required: false | |
| env: | |
| TAG_NAME: latest | |
| jobs: | |
| buildroot: | |
| name: Firmware | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| - gk7202v300_lite_cootli_camv0103 | |
| - gk7202v300_lite_xg521 | |
| - gk7205v200_lite_tiandy-tc-c321n | |
| - gk7205v200_lite_vixand-ipc-1 | |
| - gk7205v200_lite_vixand-iph-5-4g | |
| - gk7205v210_lite_tiandy-tc-c32qn | |
| - gk7205v210_lite_vixand-ivg-g3s | |
| - gk7205v210_lite_vixand-ivg-g4f-a | |
| - gk7205v210_lite_vixand-ivg-g4f-a-w | |
| - gk7205v210_lite_vixand-ivg-g4h | |
| - gk7205v300_lite_vixand-ivg-g6s-w | |
| - hi3516cv200_lite_trassir-tr-d4121ir1-v2 | |
| - hi3516ev300_ultimate_rostelecom-ipc8232swc-we | |
| - hi3516ev300_ultimate_rvi-1ncmw2028 | |
| - hi3518ev200_lite_smartwares-cip-37210 | |
| - hi3518ev200_lite_switcam-hs303 | |
| - hi3518ev200_lite_switcam-hs303-v2 | |
| - hi3518ev200_lite_vstarcam-c8892wip | |
| - hi3518ev200_lite_qtech-qvc-ipc-136w | |
| - hi3518ev300_lite_bathhouse | |
| - hi3518ev300_lite_xiaomi-mjsxj02hl | |
| - hi3518ev200_ultimate_lenovo-snowman-1080p | |
| - ssc30kd_lite_cmcc-ds-ytj5301 | |
| - ssc325_lite_imilab-ec3-cmsxj25a | |
| - ssc325_lite_imou-c22cp | |
| - ssc325_lite_tp-link-tapo-c310-v1 | |
| - ssc325_lite_trassir-tr-w2c1-v1 | |
| - ssc325de_lite_imou-c22ep-s2 | |
| - ssc333_lite_meari-speed-6s | |
| - ssc333_lite_tp-link-tapo-c110-v2 | |
| - ssc333_lite_tp-link-tapo-c110-v26 | |
| - ssc333_lite_babysense-see-hd-ip206 | |
| - ssc333_lite_vstarcam-c43s_b | |
| - ssc335_lite_tp-link-tapo-c110-v1 | |
| - ssc335_lite_trassir-tr-w2c1-v2 | |
| - ssc335de_lite_dahua-hfw1230sp-v2 | |
| - ssc335de_lite_imou-c22e-s2-v2 | |
| - ssc335de_lite_uniview-c1l-2wn-g | |
| - ssc337_lite_h3c-tc2101 | |
| - ssc337_lite_tiandy-tc-c321n-v2 | |
| - ssc337_lite_tp-link-tapo-c110-v1 | |
| - ssc337de_ultimate_foscam-x5 | |
| - ssc338q_fpv_caddx-fly | |
| - ssc338q_fpv_emax-wyvern-link | |
| - ssc338q_fpv_openipc-mario-aio | |
| - ssc338q_fpv_openipc-thinker-aio | |
| - ssc338q_fpv_openipc-urllc-aio | |
| - ssc338q_fpv_runcam-wifilink | |
| - t10_lite_hb-wifi-z6 | |
| - t10_lite_jvs-ingt10-gqs60ep | |
| - t20_ultimate_azarton-c1 | |
| - t20_lite_ec37-t11 | |
| - t31_lite_vstarcam-cs55 | |
| - t21_lite_chinamobile-hdc-51-a5-v12 | |
| - t21_lite_smartwares-cip-37210at | |
| - t21_lite_xyx-06s | |
| - t21_lite_wansview-q5-1080p | |
| - t23_lite_jooan-a6m-u | |
| - t23_lite_jooan-q3r-u | |
| - t23_lite_lsc-3215672 | |
| - t31_lite_aceline-aip-o4 | |
| - t31_lite_wansview-q5-2k | |
| - t31_lite_aoni-ep01j05 | |
| - t31_lite_chinamobile-hdc-51-a6-v11 | |
| - t31_lite_cmcc-hdc-51-a6-v10 | |
| - t31_lite_chinatelecom-y4h-50 | |
| - t31_lite_wyze-v3b | |
| - t31_lite_xiaomi-mjsxj03hl | |
| - t31_lite_xiaomi-mjsxj03hl-jxq03 | |
| - t31_lite_tuya-gv7630-t31-ptz | |
| - t31_ultimate_azarton-c1-t31x | |
| - t31_ultimate_gcraftsman-gca50 | |
| - t31_lite_zte-k540 | |
| - t40_lite_movols-mo-805p | |
| # APFPV | |
| - ssc338q_apfpv | |
| - ssc378qe_apfpv | |
| # FPV | |
| - hi3516ev200_fpv | |
| - hi3516ev300_fpv | |
| - hi3536dv100_fpv | |
| - gk7205v200_fpv | |
| - gk7205v210_fpv | |
| - gk7205v300_fpv | |
| - ssc30kq_fpv | |
| - ssc338q_fpv | |
| - ssc378qe_fpv | |
| # Ruby | |
| - ssc30kq_rubyfpv_generic | |
| - ssc338q_rubyfpv_generic | |
| - ssc338q_rubyfpv_thinker_internal_wifi | |
| # LTE | |
| - hi3516ev200_lte | |
| - hi3516ev300_lte | |
| - gk7205v200_lte | |
| - gk7205v300_lte | |
| # Venc | |
| - gk7205v200_venc | |
| - gk7205v210_venc | |
| - gk7205v300_venc | |
| # Mini | |
| - hi3516cv300_mini | |
| - hi3518ev200_mini | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| - name: Prepare firmware | |
| run: | | |
| echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf | |
| echo CACHE_DATE=$(date +%m) >> ${GITHUB_ENV} | |
| INPUT=${{inputs.platform}} | |
| MATRIX=$(echo ${{matrix.platform}} | cut -d_ -f1) | |
| if [ -z ${INPUT} ] || [ ${INPUT} = ${MATRIX} ]; then | |
| echo RUN=${MATRIX} >> ${GITHUB_ENV} | |
| fi | |
| - name: Setup ccache | |
| if: env.RUN | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/ccache | |
| key: ${{matrix.platform}}-${{env.CACHE_DATE}} | |
| - name: Build firmware | |
| if: env.RUN | |
| 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 | |
| NAME=${{matrix.platform}} | |
| bash builder.sh ${NAME} | |
| cd openipc | |
| TIME=$(date -d @${SECONDS} +%M:%S) | |
| echo TIME=${TIME} >> ${GITHUB_ENV} | |
| COMMON=$(echo ${NAME} | awk -F_ '{print NF-1}') | |
| NORFW=$(find output/images -name openipc*nor*) | |
| if [ ! -z ${NORFW} ]; then | |
| if [ ${COMMON} -eq 1 ]; then | |
| echo NORFW=openipc/${NORFW} >> ${GITHUB_ENV} | |
| else | |
| mv ${NORFW} ../${NAME}-nor.tgz | |
| echo NORFW=${NAME}-nor.tgz >> ${GITHUB_ENV} | |
| fi | |
| fi | |
| NANDFW=$(find output/images -name openipc*nand*) | |
| if [ ! -z ${NANDFW} ]; then | |
| if [ ${COMMON} -eq 1 ]; then | |
| echo NANDFW=openipc/${NANDFW} >> ${GITHUB_ENV} | |
| else | |
| mv ${NANDFW} ../${NAME}-nand.tgz | |
| echo NANDFW=${NAME}-nand.tgz >> ${GITHUB_ENV} | |
| fi | |
| fi | |
| if [ -z ${NORFW} ] && [ -z ${NANDFW} ]; then | |
| exit 1 | |
| fi | |
| - name: Upload firmware | |
| if: env.NORFW || env.NANDFW | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: latest | |
| files: | | |
| ${{env.NORFW}} | |
| ${{env.NANDFW}} | |
| - name: Send binary | |
| if: 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}) | |
| TG_TOKEN=${{secrets.TELEGRAM_TOKEN_BOT_OPENIPC}} | |
| TG_CHANNEL=${{secrets.TELEGRAM_CHANNEL_OPENIPC_DEV}} | |
| HTTP=$(curl -s -o /dev/null -w %{http_code} https://api.telegram.org/bot${TG_TOKEN}/sendDocument -F chat_id=${TG_CHANNEL} -F caption="${TG_HEADER}" -F document=@${NORFW}) | |
| echo Telegram response: ${HTTP} |