From 7f80cd7f6cff3b68a117c77597b501765445f6cf Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 11 May 2021 07:30:34 +0200 Subject: [PATCH] Added gh actions --- .github/workflows/actions.yml | 59 ++++++++++++++++ tools/build-gh.sh | 129 ++++++++++++++++++++++++++++++++++ tools/commit-tests.sh | 109 +++++++++++++--------------- 3 files changed, 238 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/actions.yml create mode 100755 tools/build-gh.sh diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml new file mode 100644 index 000000000..55d45ee10 --- /dev/null +++ b/.github/workflows/actions.yml @@ -0,0 +1,59 @@ +name: Commit Tests +on: + push: + branches: [ 2.3 ] + pull_request: + branches: [ 2.3 ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + target: + - X9LITE + - X7 + - T12 + - TX12 + - T8 + - TLITE + - XLITE + - X9DP + - X9DP2019 + - X10 + - T16 + - TX16S + - X12S + container: + image: ghcr.io/edgetx/edgetx-commit-tests:2.3 + volumes: + - ${{ github.workspace }}:/src + steps: + - + name: Check out the repo + uses: actions/checkout@v2 + with: + submodules: recursive + # - + # name: Fetch tags + # run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - + name: Test ${{ matrix.target }} + env: + FLAVOR: ${{ matrix.target }} + run: | + echo "Running commit tests" + ./tools/commit-tests.sh + - + name: Build ${{ matrix.target }} + env: + FLAVOR: ${{ matrix.target }} + run: | + echo "Running firmware build" + ./tools/build-gh.sh + - + name: Package firmware ${{ matrix.target }} + uses: 'actions/upload-artifact@v2' + with: + name: edgetx-firmware + path: ${{ github.workspace }}/*.bin diff --git a/tools/build-gh.sh b/tools/build-gh.sh new file mode 100755 index 000000000..7826a4243 --- /dev/null +++ b/tools/build-gh.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +# Stops on first error, echo on +set -e +set -x + +# Allow variable core usage, default uses all cpu cores, to set 8 cores for example : commit-tests.sh -j8 +num_cpus=$(nproc) +: "${CORES:=$num_cpus}" +# Default build treats warnings as errors, set -Wno-error to override, e.g.: commit-tests.sh -Wno-error +#: "${WERROR:=1}" +# A board name to build for, or ALL +: "${FLAVOR:=ALL}" + +for i in "$@" +do +case $i in + --jobs=*) + CORES="${i#*=}" + shift + ;; + -j*) + CORES="${i#*j}" + shift + ;; + -Wno-error) + WERROR=0 + shift + ;; + -b*) + FLAVOR="${i#*b}" + shift + ;; +esac +done + +if [ "$(uname)" = "Darwin" ]; then + SCRIPT=$(python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "$0") +else + SCRIPT=$(readlink -f "$0") +fi + +if [[ -n ${GCC_ARM} ]] ; then + export PATH=${GCC_ARM}:$PATH +fi + +: ${SRCDIR:=$(dirname "$SCRIPT")/..} + +: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=Debug -DTRACE_SIMPGMSPACE=NO -DVERBOSE_CMAKELISTS=YES -DCMAKE_RULE_MESSAGES=OFF -Wno-dev "} +if (( $WERROR )); then COMMON_OPTIONS+=" -DWARNINGS_AS_ERRORS=YES -DMULTIMODULE=YES "; fi + +: ${EXTRA_OPTIONS:="$EXTRA_OPTIONS"} + +COMMON_OPTIONS+=${EXTRA_OPTIONS} + +: ${FIRMARE_TARGET:="firmware-size"} + +mkdir build || true +cd build + +# wipe clean in case of serial builds in the same dir +rm -rf ./* || true + +BUILD_OPTIONS=${COMMON_OPTIONS} + +GIT_SHA_SHORT=`git rev-parse --short HEAD` +#GIT_TAG=`git describe --tags` + +target_name=`echo "$FLAVOR" | tr '[:upper:]' '[:lower:]'` +fw_name="${target_name}-2.3-${GIT_SHA_SHORT}.bin" + +echo "Building ${fw_name}" + +case $FLAVOR in + + X9LITE) + BUILD_OPTIONS+="-DPCB=X9LITE" + ;; + X9LITES) + BUILD_OPTIONS+="-DPCB=X9LITES" + ;; + X7) + BUILD_OPTIONS+="-DPCB=X7" + ;; + T12) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T12" + ;; + TX12) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TX12" + ;; + T8) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8" + ;; + TLITE) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE" + ;; + XLITE) + BUILD_OPTIONS+="-DPCB=XLITE" + ;; + XLITES) + BUILD_OPTIONS+="-DPCB=XLITES" + ;; + X9DP) + BUILD_OPTIONS+="-DPCB=X9D+" + ;; + X9DP2019) + BUILD_OPTIONS+="-DPCB=X9D+ -DPCBREV=2019" + ;; + X9E) + BUILD_OPTIONS+="-DPCB=X9E" + ;; + X10) + BUILD_OPTIONS+="-DPCB=X10" + ;; + X12S) + BUILD_OPTIONS+="-DPCB=X12S" + ;; + T16) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=T16" + ;; + TX16S) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=TX16S" + ;; +esac + +cmake ${BUILD_OPTIONS} "${SRCDIR}" +make -j"${CORES}" ${FIRMARE_TARGET} + +mv firmware.bin "../${fw_name}" diff --git a/tools/commit-tests.sh b/tools/commit-tests.sh index 8ef5e85fb..24634d79a 100755 --- a/tools/commit-tests.sh +++ b/tools/commit-tests.sh @@ -58,27 +58,27 @@ COMMON_OPTIONS+=${EXTRA_OPTIONS} mkdir build || true cd build -if [[ " SKY9X ARM9X ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " SKY9X ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on Sky9x - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=SKY9X -DHELI=YES DLUA=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " AR9X ARM9X ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " AR9X ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on AR9X - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=AR9X -DHELI=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " 9XRPRO ARM9X ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " 9XRPRO ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on Sky9x - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=9XRPRO -DHELI=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -87,16 +87,16 @@ fi if [[ " X9LITE ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X9LITE - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9LITE -DHELI=YES -DGVARS=YES -DTRANSLATIONS=CZ "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X9LITES X9LITE ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X9LITES ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X9LITES - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9LITES -DHELI=YES -DGVARS=YES -DMULTIMODULE=NO -DTRANSLATIONS=DE "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -105,14 +105,14 @@ fi if [[ " X7 ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X7 - rm -rf ./* - cmake "${COMMON_OPTIONS}" -DPCB=X7 -DHELI=YES -DGVARS=YES -DTRANSLATIONS=ES "${SRCDIR}" + rm -rf ./* || true + cmake "${COMMON_OPTIONS}" -DPCB=X7 -DHELI=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X7ACCESS X7 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X7ACCESS ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X7 ACCESS rm -rf ./* cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=ACCESS -DHELI=YES -DGVARS=YES -DTRANSLATIONS=FR "${SRCDIR}" @@ -121,43 +121,16 @@ if [[ " X7ACCESS X7 ALL " =~ \ ${FLAVOR}\ ]] ; then make -j"${CORES}" tests-radio fi -if [[ " T12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " T12 ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on T12 - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=T12 -DHELI=YES -DGVARS=YES -DTRANSLATIONS=IT "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " TX12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then - # OpenTX on TX12 - rm -rf ./* - cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TX12 -DHELI=YES -DGVARS=YES -DTRANSLATIONS=PT "${SRCDIR}" - make -j"${CORES}" ${FIRMARE_TARGET} - make -j"${CORES}" libsimulator - make -j"${CORES}" tests-radio -fi - -if [[ " T8 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then - # OpenTX on T8 - rm -rf ./* - cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=T8 -DHELI=YES -DGVARS=YES "${SRCDIR}" - make -j"${CORES}" ${FIRMARE_TARGET} - make -j"${CORES}" libsimulator - make -j"${CORES}" tests-radio -fi - -if [[ " TLITE X7 ALL " =~ \ ${FLAVOR}\ ]] ; then - # OpenTX on TLITE - rm -rf ./* - cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TLITE -DHELI=YES -DGVARS=YES "${SRCDIR}" - make -j"${CORES}" ${FIRMARE_TARGET} - make -j"${CORES}" libsimulator - make -j"${CORES}" tests-radio -fi - -if [[ " TX12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " TX12 ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on TX12 rm -rf ./* cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TX12 -DHELI=YES -DGVARS=YES "${SRCDIR}" @@ -166,54 +139,72 @@ if [[ " TX12 X7 ALL " =~ \ ${FLAVOR}\ ]] ; then make -j"${CORES}" tests-radio fi +if [[ " T8 ALL " =~ \ ${FLAVOR}\ ]] ; then + # OpenTX on T8 + rm -rf ./* + cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=T8 -DHELI=YES -DGVARS=YES "${SRCDIR}" + make -j"${CORES}" ${FIRMARE_TARGET} + make -j"${CORES}" libsimulator + make -j"${CORES}" tests-radio +fi + +if [[ " TLITE ALL " =~ \ ${FLAVOR}\ ]] ; then + # OpenTX on TLITE + rm -rf ./* + cmake "${COMMON_OPTIONS}" -DPCB=X7 -DPCBREV=TLITE -DHELI=YES -DGVARS=YES "${SRCDIR}" + make -j"${CORES}" ${FIRMARE_TARGET} + make -j"${CORES}" libsimulator + make -j"${CORES}" tests-radio +fi + if [[ " XLITE ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X-Lite - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=XLITE -DHELI=YES -DGVARS=YES -DTRANSLATIONS=SK "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " XLITES XLITE ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " XLITES ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X-Lites - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=XLITES -DHELI=YES -DGVARS=YES -DTRANSLATIONS=SE "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X9D X9 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X9D ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X9D - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9D -DHELI=YES -DLUA=YES -DGVARS=YES -DTRANSLATIONS=PL "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X9D+ X9 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X9DP ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X9D+ - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9D+ -DHELI=YES -DLUA=YES -DGVARS=YES -DTRANSLATIONS=HU "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X9D+2019 X9 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X9DP2019 ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X9D+ 2019 - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9D+ -DPCBREV=2019 -DHELI=YES -DLUA=YES -DGVARS=YES -DTRANSLATIONS=NL "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator make -j"${CORES}" tests-radio fi -if [[ " X9E X9 ALL " =~ \ ${FLAVOR}\ ]] ; then +if [[ " X9E ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on Taranis X9E - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X9E -DHELI=YES -DLUA=YES -DGVARS=YES -DPPM_UNIT=PERCENT_PREC1 "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -222,7 +213,7 @@ fi if [[ " X10 COLORLCD ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X10 boards - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X10 -DHELI=YES -DLUA=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -231,7 +222,7 @@ fi if [[ " T16 COLORLCD ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on T16 boards - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X10 -DPCBREV=T16 -DHELI=YES -DLUA=YES -DGVARS=YES -DAFHDS3=NO "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -240,7 +231,7 @@ fi if [[ " TX16S COLORLCD ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on TX16S boards - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X10 -DPCBREV=TX16S -DHELI=YES -DLUA=YES -DGVARS=YES "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -249,7 +240,7 @@ fi if [[ " X12S COLORLCD ALL " =~ \ ${FLAVOR}\ ]] ; then # OpenTX on X12S - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" -DPCB=X12S -DHELI=YES -DLUA=YES -DGVARS=YES -DMULTIMODULE=NO "${SRCDIR}" make -j"${CORES}" ${FIRMARE_TARGET} make -j"${CORES}" libsimulator @@ -258,8 +249,8 @@ fi if [[ " COMPANION ALL " =~ \ ${FLAVOR}\ ]] ; then # Companion - rm -rf ./* + rm -rf ./* || true cmake "${COMMON_OPTIONS}" "${SRCDIR}" - make -j"${CORES}" companion23 simulator23 + make -j"${CORES}" companion24 simulator24 make -j"${CORES}" tests-companion fi