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.
* feat: add new implementation versions (go)
* ci: generalise adding new implementation versions
* ci: automate new version addition for rust-libp2p and js-libp2p
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 #225
- 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.
* 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>
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>
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.
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.
* 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 (#131)
* 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 (#130)
* Add webrtc to JS test
* Add onlyDial to all queries
* Update versions.ts
* Remove unneeded timeout overrides
* 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 (#98)
* 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>
* 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>
* 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>