Files
felixfoertsch 9433aff28a
TubeArchivistMetadata / Build (push) Failing after 1m2s
TubeArchivistMetadata / Release (push) Has been skipped
adapt release workflow for gitea actions
2026-07-01 10:18:45 +02:00

60 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Description: Build a deterministic Jellyfin plugin release zip.
# Usage: ./scripts/package-release.sh
main() {
local root
root="$(git rev-parse --show-toplevel)"
cd "$root"
local version
version="$(awk -F'\"' '/^version:/ { print $2 }' build.yaml)"
local dll_path
dll_path="Jellyfin.Plugin.TubeArchivistMetadata/bin/Release/net9.0/Jellyfin.Plugin.TubeArchivistMetadata.dll"
if [[ ! -f "$dll_path" ]]; then
echo "Missing release DLL: $dll_path" >&2
exit 1
fi
local output_dir
output_dir="artifacts"
mkdir -p "$output_dir"
local zip_path
zip_path="$output_dir/tubearchivistmetadata_${version}.zip"
rm -f "$zip_path"
local package_dir
package_dir="$(mktemp -d)"
trap 'rm -rf "'"$package_dir"'"' EXIT
cp "$dll_path" "$package_dir/Jellyfin.Plugin.TubeArchivistMetadata.dll"
TZ=UTC touch -t 198001010000 "$package_dir/Jellyfin.Plugin.TubeArchivistMetadata.dll"
(
cd "$package_dir"
TZ=UTC zip -X -q "$root/$zip_path" Jellyfin.Plugin.TubeArchivistMetadata.dll
)
local entry_count
entry_count="$(zipinfo -1 "$zip_path" | wc -l | tr -d ' ')"
if [[ "$entry_count" != "1" ]]; then
echo "Unexpected zip entry count: $entry_count" >&2
zipinfo -1 "$zip_path" >&2
exit 1
fi
local entry_name
entry_name="$(zipinfo -1 "$zip_path")"
if [[ "$entry_name" != "Jellyfin.Plugin.TubeArchivistMetadata.dll" ]]; then
echo "Unexpected zip entry: $entry_name" >&2
exit 1
fi
md5sum "$zip_path" | cut -d' ' -f1
}
main "$@"