1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env 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
|