58 lines
1.5 KiB
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
|