From 1ea27868dff60d6649304e8f663247ce095e010e Mon Sep 17 00:00:00 2001 From: qxa Date: Tue, 25 Mar 2025 18:34:59 +0800 Subject: [PATCH] 6.0 --- .gitattributes | 63 +++++++++++++++++++++++++++++++++++++++++++ .gitignore | 2 ++ README.md | 1 + action.yaml | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.md create mode 100644 action.yaml 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..c77afb5 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# aspnet编译插件 \ No newline at end of file diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..d0ea3b6 --- /dev/null +++ b/action.yaml @@ -0,0 +1,72 @@ +name: aspnet +description: build aspnet +author: qxa +inputs: + project_name: + description: 要编译的项目名称 + required: true + configuration: + description: 发布所对应的配置,默认值为 "Debug" + required: false + default: Release + runtime: + description: 要发布的目标运行时。在创建自包含部署时使用 + required: false + os: + description: 目标操作系统 + required: false + publish: + description: 输出目录 + required: false + default: publish + nuget_dir: + description: nuget包还原地址,如需缓存请挂载目录 + required: false + default: /opt/hostedtoolcache/.nuget/packages + +runs: + using: composite + steps: + - name: 给脚本配置权限 + shell: bash + env: + script: | + #! /bin/bash + + option="--no-self-contained -o $INPUT_PUBLISH -c $INPUT_CONFIGURATION" + + if [ -n "$INPUT_RUNTIME" ]; then + option="$option -r $INPUT_RUNTIME" + fi + + if [ -n "$INPUT_OS" ]; then + option="$option --os $INPUT_OS" + fi + + echo "option=$option" + + dotnet --version + + dotnet restore $INPUT_PROJECT_NAME --packages ${{ inputs.nuget_dir }} + dotnet build $INPUT_PROJECT_NAME --packages ${{ inputs.nuget_dir }} + dotnet publish $option $INPUT_PROJECT_NAME --packages ${{ inputs.nuget_dir }} + + run: | + echo "$script">entrypoint.sh + chmod +x entrypoint.sh + + - name: 在docker中编译 + uses: docker://dotnet/sdk:6.0 + with: + entrypoint: ./entrypoint.sh + + project_name: ${{ inputs.project_name }} + configuration: ${{ inputs.configuration }} + runtime: ${{ inputs.runtime }} + os: ${{ inputs.os }} + publish: ${{ inputs.publish }} + + - name: 删除文件 + shell: bash + run: | + rm -f entrypoint.sh