You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/legacy/script/cibuild

52 lines
1.4 KiB

#!/usr/bin/env bash
# script/cibuild: Setup environment for CI to run tests. This is primarily
# designed to run on the continuous integration server.
set -e
cd "$(dirname "$0")/.."
if [ "$EMULATOR" = 1 ]; then
make -C emulator
else
make -C vendor/libopencm3 lib/stm32/f2
fi
make
if [ "$EMULATOR" != 1 ]; then
make -C bootloader
fi
# invoking nanopb_generator to make sure its proto files are generated
nanopb_generator >/dev/null || true
make -C firmware/protob
make -C firmware
if [ "$EMULATOR" != 1 ]; then
make -C firmware sign
make -C intermediate_fw
make -C intermediate_fw sign
# Giving the firmware bin a descriptive name
if [ "$BITCOIN_ONLY" = 1 ]; then
BTCONLY="-bitcoinonly"
else
BTCONLY=""
fi
VERSION_MAJOR=$(grep -P '\bVERSION_MAJOR\b' firmware/version.h | cut -d' ' -f3)
VERSION_MINOR=$(grep -P '\bVERSION_MINOR\b' firmware/version.h | cut -d' ' -f3)
VERSION_PATCH=$(grep -P '\bVERSION_PATCH\b' firmware/version.h | cut -d' ' -f3)
VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
GITHASH=$(git rev-parse --short HEAD)
if git status --porcelain | grep -q '.'; then
echo "There are changes in the repository."
DIRTY="-dirty"
else
DIRTY=""
fi
cp firmware/trezor.bin firmware/firmware-T1B1${BTCONLY}-${VERSION}-${GITHASH}${DIRTY}.bin
fi