summaryrefslogtreecommitdiff
path: root/tools/build_adafruit_bins.sh
blob: 13d65e317bcda82fb59d16afc3b39bba73a89bba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
rm -rf ports/atmel-samd/build*
rm -rf ports/esp8266/build*
rm -rf ports/nrf/build*

ATMEL_BOARDS="arduino_zero circuitplayground_express circuitplayground_express_crickit feather_radiofruit_zigbee feather_m0_basic feather_m0_adalogger itsybitsy_m0_express itsybitsy_m4_express feather_m0_rfm69 feather_m0_rfm9x feather_m0_express feather_m0_express_crickit feather_m4_express metro_m0_express metro_m4_express pirkey_m0 trinket_m0 gemma_m0 feather52832 feather_huzzah pca10056 hallowing_m0_express"
ROSIE_SETUPS="rosie-ci"

PARALLEL="-j 5"
if [ "$TRAVIS" == "true" ]; then
    PARALLEL="-j 2"
fi

if [ -z "$TRAVIS_BOARD" ]; then
    boards=$ATMEL_BOARDS
else
    boards=$TRAVIS_BOARD
fi

version=`git describe --tags --exact-match`
if [ $? -ne 0 ]; then
    version=`date +%Y%m%d`-`git rev-parse --short HEAD`
fi


if [ "$TRAVIS" == "true" ]; then
    sha=$TRAVIS_COMMIT
    if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
       version=`date +%Y%m%d`-`echo $TRAVIS_PULL_REQUEST_SHA | cut -c1-7`
       sha=$TRAVIS_PULL_REQUEST_SHA
    fi
fi

for board in $boards; do
    mkdir -p bin/$board/
    extension=uf2
    for language_file in $(ls locale/*.po); do
        language=$(basename -s .po $language_file)
        echo "Building $board for $language"
        if [ $board == "feather_huzzah" ]; then
            make $PARALLEL -C ports/esp8266 TRANSLATION=$language BOARD=feather_huzzah
            (( exit_status = exit_status || $? ))
            temp_filename=ports/esp8266/build/firmware-combined.bin
            extension=bin
        elif [ $board == "feather52832" ]; then
            make $PARALLEL -C ports/nrf TRANSLATION=$language BOARD=feather52832
            (( exit_status = exit_status || $? ))
            temp_filename=ports/nrf/build-$board-s132/firmware.bin
            extension=bin
        elif [ $board == "pca10056" ]; then
            make $PARALLEL -C ports/nrf TRANSLATION=$language BOARD=pca10056 SD=s140
            (( exit_status = exit_status || $? ))
            temp_filename=ports/nrf/build-$board-s140/firmware.bin
            extension=bin
        else
            time make $PARALLEL -C ports/atmel-samd TRANSLATION=$language BOARD=$board
            (( exit_status = exit_status || $? ))
            cp ports/atmel-samd/build-$board/firmware.bin bin/$board/adafruit-circuitpython-$board-$language-$version.bin
            (( exit_status = exit_status || $? ))
            temp_filename=ports/atmel-samd/build-$board/firmware.uf2
            extension=uf2
        fi
        final_filename=bin/$board/adafruit-circuitpython-$board-$language-$version.$extension
        cp $temp_filename $final_filename
        (( exit_status = exit_status || $? ))
        # Only upload to Rosie if its a pull request.
        if [ "$TRAVIS" == "true" ]; then
            for rosie in $ROSIE_SETUPS; do
                echo "Uploading to https://$rosie.ngrok.io/upload/$sha"
                curl -F "file=@$final_filename" https://$rosie.ngrok.io/upload/$sha
            done
        fi
        echo
    done
done

exit $exit_status