blob: 1a0750f1708d824daecb17746a5db8f3e0e1c19f [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
Harald Weltea624ef82020-12-17 17:17:12 +01008if ! [ -x "$(command -v osmo-build-dep.sh)" ]; then
9 echo "Error: We need to have scripts/osmo-deps.sh from http://git.osmocom.org/osmo-ci/ in PATH !"
10 exit 2
11fi
12
Harald Weltee7bccba2020-12-17 13:39:55 +010013set -e
14
15TOPDIR=`pwd`
16publish="$1"
17
Harald Weltea624ef82020-12-17 17:17:12 +010018base="$PWD"
19deps="$base/deps"
20inst="$deps/install"
21export deps inst
22
23osmo-clean-workspace.sh
24
25mkdir "$deps" || true
26
Harald Weltee7bccba2020-12-17 13:39:55 +010027# we assume that PATH includes the path to the respective toolchain
28
29# firmware build
30FW_DIRS="firmware/ice40-riscv/e1-tracer firmware/ice40-riscv/icE1usb"
31for d in $FW_DIRS; do
32 echo
33 echo "=============== $d FIRMWARE =============="
34 make -C $d clean all
35done
36
37# The argument '--publish' is used to trigger publication/upload of firmware
38if [ "x$publish" = "x--publish" ]; then
39
40 echo
41 echo "=============== UPLOAD FIRMWARE =============="
42
43 cat > "/build/known_hosts" <<EOF
44[rita.osmocom.org]:48 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDgQ9HntlpWNmh953a2Gc8NysKE4orOatVT1wQkyzhARnfYUerRuwyNr1GqMyBKdSI9amYVBXJIOUFcpV81niA7zQRUs66bpIMkE9/rHxBd81SkorEPOIS84W4vm3SZtuNqa+fADcqe88Hcb0ZdTzjKILuwi19gzrQyME2knHY71EOETe9Yow5RD2hTIpB5ecNxI0LUKDq+Ii8HfBvndPBIr0BWYDugckQ3Bocf+yn/tn2/GZieFEyFpBGF/MnLbAAfUKIdeyFRX7ufaiWWz5yKAfEhtziqdAGZaXNaLG6gkpy3EixOAy6ZXuTAk3b3Y0FUmDjhOHllbPmTOcKMry9
45[rita.osmocom.org]:48 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPdWn1kEousXuKsZ+qJEZTt/NSeASxCrUfNDW3LWtH+d8Ust7ZuKp/vuyG+5pe5pwpPOgFu7TjN+0lVjYJVXH54=
46[rita.osmocom.org]:48 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8iivY70EiR5NiGChV39gRLjNpC8lvu1ZdHtdMw2zuX
47EOF
48 SSH_COMMAND="ssh -o 'UserKnownHostsFile=/build/known_hosts' -p 48"
49 rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/*-*-*-*.{bin,elf} binaries@rita.osmocom.org:web-files/icE1usb/firmware/all/
Harald Weltea624ef82020-12-17 17:17:12 +010050 rsync --archive --copy-links --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries@rita.osmocom.org:web-files/icE1usb/firmware/latest/
Harald Weltee7bccba2020-12-17 13:39:55 +010051 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/
Harald Weltea624ef82020-12-17 17:17:12 +010052 rsync --verbose --copy-links --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/
Harald Weltee7bccba2020-12-17 13:39:55 +010053fi
54
55# manuals build + optional publication
56if [ "$WITH_MANUALS" = "1" ]; then
Harald Weltea624ef82020-12-17 17:17:12 +010057 osmo-build-dep.sh osmo-gsm-manuals
Harald Weltee7bccba2020-12-17 13:39:55 +010058 make -C doc/manuals clean all
59 if [ "$PUBLISH" = "1" ]; then
60 make -C doc/manuals publish
61 fi
62fi
63
64# gateware build
65if [ "$WITH_GATEWARE" = "1" ]; then
66 GATE_VARS="IGNORE_TIMING=1 SINGLE_CHANNEL=1"
67 GATE_DIRS="gateware/e1-tracer gateware/icE1usb"
68 for d in $GATE_DIRS; do
69 echo
70 echo "=============== $d GATEWARE =============="
71 make -C $d clean
72 make -C $d ${GATE_VARS}
73 done
74fi
Harald Weltea624ef82020-12-17 17:17:12 +010075
76osmo-clean-workspace.sh