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