37 Commits

Author SHA1 Message Date
Piotr Galar
e5e32c7c0a
chore: parameterise s3 build cache setup ()
* chore: parameterise s3 build cache setup

* Apply suggestions from code review

Co-authored-by: Alex Potsides <alex@achingbrain.net>

* fix: cache load/push

* chore: pass creds when reading cache

* fix: interact with aws only using the CLI

* Update transport-interop.yml

---------

Co-authored-by: Alex Potsides <alex@achingbrain.net>
2024-09-11 10:01:42 +02:00
Alex Potsides
fb99e690a6
fix: add js tests to this repo ()
Trying to debug these tests in CI is incredibly difficult and since they depend on older versions of previously published modules, if something breaks due to a bug in released code it's very hard to fix it.

Instead follow the pattern in the perf tests and include the full test implementations here.
2024-06-06 10:53:35 +01:00
galargh
a30678eb62 ci: fix testing newly added impl versions 2024-03-26 17:16:34 +00:00
Piotr Galar
ed111cdc25
feat: add new implementation versions (go, js, rust) ()
* feat: add new implementation versions (go)

* ci: generalise adding new implementation versions

* ci: automate new version addition for rust-libp2p and js-libp2p
2024-03-26 17:13:03 +00:00
Alex Potsides
9a4c969523
fix: re-enable js-libp2p under node.js ()
Adds perf tests for js-libp2p 0.46.x and 1.0 (via the `next` tag).

---------

Co-authored-by: achingbrain <achingbrain@users.noreply.github.com>
2023-11-21 08:22:56 +00:00
Thomas Eizinger
9247c9fd99
Fix flaky QUIC hole-punching tests () 2023-10-25 13:23:34 +11:00
Thomas Eizinger
1e37b93e93
feat(hole-punch): add hole-punch interoperability test suite () 2023-10-17 10:07:25 +11:00
Thomas Eizinger
6ab15df0ec
Rename multidim-interop to transport-interop () 2023-10-05 14:12:39 +11:00
Piotr Galar
0b4e5e490d
feat(.github/perf): reference metrics dashboard () 2023-09-04 17:57:22 +02:00
Piotr Galar
353e2db77c
fix: how new go-libp2p versions are added to perf () 2023-09-04 09:40:32 +02:00
Piotr Galar
2980863ebc
feat: automate adding new go-libp2p versions to perf ()
* feat: automate adding new go-libp2p versions to perf

* fix: put add-new-impl-versions.yml on schedule
2023-09-02 10:16:35 +02:00
Prithvi Shahi
7d5710dbdb
ci: only run interop tests on changes to multidim-interop dir () 2023-08-23 07:31:11 -07:00
Prithvi Shahi
2a4e313301
ci: only run interop tests on changes to multidim-interop dir () 2023-08-22 08:52:59 +02:00
Alex Potsides
5c74bfec3d
feat: expose name-ignore setting ()
Exposes `--name-ignore` as `test-ignore` in the ping test github action to be consistent with how `--name-filter` is exposed as `test-filter`

Follows on from 
2023-07-20 06:54:46 +01:00
Marco Munizaga
cbca2c06de
multidim-interop: Update rust-libp2p .gitignore with chromium-image.json ()
* .gitignore chromium-image.json

* Assert that git tree is clean
2023-07-14 10:00:35 -07:00
Max Inden
d7391f13e1
fix(perf): increase iterations ()
- Increase upload/download benchmark iterations. Still conservative value of `10` due to slow rust-libp2p tcp. See https://github.com/libp2p/rust-yamux/issues/162. Note however that this is 10x an upload of 100MB.
- Increase latency benchmark iterations.
2023-07-10 05:06:51 +02:00
Piotr Galar
35ab35b1a4
feat: run multidim-interop.yml on self-hosted runners ()
* feat: run multidim-interop.yml on self-hosted runners

* feat: make worker count configurable

* feat: enable docker.io proxy on self-hosted runners

* chore: provide s3 creds through env

* Try 4 workers

* ci: run-multidim-interop on 16 workers

* chore: change self hosted labels

* Update .github/workflows/multidim-interop.yml

Co-authored-by: Piotr Galar <piotr.galar@gmail.com>

* Use self-hosted runners for now

This reverts commit 7e868ea6b486798c03ad5b88f14c1a78e51e7c26.

---------

Co-authored-by: Marco Munizaga <git@marcopolo.io>
Co-authored-by: Marco Munizaga <marco@marcopolo.io>
2023-07-07 15:41:38 -07:00
GitHub
42179a6721 chore: Update .github/workflows/stale.yml [skip ci] 2023-06-28 08:54:37 +00:00
Max Inden
53ff8b5db1
feat(perf): add (automation, provision, build, run) tooling ()
This project includes the following components:

- `terraform/`: a Terraform scripts to provision infrastructure
- `impl/`: implementations of the [libp2p perf
  protocol](https://github.com/libp2p/specs/blob/master/perf/perf.md) running on
  top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack
- `runner/`: a set of scripts building and running the above implementations on
  the above infrastructure, reporting the results in `benchmark-results.json`

Benchmark results can be visualized with
https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard.

Co-authored-by: Marco Munizaga <git@marcopolo.io>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Co-authored-by: Piotr Galar <piotr.galar@gmail.com>
2023-06-22 13:54:09 +02:00
Marco Munizaga
af82e8fc5f
Rename build-without-cache to build-without-secrets ()
This workflow uses the public cache. It just can't update it. The goal of this workflow is to see how public forks behave. The name is a vestige from when we didn't have a public cache. But the original goal was always to see how public forks and external repos would behave.
2023-06-20 10:55:43 -07:00
GitHub
df7c9d711c chore: Update .github/workflows/stale.yml [skip ci] 2023-06-14 09:03:57 +00:00
Marco Munizaga
23fdcef9be
Cache images slightly differently () 2023-04-11 11:29:32 -07:00
Max Inden
b0d8a55dd9
fix(aws): Only set bucket var when creds are available ()
The `dockerBuildWrapper` script enables caching based on the `AWS_BUCKET`
environment variable. When calling the `libp2p ping interop test` with a bucket
name but no AWS credentials, this leads to the script enabling caching even
though the workflow does not have access to AWS.

With this commit the environment variable `AWS_BUCKET` is only set when
credentials are available and thus the `dockerBuildWrapper` script does not enable
caching then workflow does nothave access to AWS.
2023-02-13 09:50:47 -08:00
Marco Munizaga
3b6d87b532
Update Go & JS tests to conform to the multidim interop test spec. ()
* Update Go test implementations to match new spec

* Update JS test implementation

* Update Rust test Implementation

* Update root Makefile

* Update runner to new spec

* Use composite action and S3 caching

* Not using GHA cache anymore

* Try removing access key from env

* Test workflow without cache keys ()

* Test if it works without s3 cache keys

* Fix if statement

* Fix if statement

* Always use buildkit

* Undo debug change

* Add no cache workflow

* Skip test in no-cache workflow

* Update .github/workflows/no-cache-multidim-interop.yml

* Same workflow; use CACHING_OPTIONS

* Add Browser WebRTC test ()

* Add webrtc to JS test

* Add onlyDial to all queries

* Update versions.ts

* Remove unneeded timeout overrides
2023-02-10 17:00:53 -08:00
Thomas Eizinger
c9130e425d
Introduce composite action for running ping interop tests ()
Co-authored-by: Marco Munizaga <git@marcopolo.io>
2023-02-02 10:17:22 +11:00
Piotr Galar
988ecaa42f
feat: update README badge automatically () 2023-01-19 12:18:11 -08:00
Marco Munizaga
150c5ca618
feat: multidim-interop: Setup badge () 2023-01-17 16:44:22 -08:00
Marco Munizaga
23ff0db5b5
Support other repos using the multidim interop tests ()
* Support running interop workflow from other repos

* A bit of shuffling and cleanup
2023-01-13 10:23:58 -08:00
Marco Munizaga
c35de22070
Add fast multidimensional interop tests ()
* Add fast multidimensional interop tests

* Remove generated files

* Remove debug code around itnerfaces

* Revert changes to setup testground

* multidim-interop: update rust v050 test

for multidim-interop with redis

* Add depends on and enable rust version for testing

* Cleanup Rust test

* Have listener print multiaddr in go v024 test

* Remove EXPOSE in dockerfile

* Update multidim-interop/go/v0.24/main.go

Co-authored-by: João Oliveira <hello@jxs.pt>

* Update multidim-interop/go/v0.22/main.go

Co-authored-by: João Oliveira <hello@jxs.pt>

* Update multidim-interop/go/v0.23/main.go

Co-authored-by: João Oliveira <hello@jxs.pt>

* Go nits

* Cleanup Rust makefile

* add working ping test (js) or multidim-interop ()

* add working ping test (js) or multidim-interop

* Add JS-libp2p to interop tests

* ping libp2p-js (wo): resolve PR comments

* Add yamux js-libp2p test

Co-authored-by: Marco Munizaga <git@marcopolo.io>

* Fix Go err

* Ignore errors when shutting down

* Fix err

* Rename workflow

* Remove rust v0.49

* Bump up timeouts

Co-authored-by: João Oliveira <hello@jxs.pt>
Co-authored-by: Glen De Cauwsemaecker <contact@glendc.com>
2023-01-10 14:26:27 -08:00
Tanguy
003eb91e2e
Nim ping test ()
* Nim ping test

* Working interop

* Add nim toml

* Add CI

* fix workflow name

* Delete go-rust specifics

* Update .github/workflows/ping-interop-latest.yml

Co-authored-by: Max Inden <mail@max-inden.de>

Co-authored-by: Max Inden <mail@max-inden.de>
2022-12-05 17:23:50 -08:00
Laurent Senta
1b981a33e0
.github/workflows: use write-artifacts and prevent rebuild ()
* .github/workflows: use write-artifacts to prevent rebuild

* .github/workflows: increase build timeout

* .github: add testground install retry
2022-09-23 11:42:26 +02:00
libp2p-mgmt-read-write[bot]
a4f036587a
chore: Update .github/workflows/stale.yml [skip ci] 2022-09-19 13:41:32 +00:00
Laurent Senta
520162a188
.github/actions/setup-testground: shortcircuit with edge releases () 2022-09-07 08:45:54 +02:00
Laurent Senta
d872355bc0
feat: add retries & update ping/go interop test ()
* .github/workflows/run-composition.yml: retry the build command

* .github/workflows/run-composition.yml: reduce run timeout for now

* .github/workflows/*: run on push and PR

* .github/actions: check testground health

* ping/_composition/*: reorder lib versions

* ping/: update with go-libp2p v0.22

* chore: gofmt

* .github/workflows: allow check test-plans during PR and push

* .github/workflows/*: introduce ping-interop-latest

* .github/workflow: tweak retry + timeout

* .github/actions/setup-testground: retry install

* ping/rust: update with v0.47.0 release
2022-08-29 16:34:15 +02:00
Laurent Senta
072d351a5f
ping/rust: introduce rust cross-version test ()
* ping/go: fix composition name

* ping/rust: introduce the ping/rust test

* Showcase version selection through features

Can be run with `cargo check --features libp2pv0450` or `cargo check --features
libp2pv0440`.

* Peer programming session

* ping/rust: experiment with master & current groups

* ping/rust/src/main: Simplify import across versions

* ping/rust/src/main: Remove commented out code

* ping/rust/src/main: Clean up

* ping/rust/Dockerfile: Update crates.io index in separate step

Potentially allows caching.

* ping/rust/Dockerfile: Don't both build and install

Building the binary in release mode is enough.

* ping/rust/src/main: Clean up log lines

* ping/rust: Implement iterations with latency

* ping/rust/src/main: Extract signal and wait logic into fn

* ping/rust/Dockerfile: import caching fixes

* ping/: add cross-version composition

* ping/rust: add json payloads fix

* ping/rust: match iterations id with go

* ping/rust/Dockerfile: improve caching

* ci: introduce workflow ping-interop-rust

* ping/interop: update latest versions

* ping/_compositions: add full ping interop

* ci: resolve git reference to sha

* ping/rust/Dockerfile: drop cargo output

* ping/rust: drop version indirection

* ping/rust/Dockerfile: fix features to support caching

* ping/rust/Dockerfile: do not cache the rewritten package

* ping/_compositions/*: use concurrent_builds

* ping/_compositions/*: drop test_instances count

* ci: build composition then run

* ping: introduce InteropTarget option

* ci: fix interop target & build

* ping/_compositions/*: introduce load_resource

* ci: 10 minutes timeout for the run step

* README: add update instruction for rust & clean go

* ping/rust/Dockerfile: add protocol buffer compiler

* ping/rust/Cargo.lock: cargo update packages

* .github: increase testground timeout

Co-authored-by: Max Inden <mail@max-inden.de>
2022-08-22 12:25:07 +02:00
Laurent Senta
eee18f085e
ci: remove test commit mistake () 2022-07-01 12:22:40 +02:00
Laurent Senta
fb5c863d88
testground: cross-version interoperability ()
* plan/ping: fix test & use go 1.17

* plan/ping: fix dedup path

* ping-interop: prepare base module and build script

* ping-interop/go-v0.11: introduce legacy ping test (fix original)

* ci: add interop reusable workflow

* ci: add testground endpoint config

* ping-interop: rewrite with new testground build config feature

* ping-interop: add v0.20 version

* ping-interop: fix build parameters

* ci: add ping-interop-go runner

* ci: use self hosted runner

* ping-interop: name with the current git branch

* ping-interop: use external proxy & drop build cache

* ping-interop: support dependencies changes in go master

* ping-interop: using longer timeout with regulars runners

* ping-interop: move to ping

* README: add ping/go update intructions

* ci: rename compatibility test

* ci: add support for forks

* ping: add doc

* REMOVEME: use a test setup

* ping: update libp2p versions

* ping: add security compat

* ping: smaller compat surface
2022-07-01 09:32:16 +02:00