X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=tools%2Fgen-repo.sh;h=a7cf904cdce9b980a716ac257846f1646250acdc;hb=cb7dc67d460141b98472561ce080cf378c9cd785;hp=5227f880e61f15a44b824817e6aca4224b1f3593;hpb=cb6f74f800556fd2e2f88a35f0118b687ad599fc;p=osm%2Fdevops.git diff --git a/tools/gen-repo.sh b/tools/gen-repo.sh index 5227f880..a7cf904c 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" @@ -13,6 +26,9 @@ function usage() { echo -e " -r " echo -e " -h " echo -e " -R " + echo -e " -P " + echo -e " -c " + echo -e " -m " exit 1 } @@ -31,8 +47,12 @@ function dump_vars() { 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 @@ -41,8 +61,10 @@ REPO_BASE=repo 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:b:r:h:R:" 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} @@ -74,6 +96,15 @@ while getopts ":p:i:o:k:j::d:b:r:h:R:" o; do R) RSYNC_OPTIONS=${OPTARG} ;; + P) + PUBLIC_KEY_FILE=${OPTARG} + ;; + c) + CHANGE_LOG_FILE=${OPTARG} + ;; + m) + MDG_REPOS=${OPTARG} + ;; *) usage exit 1 @@ -81,28 +112,32 @@ while getopts ":p:i:o:k:j::d:b:r:h:R:" o; do esac done -dump_vars - 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" -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 @@ -124,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 of repo $RELEASE_DIR/dist/$OUT_REPO to osm-download.etsi.org:/repos/" cd $CURR_DIR/$REPO_BASE +# 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