Fix generation of built_$repo_packages.txt
This commit is contained in:
parent
7669ea0e3b
commit
98fff5b520
|
@ -79,67 +79,72 @@ jobs:
|
|||
fi
|
||||
|
||||
for repo_path in $(jq --raw-output 'keys | .[]' < repo.json); do
|
||||
repo=$(jq --raw-output '.["'$repo_path'"]' < repo.json)
|
||||
repo=$(jq --raw-output '.["'${repo_path}'"]' < repo.json)
|
||||
# Parse changed files and identify new packages and deleted packages.
|
||||
# Create lists of those packages that will be passed to upload job for
|
||||
# further processing.
|
||||
while read -r file; do
|
||||
if ! [[ $file == $repo_path/* ]]; then
|
||||
if ! [[ $file == ${repo_path}/* ]]; then
|
||||
# This file does not belong to a package, so ignore it
|
||||
continue
|
||||
fi
|
||||
if [[ $file =~ ^$repo_path/([.a-z0-9+-]*)/([.a-z0-9+-]*).subpackage.sh$ ]]; then
|
||||
if [[ $file =~ ^${repo_path}/([.a-z0-9+-]*)/([.a-z0-9+-]*).subpackage.sh$ ]]; then
|
||||
# A subpackage was modified, check if it was deleted or just updated
|
||||
pkg=${BASH_REMATCH[1]}
|
||||
subpkg=${BASH_REMATCH[2]}
|
||||
if [ ! -f "${repo_path}/${pkg}/${subpkg}.subpackage.sh" ]; then
|
||||
echo "$subpkg" >> ./deleted_$repo_packages.txt
|
||||
echo "$subpkg" >> ./deleted_${repo}_packages.txt
|
||||
fi
|
||||
elif [[ $file =~ ^$repo_path/([.a-z0-9+-]*)/.*$ ]]; then
|
||||
elif [[ $file =~ ^${repo_path}/([.a-z0-9+-]*)/.*$ ]]; then
|
||||
# package, check if it was deleted or updated
|
||||
pkg=${BASH_REMATCH[1]}
|
||||
if [ ! -d "${repo_path}/${pkg}" ]; then
|
||||
echo "$pkg" >> ./deleted_$repo_packages.txt
|
||||
else
|
||||
echo "$pkg" >> ./built_$repo_packages.txt
|
||||
if [ -d "${repo_path}/${pkg}" ]; then
|
||||
echo "$pkg" >> ./built_${repo}_packages.txt
|
||||
# If there are subpackages we want to create a list of those
|
||||
# as well
|
||||
for file in $(find "${repo_path}/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
|
||||
echo "$(basename "${file%%.subpackage.sh}")" >> ./built_$repo_subpackages.txt
|
||||
echo "$(basename "${file%%.subpackage.sh}")" >> ./built_${repo}_subpackages.txt
|
||||
done
|
||||
else
|
||||
echo "$pkg" >> ./deleted_${repo}_packages
|
||||
fi
|
||||
fi
|
||||
done<<<${CHANGED_FILES}
|
||||
done
|
||||
else
|
||||
for pkg in ${{ github.event.inputs.packages }}; do
|
||||
for repo_path in $(jq --raw-output 'keys | .[]' < repo.json); do
|
||||
repo=$(jq --raw-output '.["'$repo_path'"]' < repo.json)
|
||||
if [ -d "${repo}/${pkg}" ]; then
|
||||
echo "$pkg" >> ./built_$repo_packages.txt
|
||||
for subpkg in $(find "${repo}/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
|
||||
echo "$(basename "${subpkg%%.subpackage.sh}")" >> ./built_$repo_subpackages.txt
|
||||
repo_paths=$(jq --raw-output 'keys | .[]' < repo.json)
|
||||
found=false
|
||||
for repo_path in $repo_paths; do
|
||||
repo=$(jq --raw-output '.["'${repo_path}'"]' < repo.json)
|
||||
if [ -d "${repo_path}/${pkg}" ]; then
|
||||
found=true
|
||||
echo "$pkg" >> ./built_${repo}_packages.txt
|
||||
for subpkg in $(find "${repo_path}/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
|
||||
echo "$(basename "${subpkg%%.subpackage.sh}")" >> ./built_${repo}_subpackages.txt
|
||||
done
|
||||
else
|
||||
echo "Package '${pkg}' not found in any of the repo"
|
||||
fi
|
||||
done
|
||||
if [ "$found" != true ]; then
|
||||
echo "Package '${pkg}' not found in any of the repo"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for repo in $(jq --raw-output '.[]' < repo.json); do
|
||||
# Fix so that lists do not contain duplicates
|
||||
if [ -f ./built_$repo_packages.txt ]; then
|
||||
uniq ./built_$repo_packages.txt > ./built_$repo_packages.txt.tmp
|
||||
mv ./built_$repo_packages.txt.tmp ./built_$repo_packages.txt
|
||||
if [ -f ./built_${repo}_packages.txt ]; then
|
||||
uniq ./built_${repo}_packages.txt > ./built_${repo}_packages.txt.tmp
|
||||
mv ./built_${repo}_packages.txt.tmp ./built_${repo}_packages.txt
|
||||
fi
|
||||
if [ -f ./built_$repo_subpackages.txt ]; then
|
||||
uniq ./built_$repo_subpackages.txt > ./built_$repo_subpackages.txt.tmp
|
||||
mv ./built_$repo_subpackages.txt.tmp ./built_$repo_subpackages.txt
|
||||
if [ -f ./built_${repo}_subpackages.txt ]; then
|
||||
uniq ./built_${repo}_subpackages.txt > ./built_${repo}_subpackages.txt.tmp
|
||||
mv ./built_${repo}_subpackages.txt.tmp ./built_${repo}_subpackages.txt
|
||||
fi
|
||||
if [ -f ./deleted_$repo_packages.txt ]; then
|
||||
uniq ./deleted_$repo_packages.txt > ./deleted_$repo_packages.txt.tmp
|
||||
mv ./deleted_$repo_packages.txt.tmp ./deleted_$repo_packages.txt
|
||||
if [ -f ./deleted_${repo}_packages.txt ]; then
|
||||
uniq ./deleted_${repo}_packages.txt > ./deleted_${repo}_packages.txt.tmp
|
||||
mv ./deleted_${repo}_packages.txt.tmp ./deleted_${repo}_packages.txt
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -155,11 +160,11 @@ jobs:
|
|||
|
||||
- name: Lint packages
|
||||
run: |
|
||||
package_recipes=
|
||||
declare -a package_recipes
|
||||
for repo_path in $(jq --raw-output 'keys | .[]' < repo.json); do
|
||||
repo=$(jq --raw-output '.["'$repo_path'"]' < repo.json)
|
||||
if [ -f ./built_$repo_packages.txt ]; then
|
||||
package_recipes+=$(cat ./built_$repo_packages.txt | repo_path=$repo_path awk '{print ENVIRON["repo_path"]"/"$1"/build.sh"}')
|
||||
repo=$(jq --raw-output '.["'${repo_path}'"]' < repo.json)
|
||||
if [ -f ./built_${repo}_packages.txt ]; then
|
||||
package_recipes="$package_recipes $(cat ./built_${repo}_packages.txt | repo_path=${repo_path} awk '{print ENVIRON["repo_path"]"/"$1"/build.sh"}')"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -167,12 +172,12 @@ jobs:
|
|||
|
||||
- name: Build packages
|
||||
run: |
|
||||
packages=
|
||||
declare -a packages
|
||||
for repo_path in $(jq --raw-output 'keys | .[]' < repo.json); do
|
||||
repo=$(jq --raw-output '.["'$repo_path'"]' < repo.json)
|
||||
repo=$(jq --raw-output '.["'${repo_path}'"]' < repo.json)
|
||||
|
||||
if [ -f ./built_$repo_packages.txt ]; then
|
||||
packages+=$(cat ./build_$repo_packages.txt)
|
||||
if [ -f ./built_${repo}_packages.txt ]; then
|
||||
packages="$packages $(cat ./built_${repo}_packages.txt)"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -189,10 +194,10 @@ jobs:
|
|||
mkdir debs
|
||||
# Put package lists into directory with *.deb files so they will be transferred to
|
||||
# upload job.
|
||||
test -f ./built_$repo_packages.txt && mv ./built_$repo_packages.txt ./debs/built_packages.txt
|
||||
test -f ./built_$repo_subpackages.txt && cat ./built_$repo_subpackages.txt >> ./debs/built_packages.txt \
|
||||
&& rm ./built_$repo_subpackages.txt
|
||||
test -f ./deleted_$repo_packages.txt && mv ./deleted_$repo_packages.txt ./debs/deleted_packages.txt
|
||||
test -f ./built_${repo}_packages.txt && mv ./built_${repo}_packages.txt ./debs/built_packages.txt
|
||||
test -f ./built_${repo}_subpackages.txt && cat ./built_${repo}_subpackages.txt >> ./debs/built_packages.txt \
|
||||
&& rm ./built_${repo}_subpackages.txt
|
||||
test -f ./deleted_${repo}_packages.txt && mv ./deleted_${repo}_packages.txt ./debs/deleted_packages.txt
|
||||
|
||||
# Move only debs from built_packages into debs/ folder before
|
||||
# creating an archive.
|
||||
|
|
Loading…
Reference in New Issue