11name : Package
22
33on :
4- workflow_dispatch :
5- inputs :
6- deployToDevFeed :
7- description : ' Deploy to Dev Feed?'
8- required : false
9- default : ' false'
10- type : choice
11- options : [ 'false', 'true' ]
12- deployToNuGet :
13- description : ' Deploy to NuGet.org?'
14- required : false
15- default : ' false'
16- type : choice
17- options : [ 'false', 'true' ]
4+ workflow_dispatch : {}
185 push :
196 branches :
207 - main
218 - ' [0-9]+.x'
229 - ' release/*'
23- tags :
24- - v*
10+ release :
11+ types : [ published ]
2512 pull_request : {}
2613
2714concurrency :
4229 name : Build
4330 timeout-minutes : 15
4431 runs-on : ubuntu-latest
45- outputs :
46- sign_packages : ${{ steps.decisions.outputs.sign_packages }}
47- deploy_to_dev_feed : ${{ steps.decisions.outputs.deploy_to_dev_feed }}
48- deploy_to_nuget_org : ${{ steps.decisions.outputs.deploy_to_nuget_org }}
4932 steps :
5033 - name : Setup .NET
5134 uses : actions/setup-dotnet@v4
@@ -77,37 +60,11 @@ jobs:
7760 if-no-files-found : error
7861 name : unsigned-packages
7962 path : ${{ github.workspace }}/packages/**/*.nupkg
80- retention-days : 7
81-
82- - id : decisions
83- name : Make decisions based on workflow triggers
84- run : |
85- PUSH_TO_MAIN=$([[ "$GITHUB_EVENT_NAME" == "push" && "$GITHUB_REF" == "refs/heads/main" ]] && echo true || echo false)
86- PUSH_TAG=$([[ "$GITHUB_EVENT_NAME" == "push" && "$GITHUB_REF" == refs/tags/v* ]] && echo true || echo false)
87- DISPATCH_TO_DEV=$([[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" && "${{ github.event.inputs.deployToDevFeed }}" == "true" ]] && echo true || echo false)
88- DISPATCH_TO_NUGET=$([[ "$GITHUB_EVENT_NAME" == "workflow_dispatch" && "${{ github.event.inputs.deployToNuGet }}" == "true" ]] && echo true || echo false)
89-
90- if [[ "$PUSH_TO_MAIN" == true || "$PUSH_TAG" == true || "$DISPATCH_TO_NUGET" == true ]]; then
91- echo "sign_packages=true" >> $GITHUB_OUTPUT
92- echo "Packages will be signed"
93- else
94- echo "sign_packages=false" >> $GITHUB_OUTPUT
95- echo "Packages will NOT be signed"
96- fi
97-
98- if [[ "$DISPATCH_TO_DEV" == true || "$DISPATCH_TO_NUGET" == true || "$PUSH_TO_MAIN" == true || "$PUSH_TAG" == true ]]; then
99- echo "deploy_to_dev_feed=$DEPLOY_TO_DEV" >> $GITHUB_OUTPUT
100- echo "Packages will be deployed to development feed"
101- fi
102- if [[ "$DISPATCH_TO_NUGET" == true || "$PUSH_TAG" == true ]]; then
103- echo "deploy_to_nuget=$DEPLOY_TO_PROD" >> $GITHUB_OUTPUT
104- echo "Packages will be deployed to nuget.org"
105- fi
10663
10764 sign :
10865 needs : build
10966 runs-on : windows-latest
110- if : needs.build.outputs.sign_packages == 'true '
67+ if : github.event_name != 'pull_request '
11168 environment : Production
11269 permissions :
11370 id-token : write
@@ -153,42 +110,16 @@ jobs:
153110 name : signed-packages
154111 path : ${{ github.workspace }}/packages/**/*.nupkg
155112
156- az-artifacts-deploy-unsigned :
157- name : Deploy unsigned packages to Dev Feed
158- needs : build
159- if : needs.build.outputs.sign_packages != true && needs.build.outputs.deploy_to_dev_feed
160- runs-on : ubuntu-latest
161- steps :
162- - name : Setup .NET
163- uses : actions/setup-dotnet@v4
164- with :
165- dotnet-version : ' 8.0.x'
166- source-url : ${{ env.AZURE_ARTIFACTS_FEED_URL }}
167- env :
168- NUGET_AUTH_TOKEN : ${{ secrets.DEV_FEED_PERSONAL_TOKEN }}
169-
170- - name : Download unsigned packages
171- uses : actions/download-artifact@v4
172- with :
173- name : unsigned-packages
174- path : packages
175-
176- - name : Push unsigned packages to Azure Artifacts
177- run : dotnet nuget push packages/*.nupkg --api-key azdo-placeholder --source ${{ env.AZURE_ARTIFACTS_FEED_URL }}
178-
179- az-artifacts-deploy-signed :
113+ az-artifacts-deploy :
180114 name : Deploy signed packages to Dev Feed
181115 needs : [build, sign]
182- if : needs.build.outputs.sign_packages == true && needs.build.outputs.deploy_to_dev_feed
116+ if : github.event_name != 'pull_request'
183117 runs-on : ubuntu-latest
184118 steps :
185119 - name : Setup .NET
186120 uses : actions/setup-dotnet@v4
187121 with :
188122 dotnet-version : ' 8.0.x'
189- source-url : ${{ env.AZURE_ARTIFACTS_FEED_URL }}
190- env :
191- NUGET_AUTH_TOKEN : ${{ secrets.DEV_FEED_PERSONAL_TOKEN }}
192123
193124 - name : Download signed packages
194125 uses : actions/download-artifact@v4
@@ -197,12 +128,14 @@ jobs:
197128 path : packages
198129
199130 - name : Push signed packages to Azure Artifacts
200- run : dotnet nuget push packages/*.nupkg --api-key azdo-placeholder --source ${{ env.AZURE_ARTIFACTS_FEED_URL }}
131+ run : |
132+ dotnet nuget add source --name 'SteeltoeDevFeed' ${{ env.AZURE_ARTIFACTS_FEED_URL }}
133+ dotnet nuget push packages/*.nupkg --api-key ${{ secrets.DEV_FEED_PERSONAL_TOKEN }} --source 'SteeltoeDevFeed'
201134
202135 nuget-org-deploy :
203136 name : Deploy to nuget.org
204137 needs : [build, sign]
205- if : needs.build.outputs.deploy_to_nuget_org
138+ if : github.event_name == 'release'
206139 environment : nuget.org
207140 runs-on : ubuntu-latest
208141 steps :
0 commit comments