Dockerfile publishing pipeline
We now have experimental gates which will eventually be daily jobs to build, test and publish images to dockerhub. First step is to mimic our tarball publisher to build images -> save them to temp space -> run set of jobs that will sign off these images -> move images to regular tarballs. Depends-on: I0231bd07415ef05b3f4f937e32a9df4cd0643672 Change-Id: If578edcd4e431c0b93cb9cedcc3d9db47d41a637
This commit is contained in:
parent
f8c03e5c19
commit
1cdc18211a
@ -76,15 +76,9 @@ function collect_logs {
|
||||
}
|
||||
|
||||
function pack_registry {
|
||||
if [[ "$ZUUL_PIPELINE" == "tag" ]]; then
|
||||
# ZUUL_REFNAME=refs/tags/4.0.0
|
||||
REF_NAME=$(echo $ZUUL_REFNAME | cut -d/ -f3)
|
||||
else
|
||||
# ZUUL_REFNAME=stable/ocata or master
|
||||
REF_NAME=$(echo $ZUUL_REFNAME | cut -d/ -f2)
|
||||
fi
|
||||
sudo mkdir "images"
|
||||
FILENAME=${BASE_DISTRO}-${INSTALL_TYPE}-registry-${REF_NAME}.tar.gz
|
||||
BRANCH=$(echo "$ZUUL_BRANCH" | cut -d/ -f2)
|
||||
FILENAME=${BASE_DISTRO}-${INSTALL_TYPE}-registry-${BRANCH}.tar.gz
|
||||
sudo docker stop registry
|
||||
sudo tar -zcf "images/$FILENAME" -C /tmp/kolla_registry .
|
||||
sudo docker start registry
|
||||
|
64
tools/publisher.sh
Executable file
64
tools/publisher.sh
Executable file
@ -0,0 +1,64 @@
|
||||
# Script which is run in dockerhub publisher pipeline
|
||||
# It will organize build/deploy gates and then publish images to final place
|
||||
|
||||
export ZUUL_REF=$ZUUL_REF
|
||||
export BRANCH=$(echo "$ZUUL_BRANCH" | cut -d/ -f2)
|
||||
export TMP_REGISTRY="tmp/"
|
||||
export PUBLISHER=1
|
||||
export SIGNOFF_FILENAME=${BASE_DISTRO}-${INSTALL_TYPE}-registry-${BRANCH}.txt
|
||||
export FILENAME=${BASE_DISTRO}-${INSTALL_TYPE}-registry-${BRANCH}.tar.gz
|
||||
|
||||
# Ansible deployment gate to test out images
|
||||
function deploy_ansible {
|
||||
export KOLLA_ANSIBLE_DIR=$(mktemp -d)
|
||||
cat > /tmp/clonemap <<EOF
|
||||
clonemap:
|
||||
- name: openstack/kolla-ansible
|
||||
dest: ${KOLLA_ANSIBLE_DIR}
|
||||
EOF
|
||||
|
||||
/usr/zuul-env/bin/zuul-cloner -m /tmp/clonemap --workspace "$(pwd)" \
|
||||
--cache-dir /opt/git git://git.openstack.org openstack/kolla-ansible
|
||||
|
||||
pushd "${KOLLA_ANSIBLE_DIR}"
|
||||
tools/setup_gate.sh
|
||||
popd
|
||||
}
|
||||
|
||||
# If test passes, add link to test data which later will be added to image
|
||||
function signoff {
|
||||
mkdir -p images/
|
||||
curl -o images/$SIGNOFF_FILENAME http://tarballs.openstack.org/kolla/images/tmp/$SIGNOFF_FILENAME
|
||||
echo http://logs.openstack.org/$LOG_PATH >> images/$SIGNOFF_FILENAME
|
||||
}
|
||||
|
||||
# Building images that are supposed to be tested later
|
||||
if [[ $ACTION == "build" ]]; then
|
||||
tools/gate_run.sh
|
||||
sudo touch images/$SIGNOFF_FILENAME
|
||||
sudo chmod 777 images/$SIGNOFF_FILENAME
|
||||
|
||||
echo http://logs.openstack.org/$LOG_PATH >> images/$SIGNOFF_FILENAME
|
||||
exit 0
|
||||
fi
|
||||
if [[ $ACTION == "deploy-multinode" ]]; then
|
||||
if [[ $ORCH_ENGINE == "ansible" ]]; then
|
||||
deploy_ansible
|
||||
signoff
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# After all tests pass, move images from temp to final dir on tarballs.o.o
|
||||
if [[ $ACTION == "save" ]]; then
|
||||
mkdir -p images/
|
||||
wget -q -c -O "/tmp/$FILENAME" \
|
||||
"http://tarballs.openstack.org/kolla/images/tmp/$FILENAME"
|
||||
curl -o /tmp/$SIGNOFF_FILENAME http://tarballs.openstack.org/kolla/images/tmp/$SIGNOFF_FILENAME
|
||||
gunzip /tmp/$FILENAME
|
||||
tar -rf /tmp/${BASE_DISTRO}-${INSTALL_TYPE}-registry-${BRANCH}.tar /tmp/$SIGNOFF_FILENAME
|
||||
gzip /tmp/${BASE_DISTRO}-${INSTALL_TYPE}-registry-${BRANCH}.tar
|
||||
ls -la /tmp/
|
||||
sudo mv /tmp/$FILENAME images/publisher-$FILENAME
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user