Skip to content

Commit 4f34feb

Browse files
achingbrainDave Granthamgithub-actions[bot]
authored
chore: add webkit to test matrix (#603)
* chore: build webkit images during test run In order to test webkit interop, build docker images with the `BROWSER` build arg set to `webkit`. I think we might need this before the tests in libp2p/js-libp2p#2541 will actually run. * chore: revert old js * chore: add webkit to test matrix * add js-specific workflow Signed-off-by: Dave Grantham <[email protected]> * adding ignores Signed-off-by: Dave Grantham <[email protected]> * added README.md Signed-off-by: Dave Grantham <[email protected]> * chore: update dashboard and README [skip ci] --------- Signed-off-by: Dave Grantham <[email protected]> Co-authored-by: Dave Grantham <[email protected]> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 68ad267 commit 4f34feb

File tree

7 files changed

+308
-4
lines changed

7 files changed

+308
-4
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: js-libp2p Transport Interop Tests
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
versions:
7+
description: 'Comma-separated list of js-libp2p versions (e.g. v1.x,v2.x)'
8+
required: false
9+
default: ''
10+
type: string
11+
12+
pull_request:
13+
paths:
14+
- "transport-interop/impl/js/**"
15+
16+
jobs:
17+
run-js-transport-interop:
18+
runs-on: [self-hosted, linux, x64, ephemeral]
19+
steps:
20+
21+
- name: Checkout PR branch
22+
uses: actions/checkout@v4
23+
with:
24+
token: ${{ secrets.WRITE_README_AND_DASHBOARD }}
25+
ref: ${{ github.head_ref }}
26+
fetch-depth: 0
27+
28+
# Build test-filter by scanning the transport-interop/impl/js/ subdirs
29+
- name: Determine test-filter from manual input
30+
id: build-test-filter
31+
shell: bash
32+
run: |
33+
INPUT_VERSIONS="${{ inputs.versions }}"
34+
JS_IMPL_DIR="$GITHUB_WORKSPACE/transport-interop/impl/js"
35+
36+
if [ -n "$INPUT_VERSIONS" ]; then
37+
# Use provided versions: v1.x,v2.x → js-v1.x|js-v2.x
38+
TEST_FILTER=$(echo "$INPUT_VERSIONS" | tr ',' '\n' | sed 's/^/js-/g' | paste -sd '|' -)
39+
else
40+
if [ -d "$JS_IMPL_DIR" ]; then
41+
# No input: scan all subdirs in transport-interop/impl/js/
42+
VERSIONS=$(ls -1 "$JS_IMPL_DIR" | grep '^v[0-9]' | sort | uniq)
43+
if [ -n "$VERSIONS" ]; then
44+
TEST_FILTER=$(echo "$VERSIONS" | sed 's/^/js-/g' | paste -sd '|' -)
45+
else
46+
TEST_FILTER=""
47+
fi
48+
else
49+
echo "Directory $JS_IMPL_DIR does not exist. Skipping auto-detection"
50+
TEST_FILTER=""
51+
fi
52+
fi
53+
54+
echo "Setting: test-filter=$TEST_FILTER"
55+
echo "test-filter=$TEST_FILTER" >> $GITHUB_OUTPUT
56+
57+
# Build test-ignore from transport-interop/impl/js/test-ignore.txt if it exists
58+
- name: Read test-ignore file
59+
id: test-ignore
60+
run: |
61+
JS_IMPL_DIR="$GITHUB_WORKSPACE/transport-interop/impl/js"
62+
if [ -f "$JS_IMPL_DIR/test-ignore.txt" ]; then
63+
TEST_IGNORE=$(cat "$JS_IMPL_DIR/test-ignore.txt")
64+
echo "Setting: test-ignore=$TEST_IGNORE"
65+
echo "test-ignore=$TEST_IGNORE" >> $GITHUB_OUTPUT
66+
else
67+
echo "Setting: test-ignore=''"
68+
echo "test-ignore=" >> $GITHUB_OUTPUT
69+
fi
70+
71+
- name: Build test-root
72+
id: build-test-root
73+
run: |
74+
JS_IMPL_DIR="$GITHUB_WORKSPACE/transport-interop/impl/js"
75+
echo "Setting: test-root=$JS_IMPL_DIR"
76+
echo "test-root=$JS_IMPL_DIR" >> $GITHUB_OUTPUT
77+
78+
# Run the transport interop tests
79+
- uses: ./.github/actions/run-transport-interop-test
80+
with:
81+
worker-count: 8
82+
cache-dir: /srv/cache
83+
test-filter: ${{ steps.build-test-filter.outputs.test-filter }}
84+
test-ignore: ${{ steps.test-ignore.outputs.test-ignore }}
85+
test-root: ${{ steps.build-test-root.outputs.test-root }}
86+
gh-token: ${{ secrets.WRITE_README_AND_DASHBOARD }}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Javascript Transport Interopability Tests
2+
3+
## Current Status
4+
5+
<!--INTEROP_DASHBOARD_START-->
6+
## Using: tcp, noise, yamux
7+
| ⬇️ dialer 📞 \ ➡️ listener 🎧 | c-v0.0.1 | dotnet-v1.0 | go-v0.40 | go-v0.41 | go-v0.42 | go-v0.43 | go-v0.44 | go-v0.45 | js-v3.x | jvm-v1.2 | nim-v1.14 | python-v0.4 | rust-v0.53 | rust-v0.54 | rust-v0.55 | rust-v0.56 |
8+
| ------------------------------ | -------- | ----------- | -------- | -------- | -------- | -------- | -------- | -------- | ------- | -------- | --------- | ----------- | ---------- | ---------- | ---------- | ---------- |
9+
| c-v0.0.1 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
10+
| dotnet-v1.0 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :red_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
11+
| go-v0.40 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
12+
| go-v0.41 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
13+
| go-v0.42 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
14+
| go-v0.43 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
15+
| go-v0.44 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
16+
| go-v0.45 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
17+
| js-v3.x | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |
18+
| jvm-v1.2 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
19+
| nim-v1.14 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
20+
| python-v0.4 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :red_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
21+
| rust-v0.53 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
22+
| rust-v0.54 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
23+
| rust-v0.55 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
24+
| rust-v0.56 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
25+
26+
## Using: tcp, noise, mplex
27+
| ⬇️ dialer 📞 \ ➡️ listener 🎧 | c-v0.0.1 | js-v3.x | jvm-v1.2 | nim-v1.14 | python-v0.4 | rust-v0.53 | rust-v0.54 | rust-v0.55 | rust-v0.56 |
28+
| ------------------------------ | -------- | ------- | -------- | --------- | ----------- | ---------- | ---------- | ---------- | ---------- |
29+
| c-v0.0.1 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
30+
| js-v3.x | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :red_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |
31+
| jvm-v1.2 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
32+
| nim-v1.14 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
33+
| python-v0.4 | :white_circle: | :red_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
34+
| rust-v0.53 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
35+
| rust-v0.54 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
36+
| rust-v0.55 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
37+
| rust-v0.56 | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
38+
39+
## Using: ws, noise, yamux
40+
| ⬇️ dialer 📞 \ ➡️ listener 🎧 | chromium-rust-v0.53 | chromium-rust-v0.54 | go-v0.40 | go-v0.41 | go-v0.42 | go-v0.43 | go-v0.44 | go-v0.45 | js-v3.x | jvm-v1.2 | nim-v1.14 | rust-v0.53 | rust-v0.54 | rust-v0.55 | rust-v0.56 |
41+
| ------------------------------ | ------------------- | ------------------- | -------- | -------- | -------- | -------- | -------- | -------- | ------- | -------- | --------- | ---------- | ---------- | ---------- | ---------- |
42+
| chromium-rust-v0.53 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
43+
| chromium-rust-v0.54 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
44+
| go-v0.40 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
45+
| go-v0.41 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
46+
| go-v0.42 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
47+
| go-v0.43 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
48+
| go-v0.44 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
49+
| go-v0.45 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
50+
| js-v3.x | :white_circle: | :white_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |
51+
| jvm-v1.2 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
52+
| nim-v1.14 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
53+
| rust-v0.53 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
54+
| rust-v0.54 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
55+
| rust-v0.55 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
56+
| rust-v0.56 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
57+
58+
## Using: ws, noise, mplex
59+
| ⬇️ dialer 📞 \ ➡️ listener 🎧 | chromium-rust-v0.53 | chromium-rust-v0.54 | js-v3.x | jvm-v1.2 | nim-v1.14 | rust-v0.53 | rust-v0.54 | rust-v0.55 | rust-v0.56 |
60+
| ------------------------------ | ------------------- | ------------------- | ------- | -------- | --------- | ---------- | ---------- | ---------- | ---------- |
61+
| chromium-rust-v0.53 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
62+
| chromium-rust-v0.54 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
63+
| js-v3.x | :white_circle: | :white_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: |
64+
| jvm-v1.2 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
65+
| nim-v1.14 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
66+
| rust-v0.53 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
67+
| rust-v0.54 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
68+
| rust-v0.55 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
69+
| rust-v0.56 | :white_circle: | :white_circle: | :green_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
70+
71+
## Using: wss, noise, yamux
72+
| ⬇️ dialer 📞 \ ➡️ listener 🎧 | go-v0.40 | go-v0.41 | go-v0.42 | go-v0.43 | go-v0.44 | go-v0.45 | js-v3.x |
73+
| ------------------------------ | -------- | -------- | -------- | -------- | -------- | -------- | ------- |
74+
| go-v0.40 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
75+
| go-v0.41 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
76+
| go-v0.42 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
77+
| go-v0.43 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
78+
| go-v0.44 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
79+
| go-v0.45 | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: | :white_circle: |
80+
| js-v3.x | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :green_circle: | :white_circle: |
81+
82+
83+
<!--INTEROP_DASHBOARD_END-->
84+

0 commit comments

Comments
 (0)