@@ -19,63 +19,42 @@ concurrency:
1919
2020env :
2121 REPO_SLUG : centralized-logging
22- DOCKERHUB_NAMESPACE : " " # set to mirror to Docker Hub or leave empty
22+ DOCKERHUB_NAMESPACE : " " # set to mirror to Docker Hub or leave empty
2323 PLATFORMS : linux/amd64,linux/arm64
2424
2525jobs :
26- tests :
27- name : Build and Test (.NET)
28- runs-on : ubuntu-latest
29- steps :
30- - name : Checkout
31- uses : actions/checkout@v4
32-
33- - name : Setup .NET
34- uses : actions/setup-dotnet@v4
35- with :
36- dotnet-version : |
37- 9.0.x
38- 8.0.x
39-
40- - name : Restore
41- run : dotnet restore
42-
43- - name : Build
44- run : dotnet build --configuration Release --no-restore
45-
46- - name : Test
47- run : dotnet test --configuration Release --no-build --collect:"XPlat Code Coverage"
48- env :
49- DOTNET_CLI_TELEMETRY_OPTOUT : 1
50-
5126 images :
5227 name : Build and Push Images (GHCR)
5328 runs-on : ubuntu-latest
54- needs : tests
29+ # Push images only on master or version tags; still allows manual/PR runs for build validation
5530 if : >
56- github.event_name != 'pull_request' &&
57- (startsWith(github.ref, 'refs/heads/master') || startsWith(github.ref, 'refs/tags/v'))
31+ github.event_name == 'workflow_dispatch' ||
32+ startsWith(github.ref, 'refs/heads/master') ||
33+ startsWith(github.ref, 'refs/tags/v')
5834 env :
59- # Make secrets available as env so we can safely reference env.* in `if:`
35+ # expose secrets as env so conditions use env.* instead of secrets.*
6036 DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
6137 DOCKERHUB_TOKEN : ${{ secrets.DOCKERHUB_TOKEN }}
6238 steps :
6339 - name : Checkout
6440 uses : actions/checkout@v4
41+ with :
42+ fetch-depth : 0
6543
6644 - name : Set up QEMU
6745 uses : docker/setup-qemu-action@v3
6846
6947 - name : Set up Docker Buildx
7048 uses : docker/setup-buildx-action@v3
7149
50+ # Per-service metadata (tags)
7251 - name : Meta (userapi)
7352 id : meta_user
7453 uses : docker/metadata-action@v5
7554 with :
7655 images : ghcr.io/${{ github.repository_owner }}/${{ env.REPO_SLUG }}/userapi
7756 tags : |
78- type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') }}
57+ type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') || github.event_name == 'workflow_dispatch' }}
7958 type=raw,value=latest,enable=${{ startsWith(github.ref,'refs/heads/master') }}
8059 type=semver,pattern={{version}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
8160 type=semver,pattern={{major}}.{{minor}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
8665 with :
8766 images : ghcr.io/${{ github.repository_owner }}/${{ env.REPO_SLUG }}/api
8867 tags : |
89- type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') }}
68+ type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') || github.event_name == 'workflow_dispatch' }}
9069 type=raw,value=latest,enable=${{ startsWith(github.ref,'refs/heads/master') }}
9170 type=semver,pattern={{version}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
9271 type=semver,pattern={{major}}.{{minor}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
9776 with :
9877 images : ghcr.io/${{ github.repository_owner }}/${{ env.REPO_SLUG }}/web
9978 tags : |
100- type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') }}
79+ type=raw,value=edge,enable=${{ startsWith(github.ref,'refs/heads/master') || startsWith(github.ref,'refs/tags/v') || github.event_name == 'workflow_dispatch' }}
10180 type=raw,value=latest,enable=${{ startsWith(github.ref,'refs/heads/master') }}
10281 type=semver,pattern={{version}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
10382 type=semver,pattern={{major}}.{{minor}},enable=${{ startsWith(github.ref,'refs/tags/v') }}
@@ -157,4 +136,4 @@ jobs:
157136 mapfile -t USER_TAGS <<< "${{ steps.meta_user.outputs.tags }}"
158137 mapfile -t API_TAGS <<< "${{ steps.meta_api.outputs.tags }}"
159138 mapfile -t WEB_TAGS <<< "${{ steps.meta_web.outputs.tags }}"
160- mirror userapi "${USER_TAGS[@]}"; mirror api "${API_TAGS[@]}"; mirror web "${WEB_TAGS[@]}"
139+ mirror userapi "${USER_TAGS[@]}"; mirror api "${API_TAGS[@]}"; mirror web "${WEB_TAGS[@]}"
0 commit comments