1
+ name : .NET CI
2
+
3
+ env :
4
+ registryName : 4ipc27j2pg3fkmpnpreg.azurecr.io
5
+ repositoryName : techexcel/dotnetcoreapp
6
+ dockerFolderPath : ./src/Application/src/RazorPagesTestSample
7
+ tag : ${{github.run_number}}
8
+
9
+ on :
10
+ push :
11
+ branches : [ main ]
12
+ paths : src/Application/**
13
+ pull_request :
14
+ branches : [ main ]
15
+ paths : src/Application/**
16
+ # Allows you to run this workflow manually from the Actions tab
17
+ workflow_dispatch :
18
+ jobs :
19
+ build :
20
+
21
+ runs-on : ubuntu-latest
22
+
23
+ steps :
24
+ - uses : actions/checkout@v3
25
+ - name : Setup .NET
26
+ uses : actions/setup-dotnet@v3
27
+ with :
28
+ dotnet-version : 8.0
29
+
30
+ - name : Restore dependencies
31
+ run : dotnet restore ./src/Application/src/RazorPagesTestSample/RazorPagesTestSample.csproj
32
+ - name : Build
33
+ run : dotnet build --no-restore ./src/Application/src/RazorPagesTestSample/RazorPagesTestSample.csproj
34
+ - name : Test
35
+ run : dotnet test --no-build --verbosity normal ./src/Application/tests/RazorPagesTestSample.Tests/RazorPagesTestSample.Tests.csproj
36
+ - uses : actions/github-script@v6
37
+ if : failure()
38
+ with :
39
+ github-token : ${{secrets.GITHUB_TOKEN}}
40
+ script : |
41
+ let body = "${{ env.build_name }} Workflow Failure \n Build Number: ${{ github.run_number }} \n Build Log: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} \n SHA: [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) \n";
42
+ github.issues.create({
43
+ owner: context.repo.owner,
44
+ repo: context.repo.repo,
45
+ title: "${{ env.build_name }} Workflow ${{ github.run_number }} Failed! ",
46
+ body: body
47
+ });
48
+
49
+ dockerBuildPush :
50
+ runs-on : ubuntu-latest
51
+ needs : build
52
+
53
+ steps :
54
+ - uses : actions/checkout@v3
55
+
56
+ - name : Docker Login
57
+ # You may pin to the exact commit or the version.
58
+ # uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
59
+
60
+ with :
61
+ # Server address of Docker registry. If not set then will default to Docker Hub
62
+ registry : ${{ secrets.ACR_LOGIN_SERVER }}
63
+ # Username used to log against the Docker registry
64
+ username : ${{ secrets.ACR_USERNAME }}
65
+ # Password or personal access token used to log against the Docker registry
66
+ password : ${{ secrets.ACR_PASSWORD }}
67
+ # Log out from the Docker registry at the end of a job
68
+ logout : true
69
+
70
+ - name : Docker Build
71
+ run : docker build -t $registryName/$repositoryName:$tag --build-arg build_version=$tag $dockerFolderPath
72
+
73
+ - name : Docker Push
74
+ run : docker push $registryName/$repositoryName:$tag
75
+
76
+ deploy-to-dev :
77
+
78
+ runs-on : ubuntu-latest
79
+ needs : dockerBuildPush
80
+ environment :
81
+ name : dev
82
+ url : https://4ipc27j2pg3fk-dev.azurewebsites.net/
83
+
84
+ steps :
85
+ - name : ' Login via Azure CLI'
86
+
87
+ with :
88
+ creds : ${{ secrets.AZURE_CREDENTIALS }}
89
+
90
+ - uses : azure/webapps-deploy@v2
91
+ with :
92
+ app-name : ' 4ipc27j2pg3fk-dev'
93
+ images : 4ipc27j2pg3fkmpnpreg.azurecr.io/techexcel/dotnetcoreapp:${{github.run_number}}
94
+
95
+ deploy-to-test :
96
+
97
+ runs-on : ubuntu-latest
98
+ needs : deploy-to-dev
99
+ environment :
100
+ name : test
101
+ url : https://4ipc27j2pg3fk-test.azurewebsites.net/
102
+
103
+ steps :
104
+ - uses : actions/checkout@v3
105
+
106
+ - name : ' Login via Azure CLI'
107
+
108
+ with :
109
+ creds : ${{ secrets.AZURE_CREDENTIALS }}
110
+
111
+ - uses : azure/webapps-deploy@v2
112
+ with :
113
+ app-name : ' 4ipc27j2pg3fk-test'
114
+ images : 4ipc27j2pg3fkmpnpreg.azurecr.io/techexcel/dotnetcoreapp:${{github.run_number}}
115
+
116
+ deploy-to-prod :
117
+
118
+ runs-on : ubuntu-latest
119
+ needs : deploy-to-test
120
+ environment :
121
+ name : prod
122
+ url : https://4ipc27j2pg3fk-prod.azurewebsites.net/
123
+
124
+ steps :
125
+ - uses : actions/checkout@v3
126
+
127
+ - name : ' Login via Azure CLI'
128
+
129
+ with :
130
+ creds : ${{ secrets.AZURE_CREDENTIALS }}
131
+
132
+ - uses : azure/webapps-deploy@v2
133
+ with :
134
+ app-name : ' 4ipc27j2pg3fk-prod'
135
+ images : 4ipc27j2pg3fkmpnpreg.azurecr.io/techexcel/dotnetcoreapp:${{github.run_number}}
0 commit comments