Always publish image lists & latest build link
Many docker images failed to compile in StarlingX, and we never publish the latest_docker_image_build symlink & the last build's image lists on CENGN. As a result there's no fixed URL where we could download the latest sucessfully-built image tags. This patch always publishes the symlink + lists, even if some docker images fail to compile. This is temporary until most/all problems with stx images are resolved. Also: try building both distroless & debian images before giving up, so that as many build errors as possible show up in the logs Signed-off-by: Davlet Panech <davlet.panech@windriver.com> Change-Id: If18ca2c7d83db520201b6027b970431c4161ac51
This commit is contained in:
parent
35d02563e7
commit
38308c6d6d
@ -304,7 +304,10 @@ pipeline {
|
|||||||
} }
|
} }
|
||||||
}
|
}
|
||||||
stage('IMAGES:symlinks') {
|
stage('IMAGES:symlinks') {
|
||||||
when { expression { ! IMAGES_FAILED } }
|
// Create the symlink even if some images failed.
|
||||||
|
// FIXME: remove all logic re publishing failed docker builds
|
||||||
|
// once all images have been fixed for Debian
|
||||||
|
// when { expression { ! IMAGES_FAILED } }
|
||||||
steps { script {
|
steps { script {
|
||||||
// copy image lists to publish root and create the "latest_docker_image_build" symlinks
|
// copy image lists to publish root and create the "latest_docker_image_build" symlinks
|
||||||
// in publish and archive roots
|
// in publish and archive roots
|
||||||
|
@ -105,13 +105,21 @@ retag_and_push() {
|
|||||||
|
|
||||||
# build them
|
# build them
|
||||||
lists_dir="$HOST_WORKSPACE/std/build-images"
|
lists_dir="$HOST_WORKSPACE/std/build-images"
|
||||||
|
failed=0
|
||||||
for os in $(echo $DOCKER_OS_LIST | sed 's/,/ /g') ; do
|
for os in $(echo $DOCKER_OS_LIST | sed 's/,/ /g') ; do
|
||||||
list_file="$lists_dir/images-$os-$BUILD_STREAM-versioned.lst"
|
list_file="$lists_dir/images-$os-$BUILD_STREAM-versioned.lst"
|
||||||
notice "building $BUILD_STREAM $os images"
|
notice "building $BUILD_STREAM $os images"
|
||||||
$DRY_RUN || rm -f "$list_file"
|
$DRY_RUN || rm -f "$list_file"
|
||||||
stx_docker_cmd $DRY_RUN_ARG "cd \$MY_REPO/build-tools/build-docker-images && ${cmd[*]} --os=$os"
|
if stx_docker_cmd $DRY_RUN_ARG "cd \$MY_REPO/build-tools/build-docker-images && ${cmd[*]} --os=$os" ; then
|
||||||
if $PUSH_DOCKER_IMAGES && [[ -f "$list_file" ]] ; then
|
if $PUSH_DOCKER_IMAGES && [[ -f "$list_file" ]] ; then
|
||||||
retag_and_push "$list_file"
|
retag_and_push "$list_file"
|
||||||
|
fi
|
||||||
|
continue
|
||||||
fi
|
fi
|
||||||
|
failed=1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ $failed -ne 1 ]] ; then
|
||||||
|
notice "one or more images failed to build, see output above"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
@ -18,36 +18,30 @@ if $DRY_RUN ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
ARCHIVE_ROOT=$(dirname "$BUILD_OUTPUT_HOME")
|
ARCHIVE_ROOT=$(dirname "$BUILD_OUTPUT_HOME")
|
||||||
|
link_target=$(basename "$BUILD_OUTPUT_HOME")
|
||||||
|
|
||||||
set -x
|
# find image list files
|
||||||
|
image_list_files_str="$(
|
||||||
|
find "$BUILD_OUTPUT_HOME/workspace/std/build-images" \
|
||||||
|
-mindepth 1 -maxdepth 1 \
|
||||||
|
-type f -name 'images-*.lst' \
|
||||||
|
| sed -r -e 's/^\s+//' -e 's/\s+$//' \
|
||||||
|
| grep -E -v -e '^\s#' -e '^\s*$'
|
||||||
|
)" || exit 1
|
||||||
|
declare -a image_list_files
|
||||||
|
readarray -t image_list_files <<<"$image_list_files_str"
|
||||||
|
|
||||||
if [[ "$BUILD_STATUS" == "success" ]] ; then
|
# more than one - success
|
||||||
ARCHIVE_ROOT=$(dirname "$BUILD_OUTPUT_HOME")
|
if [[ "${#image_list_files[@]}" -gt 0 ]] ; then
|
||||||
link_target=$(basename "$BUILD_OUTPUT_HOME")
|
|
||||||
|
|
||||||
# find image list files
|
# archive LAST_COMMITS & latest symlink
|
||||||
image_list_files_str="$(
|
cp "$BUILD_OUTPUT_HOME/LAST_COMMITS" "$ARCHIVE_ROOT/LAST_COMMITS_IMG_STABLE"
|
||||||
find "$BUILD_OUTPUT_HOME/workspace/std/build-images" \
|
ln -sfn "$link_target" "$ARCHIVE_ROOT/latest_docker_image_build"
|
||||||
-mindepth 1 -maxdepth 1 \
|
|
||||||
-type f -name 'images-*.lst' \
|
|
||||||
| sed -r -e 's/^\s+//' -e 's/\s+$//' \
|
|
||||||
| grep -E -v -e '^\s#' -e '^\s*$'
|
|
||||||
)" || exit 1
|
|
||||||
declare -a image_list_files
|
|
||||||
readarray -t image_list_files <<<"$image_list_files_str"
|
|
||||||
|
|
||||||
# more than one - success
|
|
||||||
if [[ "${#image_list_files[@]}" -gt 0 ]] ; then
|
|
||||||
|
|
||||||
# archive LAST_COMMITS & latest symlink
|
|
||||||
cp "$BUILD_OUTPUT_HOME/LAST_COMMITS" "$ARCHIVE_ROOT/LAST_COMMITS_IMG_STABLE"
|
|
||||||
ln -sfn "$link_target" "$ARCHIVE_ROOT/latest_docker_image_build"
|
|
||||||
|
|
||||||
# publish image lists & latest symlink
|
|
||||||
cp "${image_list_files[@]}" "$PUBLISH_ROOT/"
|
|
||||||
if ! same_path "$ARCHIVE_ROOT" "$PUBLISH_ROOT" ; then
|
|
||||||
ln -sfn "$link_target" "$PUBLISH_ROOT/latest_docker_image_build"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# publish image lists & latest symlink
|
||||||
|
cp "${image_list_files[@]}" "$PUBLISH_ROOT/"
|
||||||
|
if ! same_path "$ARCHIVE_ROOT" "$PUBLISH_ROOT" ; then
|
||||||
|
ln -sfn "$link_target" "$PUBLISH_ROOT/latest_docker_image_build"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user