diff options
author | Chigang(Justin) <chigang@huawei.com> | 2015-08-13 03:14:03 -0400 |
---|---|---|
committer | Chigang(Justin) <chigang@huawei.com> | 2015-08-18 03:56:06 -0400 |
commit | 3656b2525c9b4e8c5e1f45625adb1cd143425dc0 (patch) | |
tree | 0836bcdf3d093d3d4f6cd40e4deedcbf93ebc976 /ci/make_repo.sh | |
parent | 7951b094df92c40417ec66c4be58871911bbed07 (diff) |
Generate ppa repositories automatically
Openstack ppa repo will be generated by the patch.now we support
openstack(juno) on trusty/centos7.1. there are two steps about
how to generate the repo:
1. analyze the deployment script to find the deploying packages
2. use Docker as container to collect packages
JIRA: COMPASS-15
Change-Id: I74ac57b70455643ecf9d32effd44a2e46f404f4e
Signed-off-by: Chigang(Justin) <chigang@huawei.com>
Diffstat (limited to 'ci/make_repo.sh')
-rwxr-xr-x | ci/make_repo.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ci/make_repo.sh b/ci/make_repo.sh new file mode 100755 index 00000000..0f922a18 --- /dev/null +++ b/ci/make_repo.sh @@ -0,0 +1,79 @@ +#!/bin/bash +set -ex + +WORK_PATH=$(cd "$(dirname "$0")"; pwd) +REPO_PATH=${WORK_PATH}/repo +UBUNTU_TAG="trusty" +CENTOS_TAG="centos7" +OPENSTACK_TAG="juno" +DOCKER_TAG="${UBUNTU_TAG}/openstack-${OPENSTACK_TAG}" +DOCKER_FILE=${WORK_PATH}/${UBUNTU_TAG}/${OPENSTACK_TAG}/Dockerfile +DEPLOY_SCRIPT_PATH="$1" + +if [[ ! -d ${REPO_PATH} ]]; then + mkdir -p ${REPO_PATH} +fi + +set +e +sudo docker info +if [[ $? != 0 ]]; then + wget -qO- https://get.docker.com/ | sh +else + echo "docker is already installed!" +fi +set -e + +if [[ -e ${WORK_PATH}/cp_repo.sh ]]; then + rm -f ${WORK_PATH}/cp_repo.sh +fi + +cat <<EOF >${WORK_PATH}/cp_repo.sh +#!/bin/bash +set -ex +cp /*ppa.tar.gz /result +EOF + +if [[ -e ${WORK_PATH}/install_packeages.sh ]]; then + rm -f ${WORK_PATH}/install_packages.sh +fi + +# generate ubuntu 14.04 ppa +sudo apt-get install python-yaml -y +sudo apt-get install python-cheetah -y + +python gen_ins_pkg_script.py ${DEPLOY_SCRIPT_PATH} Debian Debian_juno.tmpl + +sudo docker build -t ${DOCKER_TAG} -f ${DOCKER_FILE} . + +mkdir -p ${REPO_PATH} +sudo docker run -t -v ${REPO_PATH}:/result ${DOCKER_TAG} + +IMAGE_ID=$(sudo docker images|grep ${DOCKER_TAG}|awk '{print $3}') +sudo docker rmi -f ${IMAGE_ID} + +if [[ -e ${WORK_PATH}/install_packages.sh ]]; then + rm -f ${WORK_PATH}/install_packages.sh +fi + +# generate centos 7.1 ppa +python gen_ins_pkg_script.py ${DEPLOY_SCRIPT_PATH} RedHat RedHat_juno.tmpl + +DOCKER_TAG="${CENTOS_TAG}/openstack-${OPENSTACK_TAG}" +DOCKER_FILE=${WORK_PATH}/${CENTOS_TAG}/${OPENSTACK_TAG}/Dockerfile + +sudo docker build -t ${DOCKER_TAG} -f ${DOCKER_FILE} . + +mkdir -p ${REPO_PATH} +sudo docker run -t -v ${REPO_PATH}:/result ${DOCKER_TAG} + +IMAGE_ID=$(sudo docker images|grep ${DOCKER_TAG}|awk '{print $3}') +sudo docker rmi -f ${IMAGE_ID} + +if [[ -e ${WORK_PATH}/install_packages.sh ]]; then + rm -f ${WORK_PATH}/install_packages.sh +fi + +if [[ -e ${WORK_PATH}/cp_repo.sh ]]; then + rm -f ${WORK_PATH}/cp_repo.sh +fi + |