1+ name : Manually build release-ready NuGet package
2+
3+ on :
4+ workflow_dispatch : ~
5+
6+ jobs :
7+ build :
8+ name : Build Release-Ready NuGet Package
9+ runs-on : windows-latest
10+ steps :
11+ - name : Checkout repository
12+ uses : actions/checkout@v4
13+
14+ - name : Install .NET SDK
15+ uses : actions/setup-dotnet@v3
16+ with :
17+ # .NET 5 is deprecated and removed from GitHub Actions, we need to manually install it
18+ dotnet-version : |
19+ 5.x.x
20+ 8.x.x
21+
22+ - name : Setup Nuget
23+ uses : NuGet/setup-nuget@v1.1.1
24+
25+ - name : Restore NuGet Packages
26+ run : make restore
27+
28+ - name : Set up dotnet tools and dependencies
29+ run : make install
30+
31+ - name : Set up authenticity certificate
32+ run : |
33+ echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
34+ shell : bash
35+
36+ - name : Set variables
37+ id : variables
38+ run : |
39+ echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
40+ echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
41+ echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
42+ echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
43+ echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH
44+ echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH
45+ echo "C:\Program Files\DigiCert\DigiCert Keylocker Tools" >> $GITHUB_PATH
46+ shell : bash
47+
48+ - name : Setup Keylocker KSP on Windows
49+ run : |
50+ curl -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/Keylockertools-windows-x64.msi/download -H "x-api-key:%SM_API_KEY%" -o Keylockertools-windows-x64.msi
51+ msiexec /i Keylockertools-windows-x64.msi /quiet /qn
52+ smksp_registrar.exe list
53+ smctl.exe keypair ls
54+ C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
55+ shell : cmd
56+
57+ - name : Sync Certificates
58+ run : |
59+ smctl windows certsync
60+ shell : cmd
61+
62+ - name : Build and Sign NuGet package
63+ run : |
64+ call scripts\win\build_release_nuget.bat EasyPost EasyPostNETStrongNameSigning.snk "${{ secrets.SM_CODE_SIGNING_CERT_SHA1_HASH }}" Release
65+ shell : cmd
66+
67+ - name : Upload NuGet package to Action output
68+ uses : actions/upload-artifact@v4
69+ with :
70+ path : " *.nupkg"
0 commit comments