commit 17d587b7ca8cde4225ec26fa222b9d39d7e1daba Author: qxa Date: Tue Mar 25 18:44:42 2025 +0800 6.0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..501fd22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vs +.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..51ca89c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# aspnet发布nuget插件 \ No newline at end of file diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..3ac4832 --- /dev/null +++ b/action.yaml @@ -0,0 +1,57 @@ +name: release-nuget +description: 自动发布nuget +author: qxa + +inputs: + source: + required: true + description: 发布的nuget地址 + key: + required: true + description: 发布nuget包的凭证 + projects: + required: true + description: 要发布的项目名称列表 + nuget_dir: + description: nuget包还原地址,如需缓存请挂载目录 + required: false + default: nuget + +runs: + using: composite + steps: + - name: 给脚本配置权限 + shell: bash + env: + script: | + #! /bin/bash + + dotnet --version + + projects=(${INPUT_PROJECTS//,/ }) + + for project in ${projects[@]}; do + echo "dotnet restore $project" + dotnet restore $project --packages ${{ inputs.nuget_dir }} + dotnet build -c Release $project --packages ${{ inputs.nuget_dir }} + dotnet pack $project -c Release + publish_name=$(find $project/bin/Release/ -maxdepth 1 -type f -name "*" -print | head -n 1) + dotnet nuget push -s $INPUT_SOURCE -k $INPUT_KEY --skip-duplicate $publish_name + done + run: | + echo "$script">entrypoint.sh + chmod +x entrypoint.sh + + - name: 在docker中运行 + uses: docker://dotnet/sdk:6.0 + with: + entrypoint: ./entrypoint.sh + + source: ${{ inputs.source }} + key: ${{ inputs.key }} + projects: ${{ inputs.projects }} + + - name: 删除生成的文件 + shell: bash + run: | + rm -f entrypoint.sh