add scripts/publish-insin.sh for manual insin package publish
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -361,3 +361,7 @@ MigrationBackup/
|
|||||||
|
|
||||||
# Fody - auto-generated XML schema
|
# Fody - auto-generated XML schema
|
||||||
FodyWeavers.xsd
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# Insin publish artifacts
|
||||||
|
.tools/
|
||||||
|
publish/
|
||||||
48
scripts/publish-insin.sh
Executable file
48
scripts/publish-insin.sh
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
: "${INSIN_URL:?INSIN_URL not set}"
|
||||||
|
: "${INSIN_TOKEN:?INSIN_TOKEN not set}"
|
||||||
|
|
||||||
|
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
cd "$repo_root"
|
||||||
|
|
||||||
|
version=$(dotnet msbuild EpsonPrintService/EpsonPrintService.csproj \
|
||||||
|
-getProperty:Version -nologo | tr -d '[:space:]')
|
||||||
|
echo "Publishing epson-print-service@${version}"
|
||||||
|
|
||||||
|
payload="publish/payload"
|
||||||
|
rm -rf publish && mkdir -p "$payload"
|
||||||
|
dotnet publish EpsonPrintService/EpsonPrintService.csproj \
|
||||||
|
-c Release -r linux-arm64 --self-contained true \
|
||||||
|
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true \
|
||||||
|
-o "$payload"
|
||||||
|
|
||||||
|
cp deploy/insin/install.cfg "$payload/"
|
||||||
|
cp deploy/insin/postinst "$payload/"
|
||||||
|
cp deploy/insin/prem "$payload/"
|
||||||
|
cp deploy/insin/epson.service "$payload/"
|
||||||
|
chmod +x "$payload/postinst" "$payload/prem"
|
||||||
|
|
||||||
|
mkdir -p .tools
|
||||||
|
manifest=$(curl -fsSL "$INSIN_URL/api/v1/downloads/cli")
|
||||||
|
cli_version=$(printf '%s' "$manifest" \
|
||||||
|
| python3 -c 'import json,sys; print(json.load(sys.stdin)[0]["version"])')
|
||||||
|
cli_filename=$(printf '%s' "$manifest" \
|
||||||
|
| python3 -c 'import json,sys; a=next(x for x in json.load(sys.stdin)[0]["artifacts"] if x["rid"]=="linux-arm64"); print(a["filename"])')
|
||||||
|
if [ ! -x ".tools/insin/insin" ] || [ "$(cat .tools/insin/.version 2>/dev/null)" != "$cli_version" ]; then
|
||||||
|
echo "Fetching insin CLI $cli_version"
|
||||||
|
curl -fsSL "$INSIN_URL/api/v1/downloads/cli/$cli_version/$cli_filename" -o /tmp/insin.tar.gz
|
||||||
|
rm -rf .tools/insin && mkdir -p .tools/insin
|
||||||
|
tar -xzf /tmp/insin.tar.gz -C .tools/insin
|
||||||
|
chmod +x .tools/insin/insin
|
||||||
|
echo "$cli_version" > .tools/insin/.version
|
||||||
|
fi
|
||||||
|
insin_bin="$repo_root/.tools/insin/insin"
|
||||||
|
|
||||||
|
( cd "$payload" && "$insin_bin" pack "epson-print-service@${version}" )
|
||||||
|
pkg="publish/packages/epson-print-service@${version}.pkg"
|
||||||
|
[ -f "$pkg" ] || { echo "expected $pkg missing"; exit 1; }
|
||||||
|
|
||||||
|
"$insin_bin" publish "$pkg"
|
||||||
|
echo "Published epson-print-service@${version}"
|
||||||
Reference in New Issue
Block a user