feat: add ImageFind application and release pipelines
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PACKAGE=${1:?usage: verify-fnos-package.sh package.fpk [expected-version]}
|
||||
EXPECTED_VERSION=${2:-}
|
||||
VERIFY_ROOT=${IMAGEFIND_VERIFY_TMPDIR:-${TMPDIR:-/tmp}}
|
||||
mkdir -p "$VERIFY_ROOT"
|
||||
work_dir=$(mktemp -d "${VERIFY_ROOT%/}/imagefind-fnos-verify.XXXXXX")
|
||||
trap 'rm -rf -- "$work_dir"' EXIT
|
||||
|
||||
tar -xzf "$PACKAGE" -C "$work_dir"
|
||||
value() { sed -n "s/^$1[[:space:]]*=[[:space:]]*//p" "$work_dir/manifest" | head -n 1 | tr -d '\r'; }
|
||||
test "$(value appname)" = imagefind
|
||||
version=$(value version)
|
||||
test -n "$version"
|
||||
if [ -n "$EXPECTED_VERSION" ]; then test "$version" = "$EXPECTED_VERSION"; fi
|
||||
test "$(value platform)" = x86
|
||||
test "$(value install_dep_apps)" = python312,nxsir.postgresql
|
||||
test -x "$work_dir/cmd/main"
|
||||
test -s "$work_dir/app.tgz"
|
||||
gzip -t "$work_dir/app.tgz"
|
||||
tar -tzf "$work_dir/app.tgz" >"$work_dir/files.txt"
|
||||
grep -q '^frontend/index.html$' "$work_dir/files.txt"
|
||||
grep -q '^runtime/imagefind-.*\.whl$' "$work_dir/files.txt"
|
||||
grep -q '^runtime/wheels/.*\.whl$' "$work_dir/files.txt"
|
||||
grep -q '^bin/libOpenCL.so.1$' "$work_dir/files.txt"
|
||||
runtime_version=$(tar -xOzf "$work_dir/app.tgz" runtime/VERSION | sed -n '1p')
|
||||
test "$runtime_version" = "$version"
|
||||
if grep -Eq '^(data|models|cache|postgresql)/' "$work_dir/files.txt"; then
|
||||
printf 'persistent data must not be included in ImageFind app.tgz\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
test -s "$PACKAGE.sha256"
|
||||
(cd "$(dirname "$PACKAGE")" && sha256sum --check --status "$(basename "$PACKAGE").sha256")
|
||||
printf 'ImageFind fnOS package verified: %s (%s)\n' "$PACKAGE" "$version"
|
||||
Reference in New Issue
Block a user