fix: read IPK version from package index
Build and test / Tests and license checks (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · x86-64 (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · x86-64 (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ipq40xx-generic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ipq40xx-generic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · mediatek-filogic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · mediatek-filogic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ath79-generic (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ath79-generic (push) Has been cancelled
Build and test / OpenWrt 24.10.7 · ramips-mt7621 (push) Has been cancelled
Build and test / OpenWrt 25.12.4 · ramips-mt7621 (push) Has been cancelled
Build and test / Publish agent GitHub release assets (push) Has been cancelled
Build and test / Publish signed package repository (push) Has been cancelled

This commit is contained in:
2026-07-31 14:23:31 +03:00
parent d673becedf
commit a103a0c832
+10 -5
View File
@@ -59,12 +59,17 @@ for artifact_dir in "$source_dir"/openwrt-*; do
package_file="$(find "$artifact_dir" -maxdepth 1 -type f \( -name 'rmm-agent-go-production_*.ipk' -o -name 'rmm-agent-go-production-*.apk' \) -print -quit)" package_file="$(find "$artifact_dir" -maxdepth 1 -type f \( -name 'rmm-agent-go-production_*.ipk' -o -name 'rmm-agent-go-production-*.apk' \) -print -quit)"
case "$package_file" in case "$package_file" in
*.ipk) *.ipk)
control_path="$(ar p "$package_file" control.tar.gz | tar -tzf - | sed -n '/^\.\?\/\?control$/p' | head -n 1)" package_version="$(awk '
if [ -z "$control_path" ]; then /^Package: / { package = substr($0, 10) }
echo "IPK control archive has no control file: $package_file" >&2 package == "rmm-agent-go-production" && /^Version: / { print substr($0, 10); exit }
exit 1 /^$/ { package = "" }
' "$artifact_dir/Packages" 2>/dev/null || true)"
if [ -z "$package_version" ]; then
control_path="$(ar p "$package_file" control.tar.gz 2>/dev/null | tar -tzf - 2>/dev/null | sed -n '/^\.\?\/\?control$/p' | head -n 1)"
if [ -n "$control_path" ]; then
package_version="$(ar p "$package_file" control.tar.gz 2>/dev/null | tar -xzO -f - "$control_path" 2>/dev/null | sed -n 's/^Version: //p' | head -n 1)"
fi
fi fi
package_version="$(ar p "$package_file" control.tar.gz | tar -xzO -f - "$control_path" | sed -n 's/^Version: //p' | head -n 1)"
;; ;;
*.apk) *.apk)
package_version="$(tar -xzO -f "$package_file" .PKGINFO | sed -n 's/^pkgver = //p' | head -n 1)" package_version="$(tar -xzO -f "$package_file" .PKGINFO | sed -n 's/^pkgver = //p' | head -n 1)"