fix fbtenv.sh under zsh (#1645)

* fix fbtenv under ZSH, some improovements, add amap workflow timeout
* fix copy .map file in build.yml
This commit is contained in:
Max Andreev 2022-08-23 20:57:59 +03:00 committed by GitHub
parent b0daa601ad
commit 7c54fcf60a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 10 deletions

View File

@ -15,6 +15,7 @@ env:
jobs: jobs:
amap_analyse: amap_analyse:
runs-on: [self-hosted,FlipperZeroMacShell] runs-on: [self-hosted,FlipperZeroMacShell]
timeout-minutes: 15
steps: steps:
- name: 'Wait Build workflow' - name: 'Wait Build workflow'
uses: fountainhead/action-wait-for-check@v1.0.0 uses: fountainhead/action-wait-for-check@v1.0.0

View File

@ -110,7 +110,7 @@ jobs:
- name: 'Copy .map file' - name: 'Copy .map file'
run: | run: |
cp build/f7-firmware-D/firmware.elf.map artifacts/flipper-z-f7-firmware-${{steps.names.outputs.suffix}}.elf.map cp build/f7-firmware-*/firmware.elf.map artifacts/flipper-z-f7-firmware-${{steps.names.outputs.suffix}}.elf.map
- name: 'Upload artifacts to update server' - name: 'Upload artifacts to update server'
if: ${{ !github.event.pull_request.head.repo.fork }} if: ${{ !github.event.pull_request.head.repo.fork }}

View File

@ -8,20 +8,61 @@ SCRIPT_PATH="${SCRIPT_PATH:-$DEFAULT_SCRIPT_PATH}";
FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"8"}"; FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"8"}";
FBT_TOOLCHAIN_PATH="${FBT_TOOLCHAIN_PATH:-$SCRIPT_PATH}"; FBT_TOOLCHAIN_PATH="${FBT_TOOLCHAIN_PATH:-$SCRIPT_PATH}";
fbtenv_show_usage()
{
echo "Running this script manually is wrong, please source it";
echo "Example:";
printf "\tsource scripts/toolchain/fbtenv.sh\n";
}
fbtenv_curl()
{
curl --progress-bar -SLo "$1" "$2";
}
fbtenv_wget()
{
wget --show-progress --progress=bar:force -qO "$1" "$2";
}
fbtenv_check_sourced() fbtenv_check_sourced()
{ {
case "${ZSH_EVAL_CONTEXT:-""}" in *:file:*) case "${ZSH_EVAL_CONTEXT:-""}" in *:file:*)
return 0;; return 0;;
esac esac
if [ ${0##*/} = "fbtenv.sh" ]; then # exluding script itself
fbtenv_show_usage;
return 1;
fi
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh|*.sh|fbt) case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh|*.sh|fbt)
return 0;; return 0;;
esac esac
echo "Running this script manually is wrong, please source it"; fbtenv_show_usage;
echo "Example:";
printf "\tsource scripts/toolchain/fbtenv.sh\n";
return 1; return 1;
} }
fbtenv_chck_many_source()
{
if ! echo "${PS1:-""}" | grep -q "[fbt]"; then
if ! echo "${PROMPT:-""}" | grep -q "[fbt]"; then
return 0;
fi
fi
echo "Warning! It script seen to be sourced more then once!";
echo "It may signalise what you are making some mistakes, please open a new shell!";
return 1;
}
fbtenv_set_shell_prompt()
{
if [ -n "${PS1:-""}" ]; then
PS1="[fbt]$PS1";
elif [ -n "${PROMPT:-""}" ]; then
PROMPT="[fbt]$PROMPT";
fi
return 0; # all other shells
}
fbtenv_check_script_path() fbtenv_check_script_path()
{ {
if [ ! -x "$SCRIPT_PATH/fbt" ]; then if [ ! -x "$SCRIPT_PATH/fbt" ]; then
@ -97,7 +138,7 @@ fbtenv_download_toolchain_tar()
{ {
echo "Downloading toolchain:"; echo "Downloading toolchain:";
mkdir -p "$FBT_TOOLCHAIN_PATH/toolchain" || return 1; mkdir -p "$FBT_TOOLCHAIN_PATH/toolchain" || return 1;
"$DOWNLOADER" $DOWNLOADER_ARGS "$FBT_TOOLCHAIN_PATH/toolchain/$TOOLCHAIN_TAR" "$TOOLCHAIN_URL" || return 1; "$FBT_DOWNLOADER" "$FBT_TOOLCHAIN_PATH/toolchain/$TOOLCHAIN_TAR" "$TOOLCHAIN_URL" || return 1;
echo "done"; echo "done";
return 0; return 0;
} }
@ -156,13 +197,11 @@ fbtenv_curl_wget_check()
return 1; return 1;
fi fi
echo "yes" echo "yes"
DOWNLOADER="wget"; FBT_DOWNLOADER="fbtenv_wget";
DOWNLOADER_ARGS="--show-progress --progress=bar:force -qO";
return 0; return 0;
fi fi
echo "yes" echo "yes"
DOWNLOADER="curl"; FBT_DOWNLOADER="fbtenv_curl";
DOWNLOADER_ARGS="--progress-bar -SLo";
return 0; return 0;
} }
@ -196,10 +235,11 @@ fbtenv_download_toolchain()
fbtenv_main() fbtenv_main()
{ {
fbtenv_check_sourced || return 1; fbtenv_check_sourced || return 1;
fbtenv_chck_many_source; # many source it's just a warning
fbtenv_set_shell_prompt;
fbtenv_check_script_path || return 1; fbtenv_check_script_path || return 1;
fbtenv_get_kernel_type || return 1; fbtenv_get_kernel_type || return 1;
fbtenv_check_download_toolchain || return 1; fbtenv_check_download_toolchain || return 1;
PS1="[FBT]${PS1-}";
PATH="$TOOLCHAIN_ARCH_DIR/python/bin:$PATH"; PATH="$TOOLCHAIN_ARCH_DIR/python/bin:$PATH";
PATH="$TOOLCHAIN_ARCH_DIR/bin:$PATH"; PATH="$TOOLCHAIN_ARCH_DIR/bin:$PATH";
PATH="$TOOLCHAIN_ARCH_DIR/protobuf/bin:$PATH"; PATH="$TOOLCHAIN_ARCH_DIR/protobuf/bin:$PATH";