2323 SOLUTION_FILE : ' src/Steeltoe.All.sln'
2424
2525jobs :
26- package :
27- name : Build and Package
26+ build :
27+ name : Build
2828 timeout-minutes : 15
2929 runs-on : ubuntu-latest
3030
3636 8.0.*
3737 9.0.*
3838
39- - name : Install code signing tool
40- run : dotnet tool install --global sign --prerelease
41-
4239 - name : Git checkout
4340 uses : actions/checkout@v4
4441 with :
4744 - name : Restore packages
4845 run : dotnet restore ${{ env.SOLUTION_FILE }} --verbosity minimal
4946
47+ - name : Set package version
48+ run : nbgv cloud
49+
50+ - name : Build solution
51+ run : dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal
52+
53+ - name : Collect packages
54+ run : dotnet pack ${{ env.SOLUTION_FILE }} --no-build --configuration Release --output ${{ github.workspace }}/packages
55+
56+ - name : Upload packages
57+ uses : actions/upload-artifact@v4
58+ with :
59+ name : packages
60+ path : ${{ github.workspace }}/packages/**/*.nupkg
61+
62+
63+ sign :
64+ needs : build
65+ runs-on : windows-latest
66+ # if: ${{ github.ref == 'refs/heads/main' }} # Only run this job on pushes to the main branch
67+ # if: ${{ github.event_name != 'pull_request' }}
68+ permissions :
69+ id-token : write
70+
71+ steps :
72+ - name : Download packages
73+ uses : actions/download-artifact@v4
74+ with :
75+ name : packages
76+ path : packages
77+
78+ - name : Setup .NET
79+ uses : actions/setup-dotnet@v4
80+ with :
81+ dotnet-version : |
82+ 8.0.*
83+ 9.0.*
84+
85+ - name : Install code signing tool
86+ run : dotnet tool install --global sign --prerelease
87+
88+ - name : Azure login
89+ uses : azure/login@v2
90+ with :
91+ allow-no-subscriptions : true
92+ client-id : ${{ secrets.AZURE_CLIENT_ID }}
93+ tenant-id : ${{ secrets.AZURE_TENANT_ID }}
94+ subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
95+
96+ - name : Sign packages
97+ shell : pwsh
98+
99+ run : >-
100+ # sign code azure-key-vault "**/*.nupkg"
101+ # --base-directory "${{ github.workspace }}/packages"
102+ # --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URL }}"
103+ # --azure-key-vault-tenant-id "${{ secrets.AZURE_KEY_VAULT_TENANT_ID }}"
104+ # --azure-key-vault-client-id "${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }}"
105+ # --azure-key-vault-client-secret "${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }}"
106+ # --azure-key-vault-certificate "${{ secrets.AZURE_KEY_VAULT_CERTIFICATE }}"
107+ # --publisher-name "Steeltoe"
108+ # --description "Steeltoe"
109+ # --description-url "https://github.com/SteeltoeOSS"
110+ sign code azure-key-vault "**/*.nupkg"
111+ --base-directory "${{ github.workspace }}/packages"
112+ --publisher-name "Steeltoe"
113+ --description "Steeltoe"
114+ --description-url "https://github.com/SteeltoeOSS"
115+ --azure-key-vault-managed-identity true
116+ --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URL }}"
117+ --azure-key-vault-certificate "${{ secrets.AZURE_KEY_VAULT_CERTIFICATE }}"
50118
119+ - name : " TEMP: Upload signed packages"
120+ uses : actions/upload-artifact@v4
121+ with :
122+ name : signed-packages
123+ path : ${{ github.workspace }}/packages/**/*.nupkg
124+
125+
126+
127+
51128# - task: PowerShell@2
52129# displayName: Set package version
53130# env:
@@ -70,27 +147,7 @@ jobs:
70147# }
71148#
72149# nbgv cloud
73- - name : Set package version
74- run : nbgv cloud
75150
76- - name : Build solution
77- run : dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal
78-
79- - name : Collect NuGet packages
80- run : dotnet pack ${{ env.SOLUTION_FILE }} --no-build --configuration Release --output ${{ github.workspace }}/packages
81-
82- - name : Sign NuGet packages
83- # if: ${{ github.event_name != 'pull_request' }}
84- run : >-
85- sign code azure-key-vault "**/*.nupkg"
86- --base-directory "${{ github.workspace }}/packages"
87- --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URL }}"
88- --azure-key-vault-tenant-id "${{ secrets.AZURE_KEY_VAULT_TENANT_ID }}"
89- --azure-key-vault-client-id "${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }}"
90- --azure-key-vault-client-secret "${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }}"
91- --azure-key-vault-certificate "${{ secrets.AZURE_KEY_VAULT_CERTIFICATE }}"
92- --description "Steeltoe"
93- --description-url "https://github.com/SteeltoeOSS"
94151
95152# TODO: Rename secrets
96153# source: https://dev.azure.com/SteeltoeOSS/Steeltoe/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=1&path=PackageSigningSecrets
@@ -101,12 +158,6 @@ jobs:
101158# SignKeyVaultUrl
102159# SignTenantId
103160
104- - name : " TEMP: Upload packages to artifacts"
105- uses : actions/upload-artifact@v4
106- with :
107- name : packages
108- path : artifacts/packages
109-
110161
111162
112163# - publish: $(Build.ArtifactStagingDirectory)/packages
@@ -115,3 +166,5 @@ jobs:
115166# artifact: Packages
116167
117168# TODO: Delete old yaml file.
169+
170+ # https://github.com/dotnet/sign/blob/main/docs/gh-build-and-sign.yml
0 commit comments