refactor: tidy pack entrypoint output

This commit is contained in:
2026-05-16 14:44:28 +00:00
parent d37f4d0ac0
commit 1278613447
+51 -35
View File
@@ -1,56 +1,72 @@
#!/bin/bash
#!/usr/bin/env bash
echo "=================================================="
set -euo pipefail
echo "參數檢查"
separator() {
printf '%s\n' "=================================================="
}
echo "--------------------------------------------------"
section() {
printf '\n%s\n' "$1"
printf '%s\n' "--------------------------------------------------"
}
# 顯示 GITEA_SERVER_URL 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "GITEA_SERVER_URL=$GITEA_SERVER_URL" && ([ -z "$GITEA_SERVER_URL" ] || [ "$GITEA_SERVER_URL" = "null" ]) && exit 1
require_var() {
local name="$1"
local value="${!name:-}"
# 顯示 GITEA_REPOSITORY 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "GITEA_REPOSITORY=$GITEA_REPOSITORY" && ([ -z "$GITEA_REPOSITORY" ] || [ "$GITEA_REPOSITORY" = "null" ]) && exit 1
printf '%s=%s\n' "$name" "$value"
if [ -z "$value" ] || [ "$value" = "null" ]; then
printf '錯誤: %s 不可為空或 null\n' "$name" >&2
exit 1
fi
}
# 顯示 CONFIGURATION 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "CONFIGURATION=$CONFIGURATION" && ([ -z "$CONFIGURATION" ] || [ "$CONFIGURATION" = "null" ]) && exit 1
separator
section "參數檢查"
# 顯示 RELEASE_PROJECT 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_PROJECT=$RELEASE_PROJECT" && ([ -z "$RELEASE_PROJECT" ] || [ "$RELEASE_PROJECT" = "null" ]) && exit 1
require_var GITEA_SERVER_URL
require_var GITEA_REPOSITORY
require_var CONFIGURATION
require_var RELEASE_PROJECT
require_var RELEASE_VERSION
require_var RELEASE_AUTHOR
require_var RELEASE_COMPANY
require_var RELEASE_DESCRIPTION
# 顯示 RELEASE_VERSION 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_VERSION=$RELEASE_VERSION" && ([ -z "$RELEASE_VERSION" ] || [ "$RELEASE_VERSION" = "null" ]) && exit 1
readonly RELEASE_COPYRIGHT="Copyright (c) $(date +%Y) ${RELEASE_COMPANY}"
readonly RELEASE_URL="${GITEA_SERVER_URL}/${GITEA_REPOSITORY}/src/branch/master"
readonly OUTPUT_DIR="${WORKSPACE}/output"
# 顯示 RELEASE_AUTHOR 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_AUTHOR=$RELEASE_AUTHOR" && ([ -z "$RELEASE_AUTHOR" ] || [ "$RELEASE_AUTHOR" = "null" ]) && exit 1
printf 'RELEASE_COPYRIGHT=%s\n' "$RELEASE_COPYRIGHT"
printf 'RELEASE_URL=%s\n' "$RELEASE_URL"
printf 'OUTPUT_DIR=%s\n' "$OUTPUT_DIR"
# 顯示 RELEASE_COMPANY 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_COMPANY=$RELEASE_COMPANY" && ([ -z "$RELEASE_COMPANY" ] || [ "$RELEASE_COMPANY" = "null" ]) && exit 1
section "打包 NUGET 套件"
# 組合 RELEASE_COPYRIGHT 參數並顯示
RELEASE_COPYRIGHT=$(date +%Y)
RELEASE_COPYRIGHT="Copyright©$RELEASE_COPYRIGHT $RELEASE_COMPANY" && echo "RELEASE_COPYRIGHT=$RELEASE_COPYRIGHT"
if [ ! -d "$RELEASE_PROJECT" ]; then
printf '錯誤: 找不到專案目錄 %s\n' "$RELEASE_PROJECT" >&2
exit 1
fi
# 顯示 RELEASE_DESCRIPTION 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
echo "RELEASE_DESCRIPTION=$RELEASE_DESCRIPTION" && ([ -z "$RELEASE_DESCRIPTION" ] || [ "$RELEASE_DESCRIPTION" = "null" ]) && exit 1
mkdir -p "$OUTPUT_DIR"
echo "=================================================="
printf '專案目錄=%s\n' "$RELEASE_PROJECT"
printf '組建配置=%s\n' "$CONFIGURATION"
printf '版本號=%s\n' "$RELEASE_VERSION"
echo "打包 NUGET 套件"
echo "--------------------------------------------------"
# 組合來源連結
RELEASE_URL="$GITEA_SERVER_URL/$GITEA_REPOSITORY/src/branch/master"
# 打包 NUGET 套件
cd $RELEASE_PROJECT && dotnet pack -c "$CONFIGURATION" -o "$WORKSPACE/output" \
cd "$RELEASE_PROJECT"
dotnet pack \
-c "$CONFIGURATION" \
-o "$OUTPUT_DIR" \
/p:PackageVersion="$RELEASE_VERSION" \
/p:RepositoryUrl="$RELEASE_URL" \
/p:RepositoryType="git" \
/p:RepositoryType=git \
/p:Authors="$RELEASE_AUTHOR" \
/p:Company="$RELEASE_COMPANY" \
/p:Copyright="$RELEASE_COPYRIGHT" \
/p:Description="$RELEASE_DESCRIPTION"
echo "=================================================="
section "完成"
printf '輸出位置=%s\n' "$OUTPUT_DIR"
separator