Skip to content

Commit dc74936

Browse files
committed
Add automated build and trusted nuget deployment pipelines
1 parent 35c731b commit dc74936

2 files changed

Lines changed: 84 additions & 0 deletions

File tree

.github/workflows/cd.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: CD (Publish to NuGet & GitHub Release)
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v[0-9].*'
7+
8+
jobs:
9+
deploy:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
id-token: write
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Setup .NET SDKs
22+
uses: actions/setup-dotnet@v4
23+
with:
24+
dotnet-version: |
25+
8.0.x
26+
9.0.x
27+
10.0.x
28+
29+
- name: Extract Version from Tag
30+
id: get_version
31+
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
32+
33+
- name: Restore dependencies
34+
run: dotnet restore
35+
36+
- name: Pack NuGet Package
37+
run: dotnet pack src/Refit.Composite/Refit.Composite.csproj --configuration Release /p:PackageVersion=${{ env.VERSION }} --output ./dist
38+
39+
- name: NuGet login (OIDC)
40+
uses: NuGet/login@v1
41+
id: nuget_login
42+
43+
- name: Push to NuGet.org
44+
run: dotnet nuget push ./dist/*.nupkg --api-key ${{ steps.nuget_login.outputs.NUGET_API_KEY }} --source https://nuget.org --skip-duplicate
45+
46+
- name: Create GitHub Release
47+
uses: softprops/action-gh-release@v2
48+
with:
49+
tag_name: ${{ github.ref_name }}
50+
name: Release ${{ github.ref_name }}
51+
generate_release_notes: true
52+
files: ./dist/*.nupkg

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: CI (Build & Test)
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build-and-test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Setup .NET SDKs
18+
uses: actions/setup-dotnet@v4
19+
with:
20+
dotnet-version: |
21+
8.0.x
22+
9.0.x
23+
10.0.x
24+
25+
- name: Restore dependencies
26+
run: dotnet restore
27+
28+
- name: Build Solution
29+
run: dotnet build --configuration Release --no-restore
30+
31+
- name: Run Tests
32+
run: dotnet test --configuration Release --no-build --verbosity normal

0 commit comments

Comments
 (0)