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
* Browser testing with aegir
* Support onlyDial
* Bump timeout for browser tests
* Support webtransport browser test
* PR comments
* Tweak
* Handle cases where the listener exits before dialer
* Remove debug code
* Bump node version
* Prewarm with playwright install
* Support extra timeouts when running against node or browser
* Add timeout option to rust and js
* update interop rust test lib to use tokio
to allow us add the WebRTC transport test (which is only available with
the tokio runtime)
Clean up the test and update Cargo.toml to 0.2.0 to avoid conflicting with the older tests, and allow us to import lib.rs
on the rust-libp2p repo and have the master tests there.
* simplify build_builder function
* replace deprecated ping keepalive
with KeepAlive Behaviour
* add WebRTC support for rust tests
* add webrtc support on interop generator.
* fix typo on generators.ts
webrtc instead of webtransport.
* update rust test plans to use enums instead.
* update rust tests enum to match the ones by generator.ts
* fix webrtc testcases to have proper security and muxer.
* review: address suggestions:
- undo generator changes, let's do that later on
- don't parse muxer and sec protocol where we don't need it
* ident generator.ts.
* 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>
When building the `master` image we would previously mistakingly set the
ref to the PR commit hash.
This surfaced when testing a pull request from a fork. `master` would be
pointed at the forks HEAD commit hash, but not the fork URL. Thus the
build could not find the commit and would fail. See
https://github.com/libp2p/rust-libp2p/pull/3154
By having one Rust binary per version, we can vary the actual binary from
version to version and f.e. fix deprecated API calls. It does introduce a bit of
duplication between the different versions but I'd rather have that then not
being able to adapt the tests to new APIs.
Instead of activating a feature per libp2p version, we add them all as
dependencies. This ensures all transitive dependencies are properly tracked in
`Cargo.lock`. Additionally, this gives us a single place we are can activate all
the feature.
For `master` and pull-request builds, we replace the git target or rev with the
one coming from the CI build. Once we trigger a build, `cargo` will update and
resolve the necessary dependencies before that, thus fixing problems such as
https://github.com/libp2p/rust-libp2p/pull/2972.
* ping/rust: remove unused dependencies
* README: fix import instructions
* ping/rust: set channel capacity to # of instances
* ping/rust: use testground-v0.4.0 from crates.io
* 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>