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

This commit is contained in:
2026-02-11 23:32:56 +08:00
commit e519cac94e
656 changed files with 45058 additions and 0 deletions

12
scripts/clean.cmd Normal file
View 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
View 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
View 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
View 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
View 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"