mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	These will create the apt & yum repos for the deb/rpms generated by build-deb and build-rpm. Adds sign-repo script which signs the repo metadata with a gpg key. Signed-off-by: Jessica Frazelle <princess@docker.com>
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |