This repository has been archived by the owner on Aug 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (123 loc) · 5.56 KB
/
Feijuca.Keycloak.Auth.MultiTenancy-Build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: build_and_run_tests
on:
push:
branches: [ "main" ]
paths:
- 'src/Feijuca.Keycloak.Auth.MultiTenancy/**'
pull_request:
branches: [ "main" ]
paths:
- 'src/Feijuca.Keycloak.Auth.MultiTenancy/**'
env:
VERSION_UPDATE_TYPE: "value"
jobs:
build-project:
runs-on: ubuntu-latest
name: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup .NET Core @ Latest
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
env:
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore dependencies
run: dotnet restore src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
- name: Build
run: dotnet build --configuration Release src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
bump:
name: Update project version
runs-on: ubuntu-latest
needs: [build-project]
outputs:
version: ${{ steps.set-version.outputs.VERSION }}
version_update_type: ${{ steps.determine_update_type.outputs.VERSION_UPDATE_TYPE }}
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Determinar Tipo de Mudança
id: determine_update_type
run: |
LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
if echo "$LAST_COMMIT_MESSAGE" | grep -qiE "feat"; then
echo "VERSION_UPDATE_TYPE=MINOR" >> $GITHUB_OUTPUT
echo "VERSION_UPDATE_TYPE=MINOR" >> $GITHUB_ENV
elif echo "$LAST_COMMIT_MESSAGE" | grep -qiE "fix"; then
echo "VERSION_UPDATE_TYPE=REVISION" >> $GITHUB_OUTPUT
echo "VERSION_UPDATE_TYPE=REVISION" >> $GITHUB_ENV
else
echo "VERSION_UPDATE_TYPE=NONE" >> $GITHUB_OUTPUT
echo "VERSION_UPDATE_TYPE=NONE" >> $GITHUB_ENV
fi
- name: Print Update type
run: |
echo "Tipo de Mudança: ${{ steps.determine_update_type.outputs.VERSION_UPDATE_TYPE }}"
- name: Bump build version - Minor
if: env.VERSION_UPDATE_TYPE == 'MINOR'
id: bump-minor
uses: vers-one/dotnet-project-version-updater@v1.5
with:
file: src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
version: "*.^.0"
- name: Bump build version - Revision
if: env.VERSION_UPDATE_TYPE == 'REVISION'
id: bump-revision
uses: vers-one/dotnet-project-version-updater@v1.5
with:
file: src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
version: "*.*.^"
- name: Commit and push changes - MINOR
if: env.VERSION_UPDATE_TYPE == 'MINOR'
run: |
git config user.name "Build - Incrementing version | Github action"
git config user.email "deploy@spendmanagement.com"
git add .
git commit -m "CI: Updating application version ${{ steps.bump-minor.outputs.newVersion }}"
git push
- name: Commit and push changes - Revision
if: env.VERSION_UPDATE_TYPE == 'REVISION'
run: |
git config user.name "Build - Incrementing version | Github action"
git config user.email "deploy@spendmanagement.com"
git pull
git add .
git commit -m "CI: Updating application version ${{ steps.bump-revision.outputs.newVersion }}"
git push
- name: Set version - Revision
id: set-version
if: env.VERSION_UPDATE_TYPE == 'MINOR' || env.VERSION_UPDATE_TYPE == 'REVISION'
run: |
if [[ ${{ steps.determine_update_type.outputs.VERSION_UPDATE_TYPE }} == 'REVISION' ]]; then
echo "VERSION=${{ steps.bump-revision.outputs.newVersion }}" >> $GITHUB_OUTPUT
else
echo "VERSION=${{ steps.bump-minor.outputs.newVersion }}" >> $GITHUB_OUTPUT
fi
publish-nuGet-package:
runs-on: ubuntu-latest
env:
VERSION: ${{ needs.bump.outputs.version }}
VERSION_UPDATE_TYPE: ${{ needs.bump.outputs.version_update_type }}
needs: [bump]
name: Update NuGet package
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup .NET Core @ Latest
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
env:
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore dependencies
run: dotnet restore src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
- name: Build solution and generate NuGet package
if: github.ref == 'refs/heads/main' && env.VERSION_UPDATE_TYPE == 'MINOR' || env.VERSION_UPDATE_TYPE == 'REVISION'
run: |
dotnet build --no-restore --configuration Release src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj
dotnet pack src/Feijuca.Keycloak.Auth.MultiTenancy/Feijuca.Keycloak.MultiTenancy/Feijuca.Keycloak.MultiTenancy.csproj --no-build --configuration Release --output Feijuca.Keycloak.MultiTenancy/out
- name: Push generated package to NuGet
if: github.ref == 'refs/heads/main' && env.VERSION_UPDATE_TYPE == 'MINOR' || env.VERSION_UPDATE_TYPE == 'REVISION'
run: dotnet nuget push ./Feijuca.Keycloak.MultiTenancy/out/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json