X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=tools%2Fgen-repo.sh;h=f3d4c29a5ae5a53a507e77ac4327c25be78e4ab7;hb=df75b7aed0e184455b9de743f82003a1a2513956;hp=8722155771250f3da91f1fb3af533248f378b13f;hpb=9cfcbca9c08c5e09b6055d2a7c16823f8270c7f2;p=osm%2Fdevops.git diff --git a/tools/gen-repo.sh b/tools/gen-repo.sh index 87221557..f3d4c29a 100755 --- a/tools/gen-repo.sh +++ b/tools/gen-repo.sh @@ -1,4 +1,17 @@ #!/bin/bash +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# function usage() { echo -e "usage: $0 [OPTIONS] BUILD" @@ -9,27 +22,49 @@ function usage() { echo -e " -k " echo -e " -j " echo -e " -d " + echo -e " -b " + echo -e " -r " + echo -e " -h " + echo -e " -R " + echo -e " -P " + echo -e " -c " + echo -e " -m " exit 1 } -[ $# -lt 1 ] && usage - -BUILD="$1" - function FATAL() { echo -e $1 exit 1 } +function dump_vars() { + echo "incoming repo: $IN_REPO" + echo "outgoing repo: $OUT_REPO" + echo "GPGKEY: $GPGKEY" + echo "JFROG_CLI: $JFROG_CLI" + echo "REPO_BASE: $REPO_BASE" + echo "RELEASE_DIR: $RELEASE_DIR" + echo "BUILD: $BUILD" + echo "RSYNC_USER_HOST $RSYNC_USER_HOST" + echo "RSYNC_OPTIONS $RSYNC_OPTIONS" + echo "PUBLIC_KEY_FILE $PUBLIC_KEY_FILE" + echo "BUILD: $BUILD" + echo "BUILD_NUMBER: $BUILD_NUMBER" +} + +MDG_REPOS="RO osmclient openvim SO UI IM devops MON N2VC NBI common POL PLA LW-UI NG-UI NG-SA" IN_REPO="unstable" OUT_REPO="stable" GPGKEY=71C0472C JFROG_CLI=~/jfrog REPO_BASE=repo -BASE_DIR=$REPO_BASE/osm/debian/ReleaseTWO +RELEASE_DIR=ReleaseTWO +RSYNC_USER_HOST=osmusers@osm-download.etsi.org CURR_DIR=$(pwd) +PUBLIC_KEY_FILE=~/OSM\ ETSI\ Release\ Key.gpg +CHANGE_LOG_FILE= -while getopts ":p:i:o:k:j::d:" o; do +while getopts ":p:i:o:k:j::d:b:r:h:R:P:c:m:" o; do case "${o}" in p) PASSPHRASE_FILE=${OPTARG} @@ -49,6 +84,27 @@ while getopts ":p:i:o:k:j::d:" o; do d) BASE_DIR=${OPTARG} ;; + b) + BUILD=${OPTARG} + ;; + r) + RELEASE_DIR=${OPTARG} + ;; + h) + RSYNC_USER_HOST=${OPTARG} + ;; + R) + RSYNC_OPTIONS=${OPTARG} + ;; + P) + PUBLIC_KEY_FILE=${OPTARG} + ;; + c) + CHANGE_LOG_FILE=${OPTARG} + ;; + m) + MDG_REPOS=${OPTARG} + ;; *) usage exit 1 @@ -56,22 +112,32 @@ while getopts ":p:i:o:k:j::d:" o; do esac done +BASE_DIR=$REPO_BASE/osm/debian/$RELEASE_DIR + +[ -z "$BUILD" ] && FATAL "missing option: -b " + +BUILD_NUMBER=$(echo "$BUILD" | sed -e 's/.*:: //g') + +dump_vars + [ -x $JFROG_CLI ] || FATAL "jfrog cli not found. Please install https://www.jfrog.com/getcli/ and use option '-j '" -$JFROG_CLI rt download --build "$BUILD" osm-release || FATAL "Failed to download" +$JFROG_CLI rt download "osm-release/$BUILD_NUMBER/*" || FATAL "Failed to download" -BUILD_NUMBER=$(basename "$BUILD") -[ $PASSPHRASE_FILE ] && GPG_PASSPHRASE="--no-use-agent --passphrase \"$(cat $PASSPHRASE_FILE)\"" +[ $PASSPHRASE_FILE ] && GPG_PASSPHRASE="--pinentry-mode=loopback --passphrase \"$(cat $PASSPHRASE_FILE)\"" mkdir -p $BASE_DIR/dists cp -R $BUILD_NUMBER/dists/$IN_REPO $BASE_DIR/dists/$OUT_REPO cp -R $BUILD_NUMBER/pool $BASE_DIR/ +echo "copy changelog from $BUILD_NUMBER/changelog to $BASE_DIR/" +cp -R $BUILD_NUMBER/changelog $BASE_DIR/ + cd $BASE_DIR -for i in RO osmclient openvim SO UI; do +for i in $MDG_REPOS; do # gpg sign the packages dpkg-sig -g "$GPG_PASSPHRASE" -k $GPGKEY --sign builder pool/$i/*.deb @@ -93,8 +159,21 @@ eval gpg $GPG_PASSPHRASE --default-key $GPGKEY --clearsign -o dists/$OUT_REPO/In rm -f dists/$OUT_REPO/Release.gpg eval gpg $GPG_PASSPHRASE --default-key $GPGKEY -abs -o dists/$OUT_REPO/Release.gpg dists/$OUT_REPO/Release - -echo "performing rsync to osm-download.etsi.org:/repos/" +echo "performing rsync of repo $RELEASE_DIR/dist/$OUT_REPO to osm-download.etsi.org:/repos/" cd $CURR_DIR/$REPO_BASE -rsync -avR . rsync://osmusers@osm-download.etsi.org/repos/ +# copy over the public key file +[ "$PUBLIC_KEY_FILE" ] && cp "$PUBLIC_KEY_FILE" osm/debian/$RELEASE_DIR + +# copy over the changelog file +[ "$CHANGE_LOG_FILE" ] && cp "$CHANGE_LOG_FILE" osm/debian/$RELEASE_DIR + +IM_BASE="osm/debian/$RELEASE_DIR/pool/IM/osm-imdocs_" +if ls "$IM_BASE"* 1> /dev/null 2>&1; then + IM_TMP_DIR=$(mktemp -d) + dpkg -x "$IM_BASE"* $IM_TMP_DIR + mkdir osm/debian/$RELEASE_DIR/docs + cp -R $IM_TMP_DIR/usr/share/osm-im osm/debian/$RELEASE_DIR/docs +fi + +rsync -avR $RSYNC_OPTIONS osm/debian/$RELEASE_DIR rsync://$RSYNC_USER_HOST/repos