-
-
Notifications
You must be signed in to change notification settings - Fork 20
/
runbuild
executable file
·60 lines (52 loc) · 1.59 KB
/
runbuild
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
#!/bin/bash
# ci build script
# runs tests and then builds the OpenWrt package
# requires the following env vars:
# - $BUILD_DIR
# - $DOWNLOADS_DIR
# - $CORES (defaults to 1)
set -e
BUILD_DIR=${BUILD_DIR-./build}
DOWNLOADS_DIR=${DOWNLOADS_DIR-./downloads}
START_TIME=${START_TIME-$(date +"%Y-%m-%d-%H%M%S")}
VERSIONED_DIR="$DOWNLOADS_DIR/$START_TIME"
COMPILE_TARGET=${COMPILE_TARGET-mips_24kc}
LATEST_LINK="$DOWNLOADS_DIR/latest"
CORES=${CORES:-1}
CURRENT_DIR=$(pwd)
OPENWRT_BRANCH="openwrt-23.05"
mkdir -p "$BUILD_DIR"
mkdir -p "$VERSIONED_DIR"
cd "$BUILD_DIR"
if ! [ -d "openwrt" ]; then
git clone https://git.openwrt.org/openwrt/openwrt.git
fi
cd openwrt
git reset --hard HEAD
git fetch origin
git checkout $OPENWRT_BRANCH
git reset --hard origin/$OPENWRT_BRANCH
# configure feeds
echo "src-git openwisp_config https://github.com/openwisp/openwisp-config.git" >feeds.conf
echo "src-link openwisp_monitoring $CURRENT_DIR" >>feeds.conf
cat feeds.conf.default >>feeds.conf
# remove unneeded feeds
sed -i '/telephony/d' feeds.conf
sed -i '/routing/d' feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
# add required packages
{
echo "CONFIG_PACKAGE_netjson-monitoring=y"
echo "CONFIG_PACKAGE_openwisp-monitoring=y"
} >>.config
make defconfig
if [ ! "$CI_CACHE" ]; then
make -j"$CORES" tools/install
make -j"$CORES" toolchain/install
fi
make -j"$CORES" package/openwisp-monitoring/compile \
|| make -j1 V=s package/openwisp-monitoring/compile || exit 1
mv "$BUILD_DIR/openwrt/bin/packages/$COMPILE_TARGET/openwisp_monitoring" "$VERSIONED_DIR"
rm "$LATEST_LINK" || true
ln -s "$VERSIONED_DIR" "$LATEST_LINK"