github.com/skatsuta/docker@v1.8.1/hack/make/release-rpm (about) 1 #!/bin/bash 2 set -e 3 4 # This script creates the yum repos for the .rpm files generated by hack/make/build-rpm 5 # 6 # The following can then be used as a yum repo: 7 # http://yum.dockerproject.org/repo/$release/$distro/$distro-version 8 # 9 # For example: 10 # http://yum.dockerproject.org/repo/main/fedora/22 11 # http://yum.dockerproject.org/repo/testing/centos/6 12 # http://yum.dockerproject.org/repo/experimental/fedora/21 13 # http://yum.dockerproject.org/repo/main/centos/7 14 # 15 # ... and so on and so forth for the builds created by hack/make/build-rpm 16 17 : ${DOCKER_RELEASE_DIR:=$DEST} 18 YUMDIR=$DOCKER_RELEASE_DIR/yum/repo 19 20 # manage the repos for each distribution seperately 21 distros=( fedora centos oraclelinux ) 22 23 # get the release 24 release="main" 25 26 if [[ "$VERSION" == *-rc* ]]; then 27 release="testing" 28 fi 29 30 if [ $DOCKER_EXPERIMENTAL ] || [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then 31 release="experimental" 32 fi 33 34 for distro in "${distros[@]}"; do 35 # Setup the yum repo 36 REPO=$YUMDIR/$release/$distro 37 38 for dir in contrib/builder/rpm/$distro-*/; do 39 version="$(basename "$dir")" 40 suite="${version##*-}" 41 42 # if the directory does not exist, intialize the yum repo 43 if [[ ! -d $REPO/$suite/Packages ]]; then 44 mkdir -p "$REPO/$suite/Packages" 45 46 createrepo --pretty "$REPO/$suite" 47 fi 48 49 # path to rpms 50 RPMFILE=( "bundles/$VERSION/build-rpm/$version/RPMS/x86_64/docker-engine"*.rpm "bundles/$VERSION/build-rpm/$version/SRPMS/docker-engine"*.rpm ) 51 52 # if we have a $GPG_PASSPHRASE we may as well 53 # sign the rpms before adding to repo 54 if [ ! -z $GPG_PASSPHRASE ]; then 55 # export our key to rpm import 56 gpg --armor --export releasedocker > /tmp/gpg 57 rpm --import /tmp/gpg 58 59 # sign the rpms 60 rpm \ 61 --define '_gpg_name releasedocker' \ 62 --define '_signature gpg' \ 63 --define '__gpg_check_password_cmd /bin/true' \ 64 --define '__gpg_sign_cmd %{__gpg} gpg --batch --no-armor --passphrase '$GPG_PASSPHRASE' --no-secmem-warning -u "%{_gpg_name}" --sign --detach-sign --output %{__signature_filename} %{__plaintext_filename}' \ 65 --resign "${RPMFILE[@]}" 66 fi 67 68 # copy the rpms to the packages folder 69 cp "$RPMFILE" "$REPO/$suite/Packages" 70 71 # update the repo 72 createrepo --pretty --update "$REPO/$suite" 73 done 74 done