Skip to content

Commit 62c7bfc

Browse files
committed
Initial commit
1 parent 919d7c3 commit 62c7bfc

15 files changed

+784
-1
lines changed

.github/FUNDING.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# These are supported funding model platforms
2+
3+
github: soenneker
4+
buy_me_a_coffee: soenneker
5+
thanks_dev: soenneker
6+
ko_fi: soenneker
7+
patreon: soenneker

.github/renovate.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"automerge": true,
4+
"prHourlyLimit": 0,
5+
"autoApprove": true
6+
}

.github/workflows/build-and-test.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: build-and-test
2+
on:
3+
# Testing - run for any PRs.
4+
pull_request:
5+
branches:
6+
- main
7+
8+
env:
9+
"PipelineEnvironment": true
10+
11+
jobs:
12+
build-and-test:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Setup .NET
19+
uses: actions/setup-dotnet@v4
20+
with:
21+
dotnet-version: 9.0.x
22+
23+
- name: Install dependencies with retry
24+
run: |
25+
retries=5
26+
base_wait_time=15
27+
exponent=2
28+
29+
for i in $(seq 1 $retries); do
30+
if dotnet restore; then
31+
break
32+
fi
33+
34+
if [ $i -lt $retries ]; then
35+
wait_time=$(awk "BEGIN {print int($base_wait_time * ($exponent ^ ($i - 1)))}")
36+
echo "dotnet restore failed, retrying in $wait_time seconds..."
37+
sleep $wait_time
38+
else
39+
echo "dotnet restore failed after $retries retries."
40+
exit 1
41+
fi
42+
done
43+
44+
- name: Build
45+
run: dotnet build --configuration Release --no-restore
46+
47+
- name: Test
48+
run: dotnet test test/Soenneker.Extensions.Logger.Tests/Soenneker.Extensions.Logger.Tests.csproj --no-restore --verbosity normal
49+
50+
- name: Pack
51+
run: dotnet pack --no-build --configuration Release --output .

.github/workflows/publish-package.yml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: publish-package
2+
on:
3+
push:
4+
branches:
5+
- main
6+
7+
tags:
8+
- v*
9+
10+
env:
11+
"PipelineEnvironment": true
12+
13+
jobs:
14+
publish-package:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Setting up build version
21+
run: |
22+
version=$(($GITHUB_RUN_NUMBER))
23+
echo "BUILD_VERSION=3.0.$version" >> ${GITHUB_ENV}
24+
25+
- name: Setup .NET
26+
uses: actions/setup-dotnet@v4
27+
with:
28+
dotnet-version: 9.0.x
29+
30+
- name: Install dependencies with retry
31+
run: |
32+
retries=5
33+
base_wait_time=15
34+
exponent=2
35+
36+
for i in $(seq 1 $retries); do
37+
if dotnet restore; then
38+
break
39+
fi
40+
41+
if [ $i -lt $retries ]; then
42+
wait_time=$(awk "BEGIN {print int($base_wait_time * ($exponent ^ ($i - 1)))}")
43+
echo "dotnet restore failed, retrying in $wait_time seconds..."
44+
sleep $wait_time
45+
else
46+
echo "dotnet restore failed after $retries retries."
47+
exit 1
48+
fi
49+
done
50+
51+
- name: Build
52+
run: dotnet build --configuration Release --no-restore
53+
54+
- name: Test
55+
run: dotnet test test/Soenneker.Extensions.Logger.Tests/Soenneker.Extensions.Logger.Tests.csproj --no-restore --verbosity normal
56+
57+
- name: Pack
58+
run: dotnet pack --no-build --configuration Release --output .
59+
60+
- name: Publish to NuGet with retry
61+
run: |
62+
nupkg_files=$(find . -name "*.nupkg")
63+
retries=5
64+
base_wait_time=20
65+
exponent=3.5
66+
67+
for i in $(seq 1 $retries); do
68+
if dotnet nuget push $nupkg_files --source 'https://api.nuget.org/v3/index.json' --api-key ${{secrets.NUGET_TOKEN}} --skip-duplicate; then
69+
break
70+
fi
71+
72+
if [ $i -lt $retries ]; then
73+
wait_time=$(awk "BEGIN {print int($base_wait_time * ($exponent ^ ($i - 1)))}")
74+
echo "NuGet publish failed, retrying in $wait_time seconds..."
75+
sleep $wait_time
76+
else
77+
echo "NuGet publish failed after $retries retries."
78+
exit 1
79+
fi
80+
done
81+
82+
- name: Add GitHub NuGet Source
83+
run: |
84+
dotnet nuget add source https://nuget.pkg.github.com/soenneker/index.json \
85+
--name "github" \
86+
--username "any" \
87+
--password ${{ secrets.GH_TOKEN }} \
88+
--store-password-in-clear-text
89+
90+
- name: Publish to GitHub Packages
91+
run: |
92+
dotnet nuget push ./*.nupkg \
93+
--source "github" \
94+
--api-key ${{ secrets.GH_TOKEN }}

0 commit comments

Comments
 (0)