Add tools to release to repo
[osm/devops.git] / tools / gen-repo.sh
1 #!/bin/bash
2
3 function usage() {
4 echo -e "usage: $0 [OPTIONS] BUILD"
5 echo -e " OPTIONS"
6 echo -e " -p <passphrase file>: gpg passphrase file"
7 echo -e " -i <incoming repo> "
8 echo -e " -o <outgoing repo> "
9 echo -e " -k <gpg key> "
10 echo -e " -j <jfrog cli> "
11 echo -e " -d <base dir> "
12 exit 1
13 }
14
15 [ $# -lt 1 ] && usage
16
17 BUILD="$1"
18
19 function FATAL() {
20 echo -e $1
21 exit 1
22 }
23
24 IN_REPO="unstable"
25 OUT_REPO="stable"
26 GPGKEY=71C0472C
27 JFROG_CLI=~/jfrog
28 REPO_BASE=repo
29 BASE_DIR=$REPO_BASE/osm/debian/ReleaseTWO
30 CURR_DIR=$(pwd)
31
32 while getopts ":p:i:o:k:j::d:" o; do
33 case "${o}" in
34 p)
35 PASSPHRASE_FILE=${OPTARG}
36 ;;
37 i)
38 IN_REPO=${OPTARG}
39 ;;
40 o)
41 OUT_REPO=${OPTARG}
42 ;;
43 k)
44 GPGKEY=${OPTARG}
45 ;;
46 j)
47 JFROG_CLI=${OPTARG}
48 ;;
49 d)
50 BASE_DIR=${OPTARG}
51 ;;
52 *)
53 usage
54 exit 1
55 ;;
56 esac
57 done
58
59 [ -x $JFROG_CLI ] || FATAL "jfrog cli not found. Please install https://www.jfrog.com/getcli/ and use option '-j <jfrog cli location>'"
60
61 $JFROG_CLI rt download --build "$BUILD" osm-release || FATAL "Failed to download"
62
63 BUILD_NUMBER=$(basename "$BUILD")
64
65 [ $PASSPHRASE_FILE ] && GPG_PASSPHRASE="--no-use-agent --passphrase \"$(cat $PASSPHRASE_FILE)\""
66
67 mkdir -p $BASE_DIR/dists
68
69 cp -R $BUILD_NUMBER/dists/$IN_REPO $BASE_DIR/dists/$OUT_REPO
70 cp -R $BUILD_NUMBER/pool $BASE_DIR/
71
72 cd $BASE_DIR
73
74 for i in RO osmclient openvim SO UI; do
75
76 # gpg sign the packages
77 dpkg-sig -g "$GPG_PASSPHRASE" -k $GPGKEY --sign builder pool/$i/*.deb
78
79 # mkdir -p dists/stable/$i/binary-amd64/
80 apt-ftparchive packages pool/$i > dists/$OUT_REPO/$i/binary-amd64/Packages
81 rm -f dists/$OUT_REPO/$i/binary-amd64/Packages.gz
82 gzip -9fk dists/$OUT_REPO/$i/binary-amd64/Packages
83 done
84
85 # Generate the root Release
86 # pushd dists/
87 apt-ftparchive release dists/$OUT_REPO > dists/$OUT_REPO/Release
88 #gzip -9fk dists/$OUT_REPO/Release
89
90 rm -f dists/$OUT_REPO/InRelease
91 eval gpg $GPG_PASSPHRASE --default-key $GPGKEY --clearsign -o dists/$OUT_REPO/InRelease dists/$OUT_REPO/Release
92
93 rm -f dists/$OUT_REPO/Release.gpg
94 eval gpg $GPG_PASSPHRASE --default-key $GPGKEY -abs -o dists/$OUT_REPO/Release.gpg dists/$OUT_REPO/Release
95
96
97 echo "performing rsync to osm-download.etsi.org:/repos/"
98 cd $CURR_DIR/$REPO_BASE
99
100 rsync -avR . rsync://osmusers@osm-download.etsi.org/repos/