add scripts/publish-insin.sh for manual insin package publish
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -360,4 +360,8 @@ MigrationBackup/
|
||||
.ionide/
|
||||
|
||||
# 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