travis fixes for v2

This commit is contained in:
proddy
2020-06-15 22:26:43 +02:00
parent 616ced0f07
commit a4a4cfbb23
2 changed files with 171 additions and 171 deletions

View File

@@ -53,7 +53,7 @@ deploy:
token: ${GITHUB_TOKEN} token: ${GITHUB_TOKEN}
file_glob: true file_glob: true
file: "*.bin" file: "*.bin"
name: latest v2 development build name: latest v2 development builds
release_notes: release_notes:
Version $FIRMWARE_VERSION. Version $FIRMWARE_VERSION.
Automatic firmware builds of the current EMS-ESP branch built on $(date +'%F %T %Z') from commit $TRAVIS_COMMIT. Automatic firmware builds of the current EMS-ESP branch built on $(date +'%F %T %Z') from commit $TRAVIS_COMMIT.
@@ -64,7 +64,7 @@ deploy:
target_commitish: $TRAVIS_COMMIT target_commitish: $TRAVIS_COMMIT
on: on:
tags: false tags: false
branch: dev branch: v2
notifications: notifications:
email: email:

View File

@@ -1,169 +1,169 @@
#!/bin/bash #!/bin/bash
set -e set -e
### Functions ### Functions
is_git() { is_git() {
command -v git >/dev/null 2>&1 || return 1 command -v git >/dev/null 2>&1 || return 1
command git rev-parse >/dev/null 2>&1 || return 1 command git rev-parse >/dev/null 2>&1 || return 1
return 0 return 0
} }
stat_bytes() { stat_bytes() {
filesize=`du -k "$1" | cut -f1;` filesize=`du -k "$1" | cut -f1;`
echo 'size:' $filesize 'bytes' echo 'size:' $filesize 'bytes'
} }
# Available environments # Available environments
list_envs() { list_envs() {
grep env: platformio.ini | sed 's/\[env:\(.*\)\]/\1/g' grep env: platformio.ini | sed 's/\[env:\(.*\)\]/\1/g'
} }
print_available() { print_available() {
echo "--------------------------------------------------------------" echo "--------------------------------------------------------------"
echo "Available environments:" echo "Available environments:"
for environment in $available; do for environment in $available; do
echo "-> $environment" echo "-> $environment"
done done
} }
print_environments() { print_environments() {
echo "--------------------------------------------------------------" echo "--------------------------------------------------------------"
echo "Current environments:" echo "Current environments:"
for environment in $environments; do for environment in $environments; do
echo "-> $environment" echo "-> $environment"
done done
} }
set_default_environments() { set_default_environments() {
# Hook to build in parallel when using travis # Hook to build in parallel when using travis
if [[ "${TRAVIS_BUILD_STAGE_NAME}" = "Release" ]] && ${par_build}; then if [[ "${TRAVIS_BUILD_STAGE_NAME}" = "Release" ]] && ${par_build}; then
environments=$(echo ${available} | \ environments=$(echo ${available} | \
awk -v par_thread=${par_thread} -v par_total_threads=${par_total_threads} \ awk -v par_thread=${par_thread} -v par_total_threads=${par_total_threads} \
'{ for (i = 1; i <= NF; i++) if (++j % par_total_threads == par_thread ) print $i; }') '{ for (i = 1; i <= NF; i++) if (++j % par_total_threads == par_thread ) print $i; }')
return return
fi fi
# Only build travis target # Only build travis target
if [[ "${TRAVIS_BUILD_STAGE_NAME}" = "Test" ]]; then if [[ "${TRAVIS_BUILD_STAGE_NAME}" = "Test" ]]; then
environments=$travis environments=$travis
return return
fi fi
# Fallback to all available environments # Fallback to all available environments
environments=$available environments=$available
} }
build_environments() { build_environments() {
echo "--------------------------------------------------------------" echo "--------------------------------------------------------------"
echo "Building firmware images..." echo "Building firmware images..."
# don't move to firmware folder until Travis fixed (see https://github.com/travis-ci/dpl/issues/846#issuecomment-547157406) # don't move to firmware folder until Travis fixed (see https://github.com/travis-ci/dpl/issues/846#issuecomment-547157406)
# mkdir -p $destination # mkdir -p $destination
for environment in $environments; do for environment in $environments; do
echo "* EMS-ESP-$version-$environment.bin" echo "* EMS-ESP-$version-$environment.bin"
platformio run --silent --environment $environment || exit 1 platformio run --silent --environment $environment || exit 1
stat_bytes .pio/build/$environment/firmware.bin stat_bytes .pio/build/$environment/firmware.bin
# mv .pio/build/$environment/firmware.bin $destination/EMS-ESP-$version-$environment.bin # mv .pio/build/$environment/firmware.bin $destination/EMS-ESP-$version-$environment.bin
# mv .pio/build/$environment/firmware.bin EMS-ESP-$version-$environment.bin # mv .pio/build/$environment/firmware.bin EMS-ESP-$version-$environment.bin
mv .pio/build/$environment/firmware.bin EMS-ESP-dev-$environment.bin mv .pio/build/$environment/firmware.bin EMS-ESP-dev-$environment.bin
done done
echo "--------------------------------------------------------------" echo "--------------------------------------------------------------"
} }
####### MAIN ####### MAIN
destination=firmware destination=firmware
version_file=./src/version.h version_file=./src/version.h
version=$(grep -E '^#define EMSESP_APP_VERSION' $version_file | awk '{print $3}' | sed 's/"//g') version=$(grep -E '^#define EMSESP_APP_VERSION' $version_file | awk '{print $3}' | sed 's/"//g')
if ${TRAVIS:-false}; then if ${TRAVIS:-false}; then
git_revision=${TRAVIS_COMMIT::7} git_revision=${TRAVIS_COMMIT::7}
git_tag=${TRAVIS_TAG} git_tag=${TRAVIS_TAG}
elif is_git; then elif is_git; then
git_revision=$(git rev-parse --short HEAD) git_revision=$(git rev-parse --short HEAD)
git_tag=$(git tag --contains HEAD) git_tag=$(git tag --contains HEAD)
else else
git_revision=unknown git_revision=unknown
git_tag= git_tag=
fi fi
echo $git_tag echo $git_tag
if [[ -n $git_tag ]]; then if [[ -n $git_tag ]]; then
new_version=${version/-*} new_version=${version/-*}
sed -i -e "s@$version@$new_version@" $version_file sed -i -e "s@$version@$new_version@" $version_file
version=$new_version version=$new_version
trap "git checkout -- $version_file" EXIT trap "git checkout -- $version_file" EXIT
fi fi
par_build=false par_build=false
par_thread=${BUILDER_THREAD:-0} par_thread=${BUILDER_THREAD:-0}
par_total_threads=${BUILDER_TOTAL_THREADS:-4} par_total_threads=${BUILDER_TOTAL_THREADS:-4}
if [ ${par_thread} -ne ${par_thread} -o \ if [ ${par_thread} -ne ${par_thread} -o \
${par_total_threads} -ne ${par_total_threads} ]; then ${par_total_threads} -ne ${par_total_threads} ]; then
echo "Parallel threads should be a number." echo "Parallel threads should be a number."
exit exit
fi fi
if [ ${par_thread} -ge ${par_total_threads} ]; then if [ ${par_thread} -ge ${par_total_threads} ]; then
echo "Current thread is greater than total threads. Doesn't make sense" echo "Current thread is greater than total threads. Doesn't make sense"
exit exit
fi fi
# travis platformio target is used for nightly Test # travis platformio target is used for nightly Test
travis=$(list_envs | grep travis | sort) travis=$(list_envs | grep travis | sort)
# get all taregts, excluding travis and debug # get all taregts, excluding travis and debug
available=$(list_envs | grep -Ev -- 'travis|debug|release' | sort) available=$(list_envs | grep -Ev -- 'travis|debug|release' | sort)
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS}" export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS}"
# get command line Parameters # get command line Parameters
# l prints environments # l prints environments
# 2 does parallel builds # 2 does parallel builds
# d uses next arg as destination folder # d uses next arg as destination folder
while getopts "lpd:" opt; do while getopts "lpd:" opt; do
case $opt in case $opt in
l) l)
print_available print_available
exit exit
;; ;;
p) p)
par_build=true par_build=true
;; ;;
d) d)
destination=$OPTARG destination=$OPTARG
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
# Welcome message # Welcome message
echo "--------------------------------------------------------------" echo "--------------------------------------------------------------"
echo "EMS-ESP FIRMWARE BUILDER" echo "EMS-ESP FIRMWARE BUILDER"
echo "Building for version ${version}" ${git_revision:+($git_revision)} echo "Building for version ${version}" ${git_revision:+($git_revision)}
# Environments to build # Environments to build
environments=$@ environments=$@
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
set_default_environments set_default_environments
fi fi
if ${CI:-false}; then if ${CI:-false}; then
print_environments print_environments
fi fi
# for debugging # for debugging
echo "* git_revision = $git_revision" echo "* git_revision = $git_revision"
echo "* git_tag = $git_tag" echo "* git_tag = $git_tag"
echo "* TRAVIS_COMMIT = $TRAVIS_COMMIT" echo "* TRAVIS_COMMIT = $TRAVIS_COMMIT"
echo "* TRAVIS_TAG = $TRAVIS_TAG" echo "* TRAVIS_TAG = $TRAVIS_TAG"
echo "* TRAVIS_BRANCH = $TRAVIS_BRANCH" echo "* TRAVIS_BRANCH = $TRAVIS_BRANCH"
echo "* TRAVIS_BUILD_STAGE_NAME = $TRAVIS_BUILD_STAGE_NAME" echo "* TRAVIS_BUILD_STAGE_NAME = $TRAVIS_BUILD_STAGE_NAME"
build_environments build_environments