Rationale: End users might not know exactly what hardware they have, they just want to find RubyFPV firmware options, so in the release page, in the list of released firmware packages, it makes sense to have all RubyFPV related configs in a single place in the list (so all start with the same RubyFPV prefix).
204 lines
6.5 KiB
YAML
204 lines
6.5 KiB
YAML
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_rostelekom_ipc8232swc-we
|
|
- 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_chinatelecom-ds-ytj5301
|
|
- ssc325_lite_imilab-ec3-cmsxj25a
|
|
- 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_imou-c22e-s2-v2
|
|
- ssc335de_lite_uniview-c1l-2wn-g
|
|
- ssc337_lite_h3c-tc2101
|
|
- 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
|
|
- 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
|
|
|
|
# FPV
|
|
- hi3516ev200_fpv
|
|
- hi3516ev300_fpv
|
|
- hi3536dv100_fpv
|
|
- gk7205v200_fpv
|
|
- gk7205v210_fpv
|
|
- gk7205v300_fpv
|
|
- ssc30kq_fpv
|
|
- ssc338q_fpv
|
|
- ssc378qe_fpv
|
|
|
|
# Ruby
|
|
- rubyfpv_generic_soc_gk7205v200
|
|
- rubyfpv_generic_soc_ssc30kq
|
|
- rubyfpv_generic_soc_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}
|