Skip to content
This repository was archived by the owner on Aug 1, 2021. It is now read-only.

Commit 9152abb

Browse files
Merge pull request #36 from brunohbrito/dev
CI/CD
2 parents f48038a + b3a27a1 commit 9152abb

File tree

8 files changed

+283
-29
lines changed

8 files changed

+283
-29
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# v1.2.3
2+
3+
Bug fixes
4+
Added scrips for CI/CD. One pipeline for prs and another after pr was accepted
5+
16
# v1.2.2
27

38
Added ENV for Default User and Pass, to autofill Login Page. Specially made for Dev and Docker environments

azure-pipelines.pr.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# ASP.NET Core
2+
# Build and test ASP.NET Core projects targeting .NET Core.
3+
# Add steps that run tests, create a NuGet package, deploy, and more:
4+
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
5+
6+
trigger:
7+
- master
8+
9+
variables:
10+
BuildConfiguration: 'Release'
11+
12+
jobs:
13+
14+
- job: 'net_core'
15+
displayName: '.NET Core Build'
16+
pool:
17+
vmImage: 'ubuntu-latest'
18+
steps:
19+
- task: DotNetCoreCLI@2
20+
displayName: '.NET Core - Restore'
21+
inputs:
22+
command: 'restore'
23+
projects: './src'
24+
feedsToUse: 'select'
25+
26+
- task: DotNetCoreCLI@2
27+
displayName: '.NET Core - Build'
28+
inputs:
29+
command: 'build'
30+
arguments: '-c $(BuildConfiguration) --no-restore'
31+
projects: './src'
32+
33+
- task: DotNetCoreCLI@2
34+
displayName: '.NET Core - Run Tests'
35+
inputs:
36+
command: 'test'
37+
projects: './src'
38+
39+
# Angular APP's
40+
- job: 'angular'
41+
displayName: 'Angular Build'
42+
pool:
43+
vmImage: 'ubuntu-latest'
44+
steps:
45+
# Admin UI
46+
- task: Npm@1
47+
displayName: 'NPM - Install - AdminUI'
48+
inputs:
49+
command: install
50+
workingDir: src/Frontend/Jp.AdminUI
51+
52+
- task: Npm@1
53+
displayName: 'NPM - Install - UserManagement'
54+
inputs:
55+
command: install
56+
workingDir: src/Frontend/Jp.UserManagement
57+
58+
- task: Npm@1
59+
displayName: 'NPM - Build Prod - AdminUI'
60+
inputs:
61+
command: custom
62+
customCommand: 'run build --prod --base-href=/admin-ui/'
63+
workingDir: src/Frontend/Jp.AdminUI
64+
65+
- task: Npm@1
66+
displayName: 'NPM - Build Prod - UserManagement'
67+
inputs:
68+
command: custom
69+
customCommand: 'run build --prod --base-href=/user-management/'
70+
workingDir: src/Frontend/Jp.UserManagement

azure-pipelines.yml

Lines changed: 160 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,168 @@
33
# Add steps that run tests, create a NuGet package, deploy, and more:
44
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
55

6-
pool:
7-
vmImage: 'Ubuntu 16.04'
6+
trigger:
7+
- master
88

99
variables:
10-
buildConfiguration: 'Release'
10+
BuildConfiguration: 'Release'
1111

12-
steps:
13-
- script: dotnet build ./src --configuration $(buildConfiguration)
14-
displayName: 'dotnet build $(buildConfiguration)'
12+
jobs:
13+
14+
- job: 'net_core'
15+
displayName: '.NET Core Build'
16+
pool:
17+
vmImage: 'ubuntu-latest'
18+
steps:
19+
- task: DotNetCoreCLI@2
20+
displayName: '.NET Core - Restore'
21+
inputs:
22+
command: 'restore'
23+
projects: './src'
24+
feedsToUse: 'select'
25+
26+
- task: DotNetCoreCLI@2
27+
displayName: '.NET Core - Build'
28+
inputs:
29+
command: 'build'
30+
arguments: '-c $(BuildConfiguration) --no-restore'
31+
projects: './src'
32+
33+
- task: DotNetCoreCLI@2
34+
displayName: '.NET Core - Run Tests'
35+
inputs:
36+
command: 'test'
37+
projects: './src'
1538

16-
- script: dotnet test ./src
17-
displayName: 'Running tests'
39+
- task: DotNetCoreCLI@2
40+
displayName: 'Publish - SSO'
41+
inputs:
42+
command: 'publish'
43+
publishWebProjects: false
44+
projects: '**/Jp.UI.SSO.csproj'
45+
arguments: '-c $(BuildConfiguration) -o $(Build.StagingDirectory)/sso --no-build'
46+
zipAfterPublish: false
47+
modifyOutputPath: false
48+
workingDirectory: './src/Frontend/Jp.UI.SSO'
49+
50+
- task: DotNetCoreCLI@2
51+
displayName: 'Publish - API'
52+
inputs:
53+
command: 'publish'
54+
publishWebProjects: false
55+
projects: '**/Jp.Management.csproj'
56+
arguments: '-c $(BuildConfiguration) -o $(Build.StagingDirectory)/api --no-build'
57+
zipAfterPublish: false
58+
modifyOutputPath: false
59+
workingDirectory: './src/Backend/Jp.UserManagement'
60+
61+
- task: ArchiveFiles@2
62+
displayName: 'Zip - SSO'
63+
inputs:
64+
rootFolderOrFile: '$(Build.StagingDirectory)/sso/'
65+
includeRootFolder: false
66+
archiveType: 'zip'
67+
archiveFile: '$(Build.ArtifactStagingDirectory)/jpproject.sso.$(Build.BuildNumber).zip'
68+
replaceExistingArchive: true
69+
70+
- task: ArchiveFiles@2
71+
displayName: 'Zip - API'
72+
inputs:
73+
rootFolderOrFile: '$(Build.StagingDirectory)/api/'
74+
includeRootFolder: false
75+
archiveType: 'zip'
76+
archiveFile: '$(Build.ArtifactStagingDirectory)/jpproject.api.$(Build.BuildNumber).zip'
77+
replaceExistingArchive: true
78+
79+
- task: PublishBuildArtifacts@1
80+
displayName: 'Artifact - Generate SSO'
81+
inputs:
82+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/jpproject.sso.$(Build.BuildNumber).zip'
83+
ArtifactName: 'jpproject.sso.$(Build.BuildNumber)'
84+
publishLocation: 'Container'
85+
86+
- task: PublishBuildArtifacts@1
87+
displayName: 'Artifact - Generate API'
88+
inputs:
89+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/jpproject.api.$(Build.BuildNumber).zip'
90+
ArtifactName: 'jpproject.api.$(Build.BuildNumber)'
91+
publishLocation: 'Container'
92+
93+
# Angular APP's
94+
- job: 'angular'
95+
displayName: 'Angular Build'
96+
pool:
97+
vmImage: 'ubuntu-latest'
98+
steps:
99+
# Admin UI
100+
- task: Npm@1
101+
displayName: 'NPM - Install - AdminUI'
102+
inputs:
103+
command: install
104+
workingDir: src/Frontend/Jp.AdminUI
105+
106+
- task: Npm@1
107+
displayName: 'NPM - Install - UserManagement'
108+
inputs:
109+
command: install
110+
workingDir: src/Frontend/Jp.UserManagement
111+
112+
- task: Npm@1
113+
displayName: 'NPM - Build Prod - AdminUI'
114+
inputs:
115+
command: custom
116+
customCommand: 'run build --prod --base-href=/admin-ui/'
117+
workingDir: src/Frontend/Jp.AdminUI
118+
119+
- task: Npm@1
120+
displayName: 'NPM - Build Prod - UserManagement'
121+
inputs:
122+
command: custom
123+
customCommand: 'run build --prod --base-href=/user-management/'
124+
workingDir: src/Frontend/Jp.UserManagement
125+
126+
- task: CopyFiles@2
127+
displayName: 'COPY - web.config - AdminUI'
128+
inputs:
129+
SourceFolder: '$(Build.Repository.LocalPath)/build'
130+
Contents: 'web.config'
131+
TargetFolder: '$(Build.Repository.LocalPath)/src/Frontend/Jp.AdminUI/dist/'
132+
133+
- task: CopyFiles@2
134+
displayName: 'COPY - web.config - UserManagement'
135+
inputs:
136+
SourceFolder: '$(Build.Repository.LocalPath)/build'
137+
Contents: 'web.config'
138+
TargetFolder: '$(Build.Repository.LocalPath)/src/Frontend/Jp.UserManagement/dist/'
139+
140+
- task: ArchiveFiles@2
141+
displayName: 'ZIP - AdminUI'
142+
inputs:
143+
rootFolderOrFile: 'src/Frontend/Jp.AdminUI/dist/'
144+
includeRootFolder: false
145+
archiveType: 'zip'
146+
archiveFile: '$(Build.ArtifactStagingDirectory)/jpproject.admin-ui.$(Build.BuildNumber).zip'
147+
replaceExistingArchive: true
148+
149+
- task: ArchiveFiles@2
150+
displayName: 'ZIP - UserManagement'
151+
inputs:
152+
rootFolderOrFile: 'src/Frontend/Jp.UserManagement/dist/'
153+
includeRootFolder: false
154+
archiveType: 'zip'
155+
archiveFile: '$(Build.ArtifactStagingDirectory)/jpproject.user-management.$(Build.BuildNumber).zip'
156+
replaceExistingArchive: true
157+
158+
- task: PublishBuildArtifacts@1
159+
displayName: 'Artifact - Generate - AdminUI'
160+
inputs:
161+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/jpproject.admin-ui.$(Build.BuildNumber).zip'
162+
ArtifactName: 'jpproject.admin-ui.$(Build.BuildNumber)'
163+
publishLocation: 'Container'
18164

165+
- task: PublishBuildArtifacts@1
166+
displayName: 'Artifact - Generate - UserManagement'
167+
inputs:
168+
PathtoPublish: '$(Build.ArtifactStagingDirectory)/jpproject.user-management.$(Build.BuildNumber).zip'
169+
ArtifactName: 'jpproject.user-management.$(Build.BuildNumber)'
170+
publishLocation: 'Container'

build/web.config

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<!-- WEB Config for Argular APPS -->
2+
<?xml version="1.0" encoding="utf-8"?>
3+
<configuration>
4+
<system.web>
5+
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
6+
</system.web>
7+
<system.webServer>
8+
<handlers>
9+
<remove name="aspNetCore" />
10+
</handlers>
11+
<security>
12+
<requestFiltering>
13+
<requestLimits maxQueryString="32768"/>
14+
</requestFiltering>
15+
</security>
16+
<rewrite>
17+
<rules>
18+
<rule name="Angular" stopProcessing="true">
19+
<match url="^(?!.*(.js|.bundle.map|.bundle.js.gz|.bundle.css|.bundle.css.gz|.png|.jpg|.ico|.chunk.js|.woff|.woff2|api|.eot|.svg|.ttf|assets|.css)).*$" ignoreCase="false" />
20+
<conditions logicalGrouping="MatchAll">
21+
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false"/>
22+
</conditions>
23+
<action type="Rewrite" url="/user-management/" appendQueryString="true" />
24+
</rule>
25+
</rules>
26+
</rewrite>
27+
<staticContent>
28+
<remove fileExtension=".svg" />
29+
<remove fileExtension=".eot" />
30+
<remove fileExtension=".woff" />
31+
<remove fileExtension=".woff2" />
32+
<remove fileExtension=".json" />
33+
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
34+
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
35+
<mimeMap fileExtension=".woff" mimeType="application/x-woff" />
36+
<mimeMap fileExtension=".woff2" mimeType="application/x-woff" />
37+
<mimeMap fileExtension=".json" mimeType="application/json" />
38+
</staticContent>
39+
</system.webServer>
40+
</configuration>

src/Backend/Jp.Infra.CrossCutting.Database/DbSettingsConfig.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static void ConfigureDatabase(this IServiceCollection services, IConfigur
1717
case "MYSQL":
1818
services.AddIdentityMySql(connString);
1919
break;
20-
case "SQL":
20+
case "SQLSERVER":
2121
services.AddIdentitySqlServer(connString);
2222
break;
2323
case "POSTGRESQL":
@@ -35,7 +35,7 @@ public static void ConfigureIdentityServerDatabase(this IIdentityServerBuilder b
3535
case "MYSQL":
3636
builder.UseIdentityServerMySqlDatabase(connString);
3737
break;
38-
case "SQL":
38+
case "SQLSERVER":
3939
builder.UseIdentityServerSqlDatabase(connString);
4040
break;
4141
case "POSTGRESQL":
@@ -44,4 +44,4 @@ public static void ConfigureIdentityServerDatabase(this IIdentityServerBuilder b
4444
}
4545
}
4646
}
47-
}
47+
}

src/Backend/Jp.Infra.CrossCutting.Identity/Jp.Infra.CrossCutting.Identity.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.2.0" />
1616
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
1717
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="2.2.0" />
18-
1918
</ItemGroup>
2019
<ItemGroup>
2120
<PackageReference Include="MailKit" Version="2.2.0" />

src/Backend/Jp.Infra.CrossCutting.IdentityServer/Jp.Infra.CrossCutting.IdentityServer.csproj

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,15 @@
1010
<None Remove="Migrations\**" />
1111
</ItemGroup>
1212

13-
13+
14+
1415
<ItemGroup>
1516
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.4.0" />
16-
<PackageReference Include="IdentityServer4.EntityFramework" Version="2.4.0" />
17-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
18-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4">
19-
<PrivateAssets>all</PrivateAssets>
20-
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
21-
</PackageReference>
2217
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
23-
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
2418
</ItemGroup>
2519

26-
20+
21+
2722
<ItemGroup>
2823
<ProjectReference Include="..\Jp.Infra.CrossCutting.Identity\Jp.Infra.CrossCutting.Identity.csproj" />
2924
<ProjectReference Include="..\Jp.Infra.Data\Jp.Infra.Data.csproj" />
Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
@@ -14,11 +14,4 @@
1414
<ProjectReference Include="..\Jp.Application\Jp.Application.csproj" />
1515
<ProjectReference Include="..\Jp.Domain\Jp.Domain.csproj" />
1616
</ItemGroup>
17-
18-
<ItemGroup>
19-
<Reference Include="Microsoft.Extensions.Configuration">
20-
<HintPath>C:\Users\Bruno\.nuget\packages\microsoft.extensions.configuration\2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
21-
</Reference>
22-
</ItemGroup>
23-
2417
</Project>

0 commit comments

Comments
 (0)