|
@@ -0,0 +1,74 @@
|
|
|
+#!/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 seperately
|
|
|
+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, intialize 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/x86_64/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
|
|
|
+ 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
|