#!/bin/bash set -e # This script creates the yum repos for the .rpm files generated by hack/make/build-rpm # # The following can then be used as a yum repo: # http://yum.dockerproject.org/repo/$release/$distro/$distro-version # # For example: # http://yum.dockerproject.org/repo/main/fedora/22 # http://yum.dockerproject.org/repo/testing/centos/6 # http://yum.dockerproject.org/repo/experimental/fedora/21 # http://yum.dockerproject.org/repo/main/centos/7 # # ... and so on and so forth for the builds created by hack/make/build-rpm : ${DOCKER_RELEASE_DIR:=$DEST} YUMDIR=$DOCKER_RELEASE_DIR/yum/repo # manage the repos for each distribution separately distros=( fedora centos oraclelinux ) # get the release release="main" if [[ "$VERSION" == *-rc* ]]; then release="testing" fi if [ $DOCKER_EXPERIMENTAL ] || [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then release="experimental" fi for distro in "${distros[@]}"; do # Setup the yum repo REPO=$YUMDIR/$release/$distro for dir in contrib/builder/rpm/$distro-*/; do version="$(basename "$dir")" suite="${version##*-}" # if the directory does not exist, initialize the yum repo if [[ ! -d $REPO/$suite/Packages ]]; then mkdir -p "$REPO/$suite/Packages" createrepo --pretty "$REPO/$suite" fi # path to rpms RPMFILE=( "bundles/$VERSION/build-rpm/$version/RPMS/"*"/docker-engine"*.rpm "bundles/$VERSION/build-rpm/$version/SRPMS/docker-engine"*.rpm ) # if we have a $GPG_PASSPHRASE we may as well # sign the rpms before adding to repo if [ ! -z $GPG_PASSPHRASE ]; then # export our key to rpm import gpg --armor --export releasedocker > /tmp/gpg rpm --import /tmp/gpg # sign the rpms echo "yes" | setsid rpm \ --define '_gpg_name releasedocker' \ --define '_signature gpg' \ --define '__gpg_check_password_cmd /bin/true' \ --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}' \ --resign "${RPMFILE[@]}" fi # copy the rpms to the packages folder cp "$RPMFILE" "$REPO/$suite/Packages" # update the repo createrepo --pretty --update "$REPO/$suite" done done