refactor: tidy pack entrypoint output
This commit is contained in:
+51
-35
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user