diff --git a/scripts/lib/publish_utils.sh b/scripts/lib/publish_utils.sh index eef13eb..36ed692 100644 --- a/scripts/lib/publish_utils.sh +++ b/scripts/lib/publish_utils.sh @@ -98,8 +98,7 @@ publish_file() { find_publish_dirs() { find "$PUBLISH_ROOT" -mindepth 1 -maxdepth 1 \ -type d \ - -name '[0-9][0-9][0-9][0-9]*' \ - -not -name "$PUBLISH_TIMESTAMP" + -name '[0-9][0-9][0-9][0-9]*' } find_checksum_files() { diff --git a/scripts/publish-packages.sh b/scripts/publish-packages.sh index 1daea68..e62842b 100755 --- a/scripts/publish-packages.sh +++ b/scripts/publish-packages.sh @@ -20,6 +20,8 @@ unset GREP_OPTIONS GREP_COLORS GREP_COLOR DEB_REPO_ORIGIN="starlingx" +APTLY_REPOS=("deb-local-build" "deb-local-source") + BUILD_TYPES=("std") if $BUILD_RT || $BUILD_ISO; then BUILD_TYPES+=("rt") @@ -179,6 +181,7 @@ publish_3rdparty_sources() { check_pipe_status || exit 1 fi } + do_publish_3rdparty_sources() { local src_dir="$1" local dst_root_dir="$2" @@ -204,6 +207,50 @@ do_publish_3rdparty_sources() { check_pipe_status || exit 1 } +do_publish_repo() { + local src_dir="$1" + local dst_dir_root="$2" + local checksums_filename="$3" + local published_checksum_files_list_file="$4" + + local sub_path="" + local sub_dir="" + local dst_dir="" + + mkdir -p "$dst_dir_root" + find "$src_dir" -type f \ + | while read filename ; do + sub_path="${filename#$src_dir/}" + sub_dir="${sub_path%/*}" + dst_dir="$dst_dir_root/$sub_dir" + mkdir -p "$dst_dir" + publish_file "$filename" "$dst_dir" "$published_checksum_files_list_file" >>"$dst_dir/$checksums_filename" || exit 1 + done + check_pipe_status || exit 1 +} + +publish_aptly_public_repos() { + local checksum_files_list_file="$TEMP_DIR/published_package_checksum_files" + + # Find old checksums + find_checksum_files "${PUBLISH_SUBDIR}/outputs/std/packages" \ + "${PUBLISH_SUBDIR}/outputs/rt/packages" \ + "${PUBLISH_SUBDIR}/outputs/aptly" \ + >"$checksum_files_list_file" || exit 1 + + + # copy/link package files + local aptly_repo + for aptly_repo in "${APTLY_REPOS[@]}" ; do + notice "publishing aptly repo $aptly_repo" + local repo_src_dir="$BUILD_OUTPUT_HOME/aptly/public/$aptly_repo" + local repo_dst_dir="$PUBLISH_DIR/outputs/aptly/$aptly_repo" + + do_publish_repo "$repo_src_dir" "$repo_dst_dir" \ + "$CHECKSUMS_FILENAME" "$checksum_files_list_file" + done +} + if $DRY_RUN ; then bail "DRY_RUN=false is not supported, bailing out" fi @@ -213,3 +260,4 @@ mkdir -p "$PUBLISH_ROOT" publish_3rdparty_sources publish_3rdparty_binaries publish_package_sources_and_binaries +publish_aptly_public_repos