2222 default : false
2323 type : boolean
2424
25+ permissions :
26+ contents : read
27+ packages : write
28+ attestations : write
29+ id-token : write
30+
2531env :
2632 REGISTRY : ghcr.io
2733 REPOSITORY_URL : github.com/${{ github.repository }}
@@ -33,42 +39,51 @@ jobs:
3339 detect-changes :
3440 runs-on : ubuntu-latest
3541 outputs :
36- user-management : ${{ steps.filter.outputs.user-management }}
37- sticker-award : ${{ steps.filter.outputs.sticker-award }}
38- sticker-catalogue : ${{ steps.filter.outputs.sticker-catalogue }}
39- web-backend : ${{ steps.filter.outputs.web-backend }}
40- web-frontend : ${{ steps.filter.outputs.web-frontend }}
41- shared : ${{ steps.filter.outputs.shared }}
42- any-service : ${{ steps.filter.outputs.user-management == 'true' || steps.filter.outputs.sticker-award == 'true' || steps.filter.outputs.sticker-catalogue == 'true' || steps.filter.outputs.web-backend == 'true' || steps.filter.outputs.web-frontend == 'true' }}
42+ user-management : ${{ steps.changes.outputs.user-management }}
43+ sticker-award : ${{ steps.changes.outputs.sticker-award }}
44+ sticker-catalogue : ${{ steps.changes.outputs.sticker-catalogue }}
45+ web-backend : ${{ steps.changes.outputs.web-backend }}
46+ web-frontend : ${{ steps.changes.outputs.web-frontend }}
47+ shared : ${{ steps.changes.outputs.shared }}
4348 steps :
4449 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
50+ with :
51+ fetch-depth : 0
4552
4653 - name : Detect changed paths
47- uses : dorny/paths-filter@v3
48- id : filter
49- with :
50- filters : |
51- user-management:
52- - 'user-management/**'
53- sticker-award:
54- - 'sticker-award/**'
55- sticker-catalogue:
56- - 'sticker-catalogue/**'
57- web-backend:
58- - 'web-backend/**'
59- web-frontend:
60- - 'web-frontend/**'
61- shared:
62- - 'shared/**'
63- workflows:
64- - '.github/**'
54+ id : changes
55+ run : |
56+ if [ "${{ github.event_name }}" = "pull_request" ]; then
57+ BASE_SHA=${{ github.event.pull_request.base.sha }}
58+ HEAD_SHA=${{ github.event.pull_request.head.sha }}
59+ else
60+ # For push events, compare with parent commit
61+ BASE_SHA=${{ github.event.before }}
62+ HEAD_SHA=${{ github.sha }}
63+ fi
64+
65+ # Get list of changed files
66+ CHANGED_FILES=$(git diff --name-only $BASE_SHA $HEAD_SHA 2>/dev/null || echo "")
67+
68+ # Check each service directory
69+ echo "user-management=$(echo "$CHANGED_FILES" | grep -q '^user-management/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
70+ echo "sticker-award=$(echo "$CHANGED_FILES" | grep -q '^sticker-award/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
71+ echo "sticker-catalogue=$(echo "$CHANGED_FILES" | grep -q '^sticker-catalogue/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
72+ echo "web-backend=$(echo "$CHANGED_FILES" | grep -q '^web-backend/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
73+ echo "web-frontend=$(echo "$CHANGED_FILES" | grep -q '^web-frontend/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
74+ echo "shared=$(echo "$CHANGED_FILES" | grep -q '^shared/' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
75+
76+ echo "Changed files:"
77+ echo "$CHANGED_FILES"
6578
6679 # ============================================================================
6780 # USER MANAGEMENT SERVICE (.NET)
6881 # ============================================================================
82+ # TEMPORARY: 'true' added to force all builds - remove after testing
6983 user-management-build :
7084 needs : detect-changes
7185 if : |
86+ true ||
7287 github.event.inputs.force-all == 'true' ||
7388 github.event_name == 'push' ||
7489 needs.detect-changes.outputs.user-management == 'true' ||
@@ -128,9 +143,11 @@ jobs:
128143 # ============================================================================
129144 # STICKER AWARD SERVICE (Go)
130145 # ============================================================================
146+ # TEMPORARY: 'true' added to force all builds - remove after testing
131147 sticker-award-build :
132148 needs : detect-changes
133149 if : |
150+ true ||
134151 github.event.inputs.force-all == 'true' ||
135152 github.event_name == 'push' ||
136153 needs.detect-changes.outputs.sticker-award == 'true' ||
@@ -169,9 +186,11 @@ jobs:
169186 # ============================================================================
170187 # STICKER CATALOGUE SERVICE (Java)
171188 # ============================================================================
189+ # TEMPORARY: 'true' added to force all builds - remove after testing
172190 sticker-catalogue-build :
173191 needs : detect-changes
174192 if : |
193+ true ||
175194 github.event.inputs.force-all == 'true' ||
176195 github.event_name == 'push' ||
177196 needs.detect-changes.outputs.sticker-catalogue == 'true' ||
@@ -211,9 +230,11 @@ jobs:
211230 # ============================================================================
212231 # WEB BACKEND SERVICE (Node.js)
213232 # ============================================================================
233+ # TEMPORARY: 'true' added to force all builds - remove after testing
214234 web-backend-build :
215235 needs : detect-changes
216236 if : |
237+ true ||
217238 github.event.inputs.force-all == 'true' ||
218239 github.event_name == 'push' ||
219240 needs.detect-changes.outputs.web-backend == 'true' ||
0 commit comments