| #!/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/23 |
| # http://yum.dockerproject.org/repo/testing/centos/7 |
| # http://yum.dockerproject.org/repo/experimental/fedora/23 |
| # 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 |
| : ${GPG_KEYID:=releasedocker} |
| |
| # get the release |
| release="main" |
| |
| if [[ "$VERSION" == *-rc* ]]; then |
| release="testing" |
| fi |
| |
| if [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then |
| release="experimental" |
| fi |
| |
| # Setup the yum repo |
| for dir in bundles/$VERSION/build-rpm/*/; do |
| version="$(basename "$dir")" |
| suite="${version##*-}" |
| distro="${version%-*}" |
| |
| REPO=$YUMDIR/$release/$distro |
| |
| # 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 "$GPG_KEYID" > /tmp/gpg |
| rpm --import /tmp/gpg |
| |
| # sign the rpms |
| echo "yes" | setsid rpm \ |
| --define "_gpg_name $GPG_KEYID" \ |
| --define "_signature gpg" \ |
| --define "__gpg_check_password_cmd /bin/true" \ |
| --define "__gpg_sign_cmd %{__gpg} gpg --batch --no-armor --digest-algo 'sha512' --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 |