pull file
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
This commit is contained in:
12
scripts/clean.cmd
Normal file
12
scripts/clean.cmd
Normal file
@@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
cd ..
|
||||
REM start to clean
|
||||
echo Start to clean all bin and obj folder under Noodle repo
|
||||
@echo on
|
||||
@for /d /r %%c in (obj) do @if exist "%%c" (@rd /s /q "%%c" & echo Delete %%c)
|
||||
@for /d /r %%c in (bin) do @if exist "%%c" (@rd /s /q "%%c" & echo Delete %%c)
|
||||
@for /d /r %%c in (packages) do @if exist "%%c" (@rd /s /q "%%c" & echo Delete %%c)
|
||||
@for /d /r %%c in (.vs) do @if exist "%%c" (@rd /s /q "%%c" & echo Delete %%c)
|
||||
@for /d /r %%c in (temp) do @if exist "%%c" (@rd /s /q "%%c" & echo Delete %%c)
|
||||
@echo off
|
||||
pause
|
||||
14
scripts/publish.bat
Normal file
14
scripts/publish.bat
Normal file
@@ -0,0 +1,14 @@
|
||||
::https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-publish
|
||||
::关闭回显
|
||||
@echo off
|
||||
|
||||
dotnet publish --configuration Release --self-contained false -o ./bin/Publish/net5-dependent
|
||||
echo "dotnet Ray.BiliBiliTool.Console.dll" > ./bin/Publish/net5-dependent/start.bat
|
||||
|
||||
::dotnet publish --configuration Release --runtime win-x86 --self-contained true -p:PublishTrimmed=true -o ./bin/Publish/win-x86-x64
|
||||
::dotnet publish --configuration Release --runtime linux-x64 --self-contained true -p:PublishTrimmed=true -o ./bin/Publish/linux-x64
|
||||
::dotnet publish --configuration Release --runtime linux-arm --self-contained true -p:PublishTrimmed=true -o ./bin/Publish/linux-arm
|
||||
::dotnet publish --configuration Release --runtime linux-arm64 --self-contained true -p:PublishTrimmed=true -o ./bin/Publish/linux-arm64
|
||||
::dotnet publish --configuration Release --runtime osx-x64 --self-contained true -p:PublishTrimmed=true -o ./bin/Publish/osx-x64
|
||||
|
||||
pause
|
||||
16
scripts/publish.ps1
Normal file
16
scripts/publish.ps1
Normal file
@@ -0,0 +1,16 @@
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime win-x86 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/win-x86
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime win-x64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/win-x64
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime win-arm64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/win-arm64
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime linux-x64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/linux-x64
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime linux-musl-x64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/linux-musl-x64
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime linux-arm64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/linux-arm64
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime linux-arm --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/linux-arm
|
||||
dotnet.exe publish ../src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj --runtime osx-x64 --no-self-contained -c Release -p:PublishSingleFile=true -o ./bin/Publish/osx-x64
|
||||
Remove-Item ./bin/Publish/win-x86/*.pdb
|
||||
Remove-Item ./bin/Publish/win-x64/*.pdb
|
||||
Remove-Item ./bin/Publish/win-arm64/*.pdb
|
||||
Remove-Item ./bin/Publish/linux-x64/*.pdb
|
||||
Remove-Item ./bin/Publish/linux-musl-x64/*.pdb
|
||||
Remove-Item ./bin/Publish/linux-arm64/*.pdb
|
||||
Remove-Item ./bin/Publish/linux-arm/*.pdb
|
||||
Remove-Item ./bin/Publish/osx-x64/*.pdb
|
||||
155
scripts/publish.sh
Normal file
155
scripts/publish.sh
Normal file
@@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
echo ' ____ _ _____ _ '
|
||||
echo ' | __ ) _| |_|_ _|__ ___ | | '
|
||||
echo ' | _ \(_) (_) | |/ _ \ / _ \| | '
|
||||
echo ' | |_) | | | | | | (_) | (_) | | '
|
||||
echo ' |____/|_|_|_| |_|\___/ \___/|_| '
|
||||
echo ''
|
||||
|
||||
# ------------vars-----------
|
||||
repoDir=$(dirname $PWD)
|
||||
consoleDir=$repoDir/src/Ray.BiliBiliTool.Console
|
||||
publishDir=$consoleDir/bin/Publish
|
||||
version=""
|
||||
runTime=""
|
||||
# --------------------------
|
||||
|
||||
read_params_from_init_cmd() {
|
||||
while [ $# -ne 0 ]; do
|
||||
name="$1"
|
||||
case "$name" in
|
||||
-r | --runtime | -[Rr]untime)
|
||||
shift
|
||||
runTime="$1"
|
||||
;;
|
||||
*)
|
||||
say_err "Unknown argument \`$name\`"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
read_var_from_user() {
|
||||
# runTime
|
||||
if [ -z "$runTime" ]; then
|
||||
read -p 'please input runTime("all" "win-x86" "win-x64" "win-arm64" "linux-x64" "linux-musl-x64" "linux-arm64" "linux-arm" "osx-x64")' runTime
|
||||
else
|
||||
echo "runTime: $runTime"
|
||||
fi
|
||||
}
|
||||
|
||||
get_version() {
|
||||
version=$(grep -oP '(?<=<Version>).*?(?=<\/Version>)' $repoDir/common.props)
|
||||
echo -e "current version: $version \n\n"
|
||||
|
||||
mkdir -p $publishDir
|
||||
|
||||
# 将版本号保存到文件
|
||||
echo "$version" > "$publishDir/version.txt"
|
||||
|
||||
echo "Version saved to $publishDir/version.txt"
|
||||
}
|
||||
|
||||
extract_release_notes() {
|
||||
echo "Extracting release notes from CHANGELOG.md..."
|
||||
mkdir -p $publishDir
|
||||
|
||||
# 提取最新的 changelog (从第一个 ## 标题到下一个 ## 标题之间的所有内容)
|
||||
sed -n '/^## /{p;:a;n;/^## /q;p;ba}' "$repoDir/CHANGELOG.md" > "$publishDir/release_notes.md"
|
||||
|
||||
echo "Release notes saved to $publishDir/release_notes.md"
|
||||
}
|
||||
|
||||
publish_dotnet_dependent() {
|
||||
echo "---------start publishing 【dotnet dependent】 release---------"
|
||||
|
||||
echo "clear output dir"
|
||||
local outputDir=$publishDir/dotnet-dependent
|
||||
mkdir -p $outputDir
|
||||
rm -rf $outputDir
|
||||
|
||||
cd $consoleDir
|
||||
echo "dotnet publish..."
|
||||
dotnet publish --configuration Release \
|
||||
--self-contained false \
|
||||
-p:PublishSingleFile=true \
|
||||
-p:DebugType=None \
|
||||
-p:DebugSymbols=false \
|
||||
-o $outputDir
|
||||
|
||||
echo "zip files..."
|
||||
cd $publishDir
|
||||
zip -q -r bilibili-tool-pro-v$version-dotnet-dependent.zip ./dotnet-dependent/*
|
||||
ls -l
|
||||
echo -e "---------publish successfully---------\n\n"
|
||||
}
|
||||
|
||||
publish_self_contained() {
|
||||
local runtime=$1
|
||||
echo "---------start publishing 【$runtime】 release---------"
|
||||
|
||||
echo "clear output dir"
|
||||
local outputDir=$publishDir/$runtime
|
||||
mkdir -p $outputDir
|
||||
rm -rf $outputDir
|
||||
|
||||
cd $consoleDir
|
||||
echo "dotnet publish..."
|
||||
dotnet publish --configuration Release \
|
||||
--self-contained true \
|
||||
--runtime $runtime \
|
||||
-p:PublishSingleFile=true \
|
||||
-p:DebugType=None \
|
||||
-p:DebugSymbols=false \
|
||||
-o $outputDir
|
||||
|
||||
echo "zip files..."
|
||||
cd $publishDir
|
||||
zip -q -r bilibili-tool-pro-v$version-$runtime.zip ./$runtime/*
|
||||
ls -l
|
||||
echo -e "---------publish successfully---------\n\n"
|
||||
}
|
||||
|
||||
publish_tencentScf() {
|
||||
echo "---------start publishing 【tencent scf】 release---------"
|
||||
cd $publishDir
|
||||
cp -r $repoDir/tencentScf/bootstrap $repoDir/tencentScf/index.sh ./linux-x64/
|
||||
cd ./linux-x64
|
||||
chmod 755 index.sh bootstrap
|
||||
zip -r ../bilibili-tool-pro-v$version-tencent-scf.zip ./*
|
||||
cd .. && ls
|
||||
echo -e "---------publish successfully---------\n\n"
|
||||
}
|
||||
|
||||
main() {
|
||||
read_params_from_init_cmd $*
|
||||
read_var_from_user
|
||||
|
||||
get_version
|
||||
extract_release_notes
|
||||
|
||||
# dotnet dependent
|
||||
publish_dotnet_dependent
|
||||
|
||||
# self contained
|
||||
# https://learn.microsoft.com/zh-cn/dotnet/core/rid-catalog
|
||||
array=("win-x86" "win-x64" "win-arm64" "linux-x64" "linux-musl-x64" "linux-arm64" "linux-arm" "linux-musl-arm64" "osx-x64")
|
||||
if [ "$runTime" != "all" ]; then
|
||||
array=("$runTime")
|
||||
fi
|
||||
for i in "${array[@]}"; do
|
||||
publish_self_contained $i
|
||||
done
|
||||
|
||||
if [ "$runTime" == "all" ]; then
|
||||
publish_tencentScf
|
||||
fi
|
||||
}
|
||||
|
||||
main $*
|
||||
19
scripts/ut.ps1
Normal file
19
scripts/ut.ps1
Normal file
@@ -0,0 +1,19 @@
|
||||
Set-Location ..
|
||||
|
||||
# 安装 ReportGenerator 工具
|
||||
Write-Output "Installing ReportGenerator tool..."
|
||||
dotnet tool install -g dotnet-reportgenerator-globaltool
|
||||
|
||||
# 运行单元测试并生成覆盖率报告
|
||||
Write-Output "Running unit tests and generating coverage report..."
|
||||
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=./TestResults/coverage.opencover.xml
|
||||
|
||||
# 生成html报告
|
||||
$coverageFiles = Get-ChildItem -Path . -Recurse -Filter "coverage.cobertura.xml"
|
||||
$coverageFiles | ForEach-Object { Write-Output $_.FullName }
|
||||
$reportPaths = ($coverageFiles | ForEach-Object { $_.FullName }) -join ";"
|
||||
reportgenerator "-reports:$reportPaths" "-targetdir:coveragereport" -reporttypes:Html
|
||||
|
||||
# 检查生成的覆盖率报告文件是否存在
|
||||
Write-Output "Coverage report generated successfully."
|
||||
Start-Process "coveragereport/index.htm"
|
||||
Reference in New Issue
Block a user