3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
17 echo -e "usage: $0 [OPTIONS] BUILD"
19 echo -e " -p <passphrase file>: gpg passphrase file"
20 echo -e " -i <incoming repo> "
21 echo -e " -o <outgoing repo> "
22 echo -e " -k <gpg key> "
23 echo -e " -j <jfrog cli> "
24 echo -e " -d <base dir> "
25 echo -e " -b <build> "
26 echo -e " -r <release dir> "
27 echo -e " -h <rsync user@host> "
28 echo -e " -R <rsync options> "
29 echo -e " -P <public key file> "
30 echo -e " -c <changelogfile> "
31 echo -e " -m <MDG repos> "
40 function dump_vars
() {
41 echo "incoming repo: $IN_REPO"
42 echo "outgoing repo: $OUT_REPO"
43 echo "GPGKEY: $GPGKEY"
44 echo "JFROG_CLI: $JFROG_CLI"
45 echo "REPO_BASE: $REPO_BASE"
46 echo "RELEASE_DIR: $RELEASE_DIR"
48 echo "RSYNC_USER_HOST $RSYNC_USER_HOST"
49 echo "RSYNC_OPTIONS $RSYNC_OPTIONS"
50 echo "PUBLIC_KEY_FILE $PUBLIC_KEY_FILE"
52 echo "BUILD_NUMBER: $BUILD_NUMBER"
55 MDG_REPOS
="RO osmclient openvim SO UI IM devops MON N2VC NBI common POL PLA LW-UI NG-UI NG-SA"
61 RELEASE_DIR
=ReleaseTWO
62 RSYNC_USER_HOST
=osmusers@osm-download.etsi.org
64 PUBLIC_KEY_FILE
=~
/OSM\ ETSI\ Release\ Key.gpg
67 while getopts ":p:i:o:k:j::d:b:r:h:R:P:c:m:" o
; do
70 PASSPHRASE_FILE
=${OPTARG}
94 RSYNC_USER_HOST
=${OPTARG}
97 RSYNC_OPTIONS
=${OPTARG}
100 PUBLIC_KEY_FILE
=${OPTARG}
103 CHANGE_LOG_FILE
=${OPTARG}
115 BASE_DIR
=$REPO_BASE/osm
/debian
/$RELEASE_DIR
117 [ -z "$BUILD" ] && FATAL
"missing option: -b <build>"
119 BUILD_NUMBER
=$
(echo "$BUILD" |
sed -e 's/.*:: //g')
123 [ -x $JFROG_CLI ] || FATAL
"jfrog cli not found. Please install https://www.jfrog.com/getcli/ and use option '-j <jfrog cli location>'"
125 $JFROG_CLI rt download
"osm-release/$BUILD_NUMBER/*" || FATAL
"Failed to download"
127 [ $PASSPHRASE_FILE ] && GPG_PASSPHRASE
="--pinentry-mode=loopback --passphrase \"$(cat $PASSPHRASE_FILE)\""
129 mkdir
-p $BASE_DIR/dists
131 cp -R $BUILD_NUMBER/dists
/$IN_REPO $BASE_DIR/dists
/$OUT_REPO
132 cp -R $BUILD_NUMBER/pool
$BASE_DIR/
134 echo "copy changelog from $BUILD_NUMBER/changelog to $BASE_DIR/"
135 cp -R $BUILD_NUMBER/changelog
$BASE_DIR/
139 for i
in $MDG_REPOS; do
141 # gpg sign the packages
142 dpkg-sig
-g "$GPG_PASSPHRASE" -k $GPGKEY --sign builder pool
/$i/*.deb
144 # mkdir -p dists/stable/$i/binary-amd64/
145 apt-ftparchive packages pool
/$i > dists
/$OUT_REPO/$i/binary-amd64
/Packages
146 rm -f dists
/$OUT_REPO/$i/binary-amd64
/Packages.gz
147 gzip -9fk dists
/$OUT_REPO/$i/binary-amd64
/Packages
150 # Generate the root Release
152 apt-ftparchive release dists
/$OUT_REPO > dists
/$OUT_REPO/Release
153 #gzip -9fk dists/$OUT_REPO/Release
155 rm -f dists
/$OUT_REPO/InRelease
156 eval gpg
$GPG_PASSPHRASE --default-key $GPGKEY --clearsign -o dists
/$OUT_REPO/InRelease dists
/$OUT_REPO/Release
158 rm -f dists
/$OUT_REPO/Release.gpg
159 eval gpg
$GPG_PASSPHRASE --default-key $GPGKEY -abs -o dists
/$OUT_REPO/Release.gpg dists
/$OUT_REPO/Release
161 echo "performing rsync of repo $RELEASE_DIR/dist/$OUT_REPO to osm-download.etsi.org:/repos/"
162 cd $CURR_DIR/$REPO_BASE
164 # copy over the public key file
165 [ "$PUBLIC_KEY_FILE" ] && cp "$PUBLIC_KEY_FILE" osm
/debian
/$RELEASE_DIR
167 # copy over the changelog file
168 [ "$CHANGE_LOG_FILE" ] && cp "$CHANGE_LOG_FILE" osm
/debian
/$RELEASE_DIR
170 IM_BASE
="osm/debian/$RELEASE_DIR/pool/IM/osm-imdocs_"
171 if ls "$IM_BASE"* 1> /dev
/null
2>&1; then
172 IM_TMP_DIR
=$
(mktemp
-d)
173 dpkg
-x "$IM_BASE"* $IM_TMP_DIR
174 mkdir osm
/debian
/$RELEASE_DIR/docs
175 cp -R $IM_TMP_DIR/usr
/share
/osm-im osm
/debian
/$RELEASE_DIR/docs
178 rsync
-avR $RSYNC_OPTIONS osm
/debian
/$RELEASE_DIR rsync
://$RSYNC_USER_HOST/repos