release-nuget/action.yaml

58 lines
1.5 KiB
YAML

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