Skip to content

Commit ea8169f

Browse files
SystemKeeperbackportbot[bot]
authored andcommitted
chore: Group storage runs
chore: Group storage runs Assisted-by: ClaudeCode:claude-opus-5 Signed-off-by: Marcel Müller <marcel-mueller@gmx.de> [skip ci]
1 parent b50277f commit ea8169f

6 files changed

Lines changed: 112 additions & 82 deletions

File tree

.github/workflows/files-external.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
# SPDX-License-Identifier: MIT
33
name: PHPUnit files_external generic
44
on:
5-
pull_request:
6-
schedule:
7-
- cron: "5 2 * * *"
5+
workflow_call:
86

97
permissions:
108
contents: read
@@ -48,9 +46,8 @@ jobs:
4846
4947
files-external-generic:
5048
runs-on: ubuntu-latest
51-
needs: changes
5249

53-
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
50+
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
5451

5552
strategy:
5653
fail-fast: false

.github/workflows/integration-s3-primary.yml

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,11 @@
22
# SPDX-License-Identifier: MIT
33
name: S3 primary storage integration tests
44
on:
5-
pull_request:
5+
workflow_call:
66

77
permissions:
88
contents: read
99

10-
concurrency:
11-
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
12-
cancel-in-progress: true
13-
1410
jobs:
1511
changes:
1612
runs-on: ubuntu-latest-low
@@ -47,9 +43,8 @@ jobs:
4743
4844
integration-s3-primary:
4945
runs-on: ubuntu-latest
50-
needs: changes
5146

52-
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
47+
if: github.repository_owner != 'nextcloud-gmbh'
5348

5449
strategy:
5550
fail-fast: false
@@ -118,16 +113,3 @@ jobs:
118113
cat data/nextcloud.log
119114
docker ps -a
120115
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
121-
122-
123-
s3-primary-integration-summary:
124-
permissions:
125-
contents: none
126-
runs-on: ubuntu-latest-low
127-
needs: [changes, integration-s3-primary]
128-
129-
if: always()
130-
131-
steps:
132-
- name: Summary status
133-
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-s3-primary.result != 'success' }}; then exit 1; fi

.github/workflows/object-storage-azure.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@
22
# SPDX-License-Identifier: MIT
33
name: Object storage azure
44
on:
5-
pull_request:
6-
schedule:
7-
- cron: "15 2 * * *"
5+
workflow_call:
86

97
permissions:
108
contents: read
119

12-
concurrency:
13-
group: object-storage-azure-${{ github.head_ref || github.run_id }}
14-
cancel-in-progress: true
15-
1610
jobs:
1711
changes:
1812
runs-on: ubuntu-latest-low
@@ -48,9 +42,8 @@ jobs:
4842
4943
azure-primary-tests:
5044
runs-on: ubuntu-latest
51-
needs: changes
5245

53-
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
46+
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
5447

5548
strategy:
5649
fail-fast: false
@@ -118,13 +111,3 @@ jobs:
118111
run: |
119112
docker ps -a
120113
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
121-
122-
azure-primary-summary:
123-
runs-on: ubuntu-latest-low
124-
needs: [changes, azure-primary-tests]
125-
126-
if: always()
127-
128-
steps:
129-
- name: Summary status
130-
run: if ${{ needs.changes.outputs.src != 'false' && needs.azure-primary-tests.result != 'success' }}; then exit 1; fi

.github/workflows/object-storage-s3.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@
22
# SPDX-License-Identifier: MIT
33
name: Object storage S3
44
on:
5-
pull_request:
6-
schedule:
7-
- cron: "15 2 * * *"
5+
workflow_call:
86

97
permissions:
108
contents: read
119

12-
concurrency:
13-
group: object-storage-s3-${{ github.head_ref || github.run_id }}
14-
cancel-in-progress: true
15-
1610
jobs:
1711
changes:
1812
runs-on: ubuntu-latest-low
@@ -48,9 +42,8 @@ jobs:
4842
4943
s3-primary-tests-minio:
5044
runs-on: ubuntu-latest
51-
needs: changes
5245

53-
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
46+
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
5447

5548
strategy:
5649
fail-fast: false
@@ -123,13 +116,3 @@ jobs:
123116
run: |
124117
docker ps -a
125118
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
126-
127-
s3-primary-summary:
128-
runs-on: ubuntu-latest-low
129-
needs: [changes,s3-primary-tests-minio]
130-
131-
if: always()
132-
133-
steps:
134-
- name: Summary status
135-
run: if ${{ needs.changes.outputs.src != 'false' && needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi

.github/workflows/object-storage-swift.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@
22
# SPDX-License-Identifier: MIT
33
name: Object storage Swift
44
on:
5-
pull_request:
6-
schedule:
7-
- cron: "15 2 * * *"
5+
workflow_call:
86

97
permissions:
108
contents: read
119

12-
concurrency:
13-
group: object-storage-swift-${{ github.head_ref || github.run_id }}
14-
cancel-in-progress: true
15-
1610
jobs:
1711
changes:
1812
runs-on: ubuntu-latest-low
@@ -48,9 +42,8 @@ jobs:
4842
4943
swift-primary-tests:
5044
runs-on: ubuntu-latest
51-
needs: changes
5245

53-
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
46+
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
5447

5548
strategy:
5649
fail-fast: false
@@ -114,13 +107,3 @@ jobs:
114107
run: |
115108
docker ps -a
116109
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
117-
118-
swift-primary-summary:
119-
runs-on: ubuntu-latest-low
120-
needs: [changes,swift-primary-tests]
121-
122-
if: always()
123-
124-
steps:
125-
- name: Summary status
126-
run: if ${{ needs.changes.outputs.src != 'false' && needs.swift-primary-tests.result != 'success' }}; then exit 1; fi

.github/workflows/storage.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
2+
# SPDX-License-Identifier: MIT
3+
4+
name: Storage
5+
6+
on:
7+
pull_request:
8+
schedule:
9+
- cron: "5 2 * * *"
10+
11+
permissions:
12+
contents: read
13+
14+
concurrency:
15+
group: storage-${{ github.head_ref || github.run_id }}
16+
cancel-in-progress: true
17+
18+
# GitHub allows a maximum of 20 reusable workflows per caller
19+
jobs:
20+
changes:
21+
runs-on: ubuntu-latest-low
22+
permissions:
23+
contents: read
24+
pull-requests: read
25+
26+
outputs:
27+
src: ${{ steps.changes.outputs.src }}
28+
files-external: ${{ steps.changes.outputs.files-external }}
29+
integration: ${{ steps.changes.outputs.integration }}
30+
31+
steps:
32+
- uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
33+
id: changes
34+
continue-on-error: true
35+
with:
36+
filters: |
37+
shared: &shared
38+
- '3rdparty/**'
39+
- 'vendor/**'
40+
- 'vendor-bin/**'
41+
- 'composer.json'
42+
- 'composer.lock'
43+
- 'apps/files/lib/**'
44+
- 'apps/files/tests/**'
45+
- 'apps/files_external/**'
46+
- 'apps/files_sharing/lib/**'
47+
- 'apps/files_sharing/tests/**'
48+
- 'apps/files_trashbin/lib/**'
49+
- 'apps/files_trashbin/tests/**'
50+
- 'apps/files_versions/lib/**'
51+
- 'apps/files_versions/tests/**'
52+
- 'lib/private/Files/**'
53+
- 'lib/public/Files/**'
54+
- 'tests/lib/Files/**'
55+
src:
56+
- *shared
57+
- '.github/workflows/**'
58+
files-external:
59+
- *shared
60+
- '.github/workflows/files-external.yml'
61+
integration:
62+
- 'build/integration/**'
63+
64+
files-external:
65+
needs: changes
66+
if: needs.changes.outputs.files-external != 'false'
67+
uses: ./.github/workflows/files-external.yml
68+
69+
object-storage-azure:
70+
needs: changes
71+
if: needs.changes.outputs.src != 'false'
72+
uses: ./.github/workflows/object-storage-azure.yml
73+
74+
object-storage-s3:
75+
needs: changes
76+
if: needs.changes.outputs.src != 'false'
77+
uses: ./.github/workflows/object-storage-s3.yml
78+
79+
object-storage-swift:
80+
needs: changes
81+
if: needs.changes.outputs.src != 'false'
82+
uses: ./.github/workflows/object-storage-swift.yml
83+
84+
integration-s3-primary:
85+
needs: changes
86+
if: needs.changes.outputs.src != 'false' || needs.changes.outputs.integration != 'false'
87+
uses: ./.github/workflows/integration-s3-primary.yml
88+
89+
summary:
90+
permissions:
91+
contents: none
92+
runs-on: ubuntu-latest-low
93+
needs: [changes, files-external, object-storage-azure, object-storage-s3, object-storage-swift, integration-s3-primary]
94+
95+
if: always()
96+
97+
name: storage-summary
98+
99+
steps:
100+
# Skipped jobs are fine, they mean no relevant changes were detected
101+
- name: Summary status
102+
run: if ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}; then exit 1; fi

0 commit comments

Comments
 (0)