11
11
workflow_dispatch :
12
12
env :
13
13
DOTNET_NOLOGO : true
14
+ defaults :
15
+ run :
16
+ shell : pwsh
14
17
jobs :
15
18
windows-standalone :
16
19
if : ${{ github.actor != 'dependabot[bot]' }}
@@ -19,18 +22,17 @@ jobs:
19
22
- name : Check for secrets
20
23
env :
21
24
SECRETS_AVAILABLE : ${{ secrets.SECRETS_AVAILABLE }}
22
- shell : pwsh
23
25
run : exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
24
26
- name : Checkout
25
27
26
28
with :
27
29
fetch-depth : 0
28
30
- name : Setup .NET SDK
29
- uses : actions/setup-dotnet@v4.1.0
31
+ uses : actions/setup-dotnet@v4.3.1
30
32
with :
31
33
dotnet-version : 7.0.x
32
34
- name : Set up Node.js
33
- uses : actions/setup-node@v4.1 .0
35
+ uses : actions/setup-node@v4.3 .0
34
36
with :
35
37
node-version : 21.6.x
36
38
- name : Build Frontend
67
69
run : dotnet build src/Setup --configuration Release
68
70
# Upload artifacts
69
71
- name : Publish artifacts
70
- uses : actions/upload-artifact@v4.4.3
72
+ uses : actions/upload-artifact@v4.6.1
71
73
with :
72
74
name : artifacts
73
75
path : |
@@ -107,12 +109,11 @@ jobs:
107
109
name : linux-container
108
110
defaults :
109
111
run :
110
- shell : bash
112
+ shell : pwsh
111
113
steps :
112
114
- name : Check for secrets
113
115
env :
114
116
SECRETS_AVAILABLE : ${{ secrets.SECRETS_AVAILABLE }}
115
- shell : pwsh
116
117
run : exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
117
118
- name : Checkout
118
119
@@ -121,7 +122,6 @@ jobs:
121
122
- name : Install MinVer CLI
122
123
run : dotnet tool install --global minver-cli
123
124
- name : Determine version
124
- shell : pwsh
125
125
run : |
126
126
# Read settings from Custom.Build.props
127
127
[xml]$xml = Get-Content ./src/Custom.Build.props
@@ -131,7 +131,7 @@ jobs:
131
131
if (-not ($minMajorMinor -and $autoIncrement)) {
132
132
throw "Missing MinVer settings in Custom.Build.props"
133
133
}
134
-
134
+
135
135
# Execute MinVer
136
136
echo "MinVerVersion=$(minver --minimum-major-minor $minMajorMinor --auto-increment $autoIncrement)" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
137
137
- name : Validate build version
@@ -140,26 +140,47 @@ jobs:
140
140
with :
141
141
version : ${{ env.MinVerVersion }}
142
142
- name : Set up Docker Buildx
143
- uses : docker/setup-buildx-action@v3.7.1
143
+ uses : docker/setup-buildx-action@v3.10.0
144
144
- name : Log in to GitHub container registry
145
- run : echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
146
- - name : Build & inspect image
147
- env :
148
- TAG_NAME : ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || env.MinVerVersion }}
149
- run : |
150
- docker buildx build --push --tag ghcr.io/particular/servicepulse:${{ env.TAG_NAME }} \
151
- --file src/ServicePulse/Dockerfile \
152
- --build-arg VERSION=${{ env.MinVerVersion }} \
153
- --annotation "index:org.opencontainers.image.title=ServicePulse" \
154
- --annotation "index:org.opencontainers.image.description=ServicePulse provides real-time production monitoring for distributed applications. It monitors the health of a system's endpoints, detects processing errors, sends failed messages for reprocessing, and ensures the specific environment's needs are met, all in one consolidated dashboard." \
155
- --annotation "index:org.opencontainers.image.created=$(date '+%FT%TZ')" \
156
- --annotation "index:org.opencontainers.image.revision=${{ github.sha }}" \
157
- --annotation "index:org.opencontainers.image.authors=Particular Software" \
158
- --annotation "index:org.opencontainers.image.vendor=Particular Software" \
159
- --annotation "index:org.opencontainers.image.version=${{ env.MinVerVersion }}" \
160
- --annotation "index:org.opencontainers.image.source=https://github.com/${{ github.repository }}/tree/${{ github.sha }}" \
161
- --annotation "index:org.opencontainers.image.url=https://hub.docker.com/r/particular/servicepulse" \
162
- --annotation "index:org.opencontainers.image.documentation=https://docs.particular.net/servicepulse/" \
163
- --annotation "index:org.opencontainers.image.base.name=mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled-composite" \
164
- --platform linux/arm64,linux/amd64 .
165
- docker buildx imagetools inspect ghcr.io/particular/servicepulse:${{ env.TAG_NAME }}
145
+
146
+ with :
147
+ registry : ghcr.io
148
+ username : ${{ github.actor }}
149
+ password : ${{ secrets.GITHUB_TOKEN }}
150
+ - name : Get current date
151
+ id : date
152
+ run : echo "date=$(date '+%FT%TZ')" >> $GITHUB_OUTPUT
153
+ - name : Build and push image to GitHub container registry
154
+
155
+ with :
156
+ context : .
157
+ push : true
158
+ platforms : linux/amd64,linux/arm64
159
+ sbom : true
160
+ labels : |
161
+ org.opencontainers.image.source=https://github.com/Particular/ServicePulse/tree/${{ github.sha }}
162
+ org.opencontainers.image.authors="Particular Software"
163
+ org.opencontainers.image.vendor="Particular Software"
164
+ org.opencontainers.image.url=https://hub.docker.com/r/particular/servicepulse
165
+ org.opencontainers.image.documentation=https://docs.particular.net/servicepulse/
166
+ org.opencontainers.image.version=${{ env.MinVerVersion }}
167
+ org.opencontainers.image.revision=${{ github.sha }}
168
+ org.opencontainers.image.created=${{ steps.date.outputs.date }}
169
+ org.opencontainers.image.title=ServicePulse
170
+ org.opencontainers.image.description=ServicePulse provides real-time production monitoring for distributed applications. It monitors the health of a system's endpoints, detects processing errors, sends failed messages for reprocessing, and ensures the specific environment's needs are met, all in one consolidated dashboard.
171
+ org.opencontainers.image.base.name=mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled-composite
172
+ annotations : |
173
+ index:org.opencontainers.image.source=https://github.com/Particular/ServicePulse/tree/${{ github.sha }}
174
+ index:org.opencontainers.image.authors="Particular Software"
175
+ index:org.opencontainers.image.vendor="Particular Software"
176
+ index:org.opencontainers.image.url=https://hub.docker.com/r/particular/servicepulse
177
+ index:org.opencontainers.image.documentation=https://docs.particular.net/servicepulse/
178
+ index:org.opencontainers.image.version=${{ env.MinVerVersion }}
179
+ index:org.opencontainers.image.revision=${{ github.sha }}
180
+ index:org.opencontainers.image.created=${{ steps.date.outputs.date }}
181
+ index:org.opencontainers.image.title=ServicePulse
182
+ index:org.opencontainers.image.description=ServicePulse provides real-time production monitoring for distributed applications. It monitors the health of a system's endpoints, detects processing errors, sends failed messages for reprocessing, and ensures the specific environment's needs are met, all in one consolidated dashboard.
183
+ index:org.opencontainers.image.base.name=mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled-composite
184
+ file : src/ServicePulse/Dockerfile
185
+ tags : ghcr.io/particular/servicepulse:${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || env.MinVerVersion }}
186
+
0 commit comments