aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/osmocom-nightly-nitb-split.sh
blob: ee39a5b97198e5aa3a6b4fa7522ec57d27498c4b (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/bash

set -e
set -x

DT=$(date +%Y%m%d)
PROJ=network:osmocom:nitb-split:nightly

### common
checkout() {
  local name=$1
  local branch=$2
  local url="git://git.osmocom.org"

  cd "$REPO"

  if [ -n "$branch" ] ; then
    git clone "$url/$name" -b "$branch"
  else
    git clone "$url/$name"
  fi

  cd -
}

### OBS build
prepare() {
  # clean up the whole space
  mkdir -p "$REPO/osc/"
  cd "$REPO/osc"
  osc co "$PROJ"
}

build() {
  local name=$1
  local repodir=$REPO/$name
  local oscdir=$REPO/osc/$PROJ/$name

  if [ -d "$oscdir" ] ; then
    # remove earlier version
    cd "$oscdir"
    osc rm -- * || true
  else
    # new package
    mkdir -p "$oscdir/"
    cd "$REPO/osc/$PROJ/"
    osc add "$name"
  fi

  cd "$repodir"

  VER=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,'  | sed 's,),,')
  dch -v "$VER.$DT" -m "Snapshot build"
  git commit -m "$DT snapshot" debian/

  mkdir -p "$DATA/$name"
  # source code build without dependency checks and unsigned source and unsigned change log
  gbp buildpackage -S -uc -us -d --git-ignore-branch "--git-export-dir=$DATA/$name"

  mv "$DATA/$name/"*.tar* "$DATA/$name/"*.dsc "$oscdir/"

  cd "$oscdir"
  osc add -- *.tar* *.dsc
  osc ci -m "Snapshot $name $DT"
}

post() {
  cd "$REPO/osc/$PROJ/"
  osc status
}

build_osmocom() {
  BASE=$PWD
  DATA=$BASE/data
  REPO=$BASE/repo

  # rather than including a dangerous 'rm -rf *' here, lets delegate to the user:
  if [ -n "$(ls)" ]; then
    echo "ERROR: I need to run in an empty directory."
    exit 1
  fi

  prepare

  checkout libosmocore
  checkout libosmo-abis
  checkout libosmo-netif
  checkout libosmo-sccp
  checkout libsmpp34
  checkout libasn1c
  checkout osmo-iuh lynxis/pre_release
  checkout osmo-hlr
  checkout openggsn
  checkout osmo-mgw pre_release
  checkout osmo-bsc lynxis/pre_release
  checkout osmo-msc pre_release
  checkout osmo-sgsn pre_release

  build libosmocore
  build libosmo-abis
  build libosmo-netif
  build libosmo-sccp
  build libsmpp34
  build libasn1c
  build osmo-iuh
  build osmo-hlr
  build openggsn
  build osmo-mgw
  build osmo-bsc
  build osmo-msc
  build osmo-sgsn

  post
}

TMPDIR=$(mktemp -d nightly-3g_XXXXXX)
cd "$TMPDIR"
build_osmocom
rm -rf "./$TMPDIR/"