-
Notifications
You must be signed in to change notification settings - Fork 0
76 lines (66 loc) · 3.04 KB
/
cd.yml
File metadata and controls
76 lines (66 loc) · 3.04 KB
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
name: CD
on:
push:
branches: [master]
jobs:
build-test-deploy:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Restore
run: dotnet restore
- name: Build Release
run: dotnet build --no-restore --configuration Release
- name: Test Application Layer
run: dotnet test MailCore.Application.Tests --configuration Release --no-build --verbosity normal
- name: Test Infrastructure Layer
run: dotnet test MailCore.Infrastructure.Tests --configuration Release --no-build --verbosity normal
- name: Publish
run: |
dotnet publish MailCore.API/MailCore.API.csproj `
--configuration Release `
--output publish_output `
--no-build
- name: Set out-of-process IIS hosting
shell: pwsh
run: |
(Get-Content publish_output/web.config) -replace 'hostingModel="inprocess"', 'hostingModel="outofprocess"' | Set-Content publish_output/web.config
- name: Bake production config
run: |
$config = Get-Content "publish_output/appsettings.Production.json" -Raw | ConvertFrom-Json
Add-Member -InputObject $config -NotePropertyName ConnectionStrings `
-NotePropertyValue ([PSCustomObject]@{ DefaultConnection = "$env:CONNECTIONSTRINGS__DEFAULTCONNECTION" }) -Force
$config.Jwt.Secret = "$env:JWT__SECRET"
$config.Jwt.Issuer = "$env:JWT__ISSUER"
$config.Jwt.Audience = "$env:JWT__AUDIENCE"
$config.FileStorage.RootPath = "$env:FILESTORAGE__ROOTPATH"
$config.Smtp.Host = "$env:SMTP__HOST"
$config.Smtp.Username = "$env:SMTP__USERNAME"
$config.Smtp.Password = "$env:SMTP__PASSWORD"
$config.Smtp.FromAddress = "$env:SMTP__FROMADDRESS"
$config.Smtp.FromName = "$env:SMTP__FROMNAME"
$config | ConvertTo-Json -Depth 10 `
| Set-Content "publish_output/appsettings.Production.json" -Encoding UTF8
env:
CONNECTIONSTRINGS__DEFAULTCONNECTION: ${{ secrets.CONNECTIONSTRINGS__DEFAULTCONNECTION }}
JWT__SECRET: ${{ secrets.JWT__SECRET }}
JWT__ISSUER: ${{ secrets.JWT__ISSUER }}
JWT__AUDIENCE: ${{ secrets.JWT__AUDIENCE }}
FILESTORAGE__ROOTPATH: ${{ secrets.FILESTORAGE__ROOTPATH }}
SMTP__HOST: ${{ secrets.SMTP__HOST }}
SMTP__USERNAME: ${{ secrets.SMTP__USERNAME }}
SMTP__PASSWORD: ${{ secrets.SMTP__PASSWORD }}
SMTP__FROMADDRESS: ${{ secrets.SMTP__FROMADDRESS }}
SMTP__FROMNAME: ${{ secrets.SMTP__FROMNAME }}
- name: Deploy via Web Deploy
uses: rasmusbuchholdt/simply-web-deploy@2.2.0
with:
website-name: site59440
server-computer-name: ${{ secrets.MONSTERASP_MSDEPLOY_URL }}
server-username: ${{ secrets.MONSTERASP_USERNAME }}
server-password: ${{ secrets.MONSTERASP_PASSWORD }}
source-path: \publish_output\
target-delete: true