blob: 5bc05f7e58306d4dd4aed44e3895d7bdef56641f [file] [log] [blame]
Harald Weltee7bccba2020-12-17 13:39:55 +01001#!/usr/bin/env bash
2# jenkins build helper script for osmo-e1-hardware. This is how we build on jenkins.osmocom.org
3#
4# environment variables:
5# * WITH_MANUALS: build manual PDFs if set to "1"
6# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1")
7
8set -e
9
10TOPDIR=`pwd`
11publish="$1"
12
13# we assume that PATH includes the path to the respective toolchain
14
15# firmware build
16FW_DIRS="firmware/ice40-riscv/e1-tracer firmware/ice40-riscv/icE1usb"
17for d in $FW_DIRS; do
18 echo
19 echo "=============== $d FIRMWARE =============="
20 make -C $d clean all
21done
22
23# The argument '--publish' is used to trigger publication/upload of firmware
24if [ "x$publish" = "x--publish" ]; then
25
26 echo
27 echo "=============== UPLOAD FIRMWARE =============="
28
29 cat > "/build/known_hosts" <<EOF
30[rita.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9
31[rita.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54=
32[rita.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX
33EOF
34 SSH_COMMAND="ssh -o 'UserKnownHostsFile=/build/known_hosts' -p 48"
35 rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/*-*-*-*.{bin,elf} binaries@rita.osmocom.org:web-files/icE1usb/firmware/all/
36 rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries@rita.osmocom.org:web-files/e1-tracer/firmware/latest/
37 rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/*-*-*-*.{bin,elf} binaries@rita.osmocom.org:web-files/e1-tracer/firmware/all/
38 rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/e1_tracer-fw.{bin,elf} binaries@rita.osmocom.org:web-files/e1-tracer/firmware/latest/
39fi
40
41# manuals build + optional publication
42if [ "$WITH_MANUALS" = "1" ]; then
43 make -C doc/manuals clean all
44 if [ "$PUBLISH" = "1" ]; then
45 make -C doc/manuals publish
46 fi
47fi
48
49# gateware build
50if [ "$WITH_GATEWARE" = "1" ]; then
51 GATE_VARS="IGNORE_TIMING=1 SINGLE_CHANNEL=1"
52 GATE_DIRS="gateware/e1-tracer gateware/icE1usb"
53 for d in $GATE_DIRS; do
54 echo
55 echo "=============== $d GATEWARE =============="
56 make -C $d clean
57 make -C $d ${GATE_VARS}
58 done
59fi