Skip to content

Commit 53d8ed3

Browse files
snowmeadclaude
andcommitted
Merge branch 'main' into feat/fisherman-service-batch-commands
Resolve modify/delete conflict by keeping fisherman_process_file_deletion.rs deleted, as it has been replaced by the batch deletion implementation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
2 parents f85ceae + 815902c commit 53d8ed3

Some content is hidden

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

57 files changed

+3343
-972
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Enforce PR labels
2+
3+
on:
4+
pull_request:
5+
types: [labeled, unlabeled, opened, edited, synchronize]
6+
jobs:
7+
enforce-noteworthiness-label:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
contents: read
11+
steps:
12+
- uses: yogevbd/[email protected]
13+
with:
14+
REQUIRED_LABELS_ANY: "B0-silent,B1-sdknoteworthy,B3-backendnoteworthy,B5-clientnoteworthy,B7-runtimenoteworthy"
15+
REQUIRED_LABELS_ALL: ""
16+
BANNED_LABELS: ""
17+
- name: Verify breaking changes label
18+
if: contains(github.event.pull_request.labels.*.name, 'B1-sdknoteworthy') || contains(github.event.pull_request.labels.*.name, 'B3-backendnoteworthy') || contains(github.event.pull_request.labels.*.name, 'B5-clientnoteworthy') || contains(github.event.pull_request.labels.*.name, 'B7-runtimenoteworthy')
19+
uses: yogevbd/[email protected]
20+
with:
21+
REQUIRED_LABELS_ANY: "breaking,not-breaking"
22+
REQUIRED_LABELS_ALL: ""
23+
BANNED_LABELS: ""
24+
enforce-auditability-label:
25+
runs-on: ubuntu-latest
26+
permissions:
27+
contents: read
28+
steps:
29+
- uses: yogevbd/[email protected]
30+
with:
31+
REQUIRED_LABELS_ANY: "D1-audited👍,D2-noauditneeded🙈,D3-trivial👶,D4-nicetohaveaudit⚠️,D5-needsaudit👮"
32+
REQUIRED_LABELS_ALL: ""
33+
BANNED_LABELS: ""
34+
validate-breaking-description:
35+
runs-on: ubuntu-latest
36+
steps:
37+
- name: Validate PR for "breaking" label and description
38+
env:
39+
PR_BODY: ${{ github.event.pull_request.body }}
40+
PR_LABELS: ${{ toJson(github.event.pull_request.labels) }}
41+
run: |
42+
echo "Pull Request Labels: $PR_LABELS"
43+
echo "Pull Request Body: $PR_BODY"
44+
45+
# Check if "breaking" label is set
46+
if echo "$PR_LABELS" | grep -q '"breaking"'; then
47+
echo "Label 'breaking' is present. Checking description..."
48+
if echo "$PR_BODY" | grep -qi "## ⚠️ Breaking Changes ⚠️"; then
49+
echo "✅ Description contains the required phrase."
50+
else
51+
echo "❌ Description does not contain the required phrase '## ⚠️ Breaking Changes ⚠️'."
52+
exit 1
53+
fi
54+
else
55+
echo "Label 'breaking' is not present. No validation needed."
56+
fi

.github/workflows/network.yml

Lines changed: 53 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ on:
2323
push:
2424
branches: [main]
2525
workflow_dispatch:
26+
inputs:
27+
image_tag:
28+
description: "Docker image tag to publish (e.g., v0.1.0)"
29+
required: false
30+
type: string
31+
release:
32+
types: [published]
2633

2734
jobs:
2835
setup:
@@ -46,6 +53,10 @@ jobs:
4653
- name: Check if the node needs rebuild
4754
id: node_check
4855
run: |
56+
if [[ "${{ github.event_name }}" == "release" ]]; then
57+
echo "changed=false" >> $GITHUB_OUTPUT
58+
exit 0
59+
fi
4960
BASE_SHA="${{ github.event.pull_request.base.sha || github.event.before }}"
5061
HEAD_SHA="${{ github.sha }}"
5162
@@ -58,6 +69,10 @@ jobs:
5869
- name: Check if the MSP backend needs rebuild
5970
id: backend_check
6071
run: |
72+
if [[ "${{ github.event_name }}" == "release" ]]; then
73+
echo "changed=false" >> $GITHUB_OUTPUT
74+
exit 0
75+
fi
6176
BASE_SHA="${{ github.event.pull_request.base.sha || github.event.before }}"
6277
HEAD_SHA="${{ github.sha }}"
6378
@@ -70,7 +85,11 @@ jobs:
7085
- name: Set tag names for publishing
7186
id: set-tag
7287
run: |
73-
if [[ "${{ github.ref }}" == 'refs/heads/main' ]]; then
88+
if [[ "${{ github.event_name }}" == 'release' ]]; then
89+
echo "tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
90+
elif [[ "${{ github.event_name }}" == 'workflow_dispatch' && -n "${{ inputs.image_tag }}" ]]; then
91+
echo "tag=${{ inputs.image_tag }}" >> $GITHUB_OUTPUT
92+
elif [[ "${{ github.ref }}" == 'refs/heads/main' ]]; then
7493
echo "tag=latest" >> $GITHUB_OUTPUT
7594
elif [[ "${{ env.SKIP_BUILD_LABEL_PRESENT }}" == "true" && "${{ env.SKIP_BACKEND_BUILD_LABEL_PRESENT }}" == "true" ]]; then
7695
echo "tag=latest" >> $GITHUB_OUTPUT
@@ -82,17 +101,25 @@ jobs:
82101
- name: Set flags
83102
id: flags
84103
run: |
85-
echo "force_node=${{ env.FORCE_NODE_PUBLISH_LABEL_PRESENT }}" >> $GITHUB_OUTPUT
86-
echo "force_backend=${{ env.FORCE_BACKEND_PUBLISH_LABEL_PRESENT }}" >> $GITHUB_OUTPUT
104+
if [[ "${{ github.event_name }}" == 'release' ]]; then
105+
echo "force_node=false" >> $GITHUB_OUTPUT
106+
echo "force_backend=true" >> $GITHUB_OUTPUT
107+
elif [[ "${{ github.event_name }}" == 'workflow_dispatch' && -n "${{ inputs.image_tag }}" ]]; then
108+
echo "force_node=false" >> $GITHUB_OUTPUT
109+
echo "force_backend=true" >> $GITHUB_OUTPUT
110+
else
111+
echo "force_node=${{ env.FORCE_NODE_PUBLISH_LABEL_PRESENT }}" >> $GITHUB_OUTPUT
112+
echo "force_backend=${{ env.FORCE_BACKEND_PUBLISH_LABEL_PRESENT }}" >> $GITHUB_OUTPUT
113+
fi
87114
88115
build_node:
89116
needs: [setup]
90-
name: 'Build node binary if changed'
117+
name: "Build node binary if changed"
91118
runs-on: blacksmith-16vcpu-ubuntu-2404
92119
env:
93-
SCCACHE_GHA_ENABLED: 'true'
94-
RUSTC_WRAPPER: 'sccache'
95-
CARGO_INCREMENTAL: '0'
120+
SCCACHE_GHA_ENABLED: "true"
121+
RUSTC_WRAPPER: "sccache"
122+
CARGO_INCREMENTAL: "0"
96123
CARGO_TERM_COLOR: always
97124
steps:
98125
- uses: actions/checkout@v4
@@ -147,12 +174,12 @@ jobs:
147174

148175
build_backend:
149176
needs: [setup]
150-
name: 'Build backend binary if changed'
177+
name: "Build backend binary if changed"
151178
runs-on: blacksmith-16vcpu-ubuntu-2404
152179
env:
153-
SCCACHE_GHA_ENABLED: 'true'
154-
RUSTC_WRAPPER: 'sccache'
155-
CARGO_INCREMENTAL: '0'
180+
SCCACHE_GHA_ENABLED: "true"
181+
RUSTC_WRAPPER: "sccache"
182+
CARGO_INCREMENTAL: "0"
156183
CARGO_TERM_COLOR: always
157184
steps:
158185
- uses: actions/checkout@v4
@@ -201,11 +228,11 @@ jobs:
201228
name: backend
202229
path: build/sh-msp-backend
203230
if-no-files-found: error
204-
231+
205232
push_node_image:
206233
needs: [build_node, setup]
207234
if: needs.setup.outputs.node_changed == 'true' || needs.setup.outputs.force_node == 'true'
208-
name: 'Push node Docker image to Docker Hub'
235+
name: "Push node Docker image to Docker Hub"
209236
runs-on: blacksmith-16vcpu-ubuntu-2404
210237
steps:
211238
- uses: actions/checkout@v4
@@ -245,11 +272,11 @@ jobs:
245272
org.opencontainers.image.source=${{ github.event.repository.clone_url }}
246273
org.opencontainers.image.revision=${{ github.sha }}
247274
org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
248-
275+
249276
push_backend_image:
250277
needs: [build_backend, setup]
251278
if: needs.setup.outputs.backend_changed == 'true' || needs.setup.outputs.force_backend == 'true'
252-
name: 'Push backend Docker image to Docker Hub'
279+
name: "Push backend Docker image to Docker Hub"
253280
runs-on: blacksmith-16vcpu-ubuntu-2404
254281
steps:
255282
- uses: actions/checkout@v4
@@ -290,7 +317,6 @@ jobs:
290317
org.opencontainers.image.revision=${{ github.sha }}
291318
org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
292319
293-
294320
# zombie_test_k8:
295321
# needs: [build_node, setup]
296322
# name: "Test Simple Network"
@@ -319,7 +345,7 @@ jobs:
319345

320346
network_test:
321347
needs: [build_node, setup]
322-
name: 'Network Test: Zombienet (Parachain + Relay)'
348+
name: "Network Test: Zombienet (Parachain + Relay)"
323349
runs-on: blacksmith-4vcpu-ubuntu-2404
324350
timeout-minutes: 30
325351
steps:
@@ -359,7 +385,7 @@ jobs:
359385
360386
zombie_test:
361387
needs: [build_node, setup]
362-
name: 'Network Test: Zombienet CLI'
388+
name: "Network Test: Zombienet CLI"
363389
timeout-minutes: 30
364390
runs-on: blacksmith-4vcpu-ubuntu-2404
365391
steps:
@@ -394,7 +420,7 @@ jobs:
394420
dev_node_test:
395421
needs: [build_node, setup]
396422
timeout-minutes: 30
397-
name: 'Node Tests: Solo Dev Node'
423+
name: "Node Tests: Solo Dev Node"
398424
runs-on: blacksmith-4vcpu-ubuntu-2404
399425
strategy:
400426
fail-fast: false
@@ -442,7 +468,7 @@ jobs:
442468
443469
full_net:
444470
needs: [build_node, setup]
445-
name: 'Integration Tests: FullNet'
471+
name: "Integration Tests: FullNet"
446472
runs-on: blacksmith-4vcpu-ubuntu-2404
447473
timeout-minutes: 30
448474
strategy:
@@ -533,7 +559,7 @@ jobs:
533559

534560
bsp_net:
535561
needs: [build_node, setup]
536-
name: 'Integration Tests: BSPNet'
562+
name: "Integration Tests: BSPNet"
537563
runs-on: blacksmith-4vcpu-ubuntu-2404
538564
timeout-minutes: 30
539565
strategy:
@@ -621,7 +647,7 @@ jobs:
621647

622648
backend_test:
623649
needs: [build_node, build_backend, setup]
624-
name: 'Integration Tests: Backend'
650+
name: "Integration Tests: Backend"
625651
runs-on: blacksmith-4vcpu-ubuntu-2404
626652
timeout-minutes: 30
627653
strategy:
@@ -679,7 +705,7 @@ jobs:
679705
run: |
680706
docker pull moonsonglabs/storage-hub:latest
681707
docker tag moonsonglabs/storage-hub:latest storage-hub:local
682-
708+
683709
- uses: taiki-e/install-action@v2
684710
with:
685711
tool: diesel_cli
@@ -740,7 +766,7 @@ jobs:
740766

741767
user_net:
742768
needs: [build_node, setup]
743-
name: 'Integration Tests: User'
769+
name: "Integration Tests: User"
744770
runs-on: blacksmith-4vcpu-ubuntu-2404
745771
timeout-minutes: 30
746772
strategy:
@@ -831,7 +857,7 @@ jobs:
831857

832858
fisherman_test:
833859
needs: [build_node, setup]
834-
name: 'Integration Tests: Fisherman'
860+
name: "Integration Tests: Fisherman"
835861
runs-on: blacksmith-4vcpu-ubuntu-2404
836862
timeout-minutes: 30
837863
steps:
@@ -917,7 +943,7 @@ jobs:
917943

918944
solochain_evm:
919945
needs: [build_node, build_backend, setup]
920-
name: 'Integration Tests: Solochain EVM'
946+
name: "Integration Tests: Solochain EVM"
921947
runs-on: blacksmith-4vcpu-ubuntu-2404
922948
timeout-minutes: 30
923949
steps:
@@ -1045,7 +1071,7 @@ jobs:
10451071

10461072
typegen_check:
10471073
needs: [build_node, setup]
1048-
name: 'Check Rust/TS bindings are up to date'
1074+
name: "Check Rust/TS bindings are up to date"
10491075
runs-on: blacksmith-4vcpu-ubuntu-2404
10501076
steps:
10511077
- uses: actions/checkout@v4

.github/workflows/sdk.yml

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ on:
2020

2121
env:
2222
FORCE_COLOR: 1
23-
HEADLESS: 'false'
23+
HEADLESS: "false"
2424

2525
jobs:
2626
setup:
@@ -41,7 +41,7 @@ jobs:
4141
INPUT_VERSION="${{ github.event.inputs.version }}"
4242
if [ "$EVENT_NAME" = "release" ]; then
4343
TAG="${{ github.event.release.tag_name }}"
44-
VERSION="${TAG#sdk-v}"
44+
VERSION="${VERSION#v}"
4545
else
4646
VERSION="$INPUT_VERSION"
4747
fi
@@ -69,9 +69,9 @@ jobs:
6969
run:
7070
working-directory: sdk
7171
env:
72-
SCCACHE_GHA_ENABLED: 'true'
73-
RUSTC_WRAPPER: 'sccache'
74-
CARGO_INCREMENTAL: '0'
72+
SCCACHE_GHA_ENABLED: "true"
73+
RUSTC_WRAPPER: "sccache"
74+
CARGO_INCREMENTAL: "0"
7575
CARGO_TERM_COLOR: always
7676
steps:
7777
- name: Checkout repository
@@ -132,7 +132,6 @@ jobs:
132132
sdk/core/wasm/pkg
133133
sdk/msp-client/dist
134134
135-
136135
e2e-wallet-metamask:
137136
needs: [sdk-build-and-test]
138137
name: E2E Wallet Tests (MetaMask)
@@ -183,11 +182,11 @@ jobs:
183182
name: E2E Backend Tests (MSP Client)
184183
runs-on: blacksmith-16vcpu-ubuntu-2404
185184
env:
186-
HEADLESS: 'false'
185+
HEADLESS: "false"
187186
RUST_LOG: info
188-
SCCACHE_GHA_ENABLED: 'true'
189-
RUSTC_WRAPPER: 'sccache'
190-
CARGO_INCREMENTAL: '0'
187+
SCCACHE_GHA_ENABLED: "true"
188+
RUSTC_WRAPPER: "sccache"
189+
CARGO_INCREMENTAL: "0"
191190
CARGO_TERM_COLOR: always
192191
steps:
193192
- name: Checkout
@@ -283,7 +282,7 @@ jobs:
283282
- name: Smoke build
284283
working-directory: /tmp/hello_world_nextjs
285284
env:
286-
NEXT_TELEMETRY_DISABLED: '1'
285+
NEXT_TELEMETRY_DISABLED: "1"
287286
run: pnpm build
288287

289288
publish:
@@ -339,6 +338,3 @@ jobs:
339338
run: |
340339
pnpm pack
341340
pnpm publish --access public --no-git-checks
342-
343-
344-

Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)