Publish aptly repos to enable reuse of prevously build packages

Signed-off-by: Scott Little <scott.little@windriver.com>
Change-Id: I19c34523f389e0d7520b359e1d3ae37721168535
This commit is contained in:
Scott Little 2022-10-11 13:07:20 -04:00
parent 0d1d0e9f0c
commit 956f84754e
2 changed files with 49 additions and 2 deletions

View File

@ -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() {

View File

@ -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