-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (115 loc) · 3.32 KB
/
dotnet.yml
File metadata and controls
135 lines (115 loc) · 3.32 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
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
name: Deploy WorklogManagement (main)
on:
push:
branches: [ "main" ]
workflow_dispatch:
concurrency:
group: worklogmanagement-main
cancel-in-progress: false
env:
REPO_DIR: /srv/repos/WorklogManagement
PUBLISH_DIR: /srv/publish/WorklogManagement
API_PROJ: /srv/repos/WorklogManagement/WorklogManagement.API
UI_PROJ: /srv/repos/WorklogManagement/WorklogManagement.UI
API_OUT: /srv/publish/WorklogManagement/WorklogManagement.API
UI_OUT: /srv/publish/WorklogManagement/WorklogManagement.UI
DOTNET_ROOT: /opt/dotnet
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
ASPNETCORE_ENVIRONMENT: CI
jobs:
update:
runs-on: [self-hosted, Linux, X64]
steps:
- name: Update Repo
run: |
set -euo pipefail
git -C "${REPO_DIR}" checkout main
git -C "${REPO_DIR}" pull
build:
runs-on: [self-hosted, Linux, X64]
needs: update
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v4
env:
DOTNET_INSTALL_DIR: ${{ runner.temp }}/.dotnet
with:
dotnet-version: 10.x.x
cache: false
- name: /opt/dotnet/dotnet --info
run: /opt/dotnet/dotnet --info
- name: Restore API
run: |
sudo /opt/dotnet/dotnet restore "${API_PROJ}"
- name: Restore UI
run: |
sudo /opt/dotnet/dotnet restore "${UI_PROJ}"
- name: Build API
shell: bash
run: |
set -euo pipefail
sudo /opt/dotnet/dotnet build "${API_PROJ}"
- name: Build UI
shell: bash
run: |
set -euo pipefail
sudo /opt/dotnet/dotnet build "${UI_PROJ}"
deploy:
runs-on: [self-hosted, Linux, X64]
needs: build
steps:
- name: Remove Last API Publish
shell: bash
run: |
set -euo pipefail
sudo rm -rf "${API_OUT}" || true
- name: Remove Last UI Publish
shell: bash
run: |
set -euo pipefail
sudo rm -rf "${UI_OUT}" || true
- name: Publish API
shell: bash
run: |
set -euo pipefail
sudo /opt/dotnet/dotnet publish "${API_PROJ}" -o "${API_OUT}"
- name: Publish UI
shell: bash
run: |
set -euo pipefail
sudo /opt/dotnet/dotnet publish "${UI_PROJ}" -o "${UI_OUT}"
restart:
runs-on: [self-hosted, Linux, X64]
needs: deploy
steps:
- name: WorklogManagement-WM.API neu starten
shell: bash
run: |
set -euo pipefail
sudo systemctl restart WorklogManagement-WM.API
- name: Status WorklogManagement-WM.API
shell: bash
if: always()
run: |
sudo systemctl status WorklogManagement-WM.API --no-pager || true
- name: WorklogManagement-WM.UI neu starten
shell: bash
run: |
set -euo pipefail
sudo systemctl restart WorklogManagement-WM.UI
- name: Status WorklogManagement-WM.UI
shell: bash
if: always()
run: |
sudo systemctl status WorklogManagement-WM.UI --no-pager || true
- name: nginx neu starten
shell: bash
run: |
set -euo pipefail
sudo systemctl restart nginx
- name: Status nginx
shell: bash
if: always()
run: |
sudo systemctl status nginx --no-pager || true