Skip to content

Commit 3adaa56

Browse files
committed
Merge branch 'main' into network-sources
2 parents ecda310 + 5bbe260 commit 3adaa56

303 files changed

Lines changed: 9685 additions & 2758 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/PR-Auto-Deploy-V2.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
pr_ref: ${{ steps.resolve.outputs.ref }}
3636
steps:
3737
- name: Harden Runner
38-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
38+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
3939
with:
4040
egress-policy: audit
4141

@@ -115,7 +115,7 @@ jobs:
115115

116116
steps:
117117
- name: Harden Runner
118-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
118+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
119119
with:
120120
egress-policy: audit
121121

@@ -184,7 +184,7 @@ jobs:
184184
fetch-depth: 0 # Fetch full history for commit hash detection
185185

186186
- name: Set up Docker Buildx
187-
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
187+
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
188188

189189
- name: Get version number
190190
id: versionNumber
@@ -193,7 +193,7 @@ jobs:
193193
echo "versionNumber=$VERSION" >> $GITHUB_OUTPUT
194194
195195
- name: Login to Docker Hub
196-
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
196+
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
197197
with:
198198
username: ${{ secrets.DOCKER_HUB_USERNAME }}
199199
password: ${{ secrets.DOCKER_HUB_API }}
@@ -320,7 +320,7 @@ jobs:
320320
# under the exact same access rules as the app preview.
321321
- name: Detect Storybook changes
322322
id: sb-changes
323-
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
323+
uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
324324
with:
325325
list-files: json
326326
filters: |
@@ -456,7 +456,7 @@ jobs:
456456

457457
steps:
458458
- name: Harden Runner
459-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
459+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
460460
with:
461461
egress-policy: audit
462462

.github/workflows/PR-Demo-Comment-with-react.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
enable_prototypes: ${{ steps.check-prototypes-flag.outputs.enable_prototypes }}
7171
steps:
7272
- name: Harden Runner
73-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
73+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
7474
with:
7575
egress-policy: audit
7676

@@ -183,7 +183,7 @@ jobs:
183183

184184
steps:
185185
- name: Harden Runner
186-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
186+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
187187
with:
188188
egress-policy: audit
189189

@@ -233,10 +233,10 @@ jobs:
233233
STIRLING_PDF_DESKTOP_UI: false
234234

235235
- name: Set up Docker Buildx
236-
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
236+
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
237237

238238
- name: Login to Docker Hub
239-
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
239+
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
240240
with:
241241
username: ${{ secrets.DOCKER_HUB_USERNAME }}
242242
password: ${{ secrets.DOCKER_HUB_API }}
@@ -474,7 +474,7 @@ jobs:
474474
runs-on: ubuntu-latest
475475
steps:
476476
- name: Harden Runner
477-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
477+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
478478
with:
479479
egress-policy: audit
480480

.github/workflows/PR-Demo-cleanup.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121

2222
steps:
2323
- name: Harden Runner
24-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
24+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
2525
with:
2626
egress-policy: audit
2727

.github/workflows/_runner-pick.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
is_fork: ${{ steps.decide.outputs.is_fork }}
3939
steps:
4040
- name: Harden the runner (Audit all outbound calls)
41-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
41+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
4242
with:
4343
egress-policy: audit
4444

.github/workflows/ai-engine.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
pull-requests: write
2121
steps:
2222
- name: Harden the runner (Audit all outbound calls)
23-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
23+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
2424
with:
2525
egress-policy: audit
2626

.github/workflows/ai_pr_title_review.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919

2020
steps:
2121
- name: Harden Runner
22-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
22+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
2323
with:
2424
egress-policy: audit
2525

@@ -87,7 +87,7 @@ jobs:
8787
- name: AI PR Title Analysis
8888
if: steps.actor.outputs.is_repo_dev == 'true'
8989
id: ai-title-analysis
90-
uses: actions/ai-inference@17ff458cb182449bbb2e43701fcd98f6af8f6570 # v2.1.0
90+
uses: actions/ai-inference@a7805884c80886efc241e94a5351df715968a0ad # v2.1.1
9191
with:
9292
model: openai/gpt-4o
9393
system-prompt-file: ".github/config/system-prompt.txt"

.github/workflows/aur-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
jar_sha256: ${{ steps.hashes.outputs.jar_sha256 }}
2727
steps:
2828
- name: Harden Runner
29-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
29+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
3030
with:
3131
egress-policy: audit
3232

@@ -70,7 +70,7 @@ jobs:
7070
runs-on: ubuntu-latest
7171
steps:
7272
- name: Harden Runner
73-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
73+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
7474
with:
7575
egress-policy: audit
7676

.github/workflows/auto-labelerV2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
pull-requests: write
1717
steps:
1818
- name: Harden Runner
19-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
19+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
2020
with:
2121
egress-policy: audit
2222

.github/workflows/backend-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
flavor: [core, proprietary, saas]
2929
steps:
3030
- name: Harden Runner
31-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
31+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
3232
with:
3333
egress-policy: audit
3434
- name: Checkout repository

.github/workflows/build-enterprise.yml

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
SYSTEM_ENABLEANALYTICS: "false"
5151
steps:
5252
- name: Harden Runner
53-
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
53+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
5454
with:
5555
egress-policy: audit
5656
- name: Checkout repository
@@ -295,3 +295,70 @@ jobs:
295295
name: playwright-report-enterprise-${{ github.run_id }}
296296
path: frontend/playwright-report/
297297
retention-days: 7
298+
299+
# Multi-node regression: builds + seeds the clustered stack (testing/compose/docker-compose-multinode.yml)
300+
# and runs behave features/multinode. Licence-gated, so it runs after the Playwright job (not in parallel).
301+
multinode-e2e:
302+
needs: [pick, playwright-e2e-enterprise]
303+
# Nightly cron + manual dispatch only (heavy build), fork-gated for the licence secret.
304+
if: >-
305+
always() && needs.pick.outputs.is_fork != 'true'
306+
&& (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
307+
runs-on: ${{ needs.pick.outputs.is_fork == 'true' && 'ubuntu-latest' || format('depot-ubuntu-24.04-{0}', inputs.depot_cores || '8') }}
308+
timeout-minutes: 60
309+
env:
310+
PREMIUM_KEY: ${{ secrets.PREMIUM_KEY_ENTERPRISE }}
311+
PREMIUM_ENABLED: "true"
312+
SYSTEM_ENABLEANALYTICS: "false"
313+
DEPOT_TOKEN: ${{ secrets.DEPOT_TOKEN }}
314+
MN_COMPOSE: docker-compose-multinode.yml
315+
steps:
316+
- name: Harden Runner
317+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
318+
with:
319+
egress-policy: audit
320+
- name: Checkout repository
321+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
322+
- name: Set up Python
323+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
324+
with:
325+
python-version: "3.12"
326+
cache: "pip"
327+
cache-dependency-path: ./testing/cucumber/requirements.txt
328+
- name: Install behave test deps
329+
run: |
330+
pip install --require-hashes --only-binary=:all: -r ./testing/cucumber/requirements.txt
331+
- name: Build the multi-node image
332+
working-directory: testing/compose
333+
run: docker compose -f "$MN_COMPOSE" build
334+
- name: Bring up the cluster and wait for both nodes healthy
335+
working-directory: testing/compose
336+
run: |
337+
docker compose -f "$MN_COMPOSE" up -d
338+
for i in $(seq 1 90); do
339+
h1=$(docker inspect -f '{{.State.Health.Status}}' multinode-stirling-1 2>/dev/null || echo starting)
340+
h2=$(docker inspect -f '{{.State.Health.Status}}' multinode-stirling-2 2>/dev/null || echo starting)
341+
if [ "$h1" = healthy ] && [ "$h2" = healthy ]; then echo "both nodes healthy"; exit 0; fi
342+
sleep 5
343+
done
344+
echo "::error::nodes did not become healthy"
345+
docker compose -f "$MN_COMPOSE" logs --tail=200 stirling-1 stirling-2
346+
exit 1
347+
- name: Seed the cluster (teams, users, S3 connection, policy)
348+
working-directory: testing/compose
349+
run: docker compose -f "$MN_COMPOSE" --profile seed run --rm seed
350+
- name: Run multi-node regression (implemented guarantees)
351+
working-directory: testing/cucumber
352+
# -e overrides behave.ini's exclusion of features/multinode; ~@known_gap skips any tracked-gap scenarios.
353+
run: python -m behave features/multinode -e "features/enterprise" --tags="~@known_gap ~@destructive" --no-capture -f plain
354+
- name: Run multi-node failover (destructive)
355+
working-directory: testing/cucumber
356+
run: python -m behave features/multinode -e "features/enterprise" --tags="@destructive ~@known_gap" --no-capture -f plain
357+
- name: Dump node logs on failure
358+
if: failure()
359+
working-directory: testing/compose
360+
run: docker compose -f "$MN_COMPOSE" logs --tail=400 stirling-1 stirling-2
361+
- name: Tear down
362+
if: always()
363+
working-directory: testing/compose
364+
run: docker compose -f "$MN_COMPOSE" --profile seed down -v --remove-orphans

0 commit comments

Comments
 (0)