Skip to content

Commit

Permalink
add testground plans to bitswap on CI
Browse files Browse the repository at this point in the history
- Add a basic testground plan for bitswap
   - Showcases how to emit regressions stats from a testplan
- Add CI plumbing to run testplans on push
As a result of this PR, also:
- Created the ipfs/go-ipfs-regressions repo, which defines stats structures for the output of testplans and the input to regression analysis and tests
  • Loading branch information
Cory Schwartz authored Sep 29, 2021
1 parent c0f282f commit 84291d1
Show file tree
Hide file tree
Showing 9 changed files with 2,017 additions and 0 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/testground-on-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Testground PR Checker

on: [push]

jobs:
testground:
runs-on: ubuntu-latest
name: ${{ matrix.composition_file }}
strategy:
matrix:
include:
- backend_addr: ci.testground.ipfs.team
backend_proto: https
plan_directory: testplans/bitswap
composition_file: testplans/bitswap/_compositions/small-k8s.toml
- backend_addr: ci.testground.ipfs.team
backend_proto: https
plan_directory: testplans/bitswap
composition_file: testplans/bitswap/_compositions/medium-k8s.toml
- backend_addr: ci.testground.ipfs.team
backend_proto: https
plan_directory: testplans/bitswap
composition_file: testplans/bitswap/_compositions/large-k8s.toml
steps:
- uses: actions/checkout@v2
- name: testground run
uses: coryschwartz/[email protected]
with:
backend_addr: ${{ matrix.backend_addr }}
backend_proto: ${{ matrix.backend_proto }}
plan_directory: ${{ matrix.plan_directory }}
composition_file: ${{ matrix.composition_file }}
32 changes: 32 additions & 0 deletions testplans/bitswap/_compositions/large-k8s.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[metadata]

[global]
plan = "bitswap"
case = "speed-test"
total_instances = 20
builder = "docker:go"
runner = "cluster:k8s"

[global.build_config]
push_registry=true
go_proxy_mode="remote"
go_proxy_url="http://localhost:8081"
registry_type="aws"

[global.run.test_params]
size = "1MB"
count = "1000"

[[groups]]
id = "providers"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"

[[groups]]
id = "requestors"
instances = { count = 19 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"
33 changes: 33 additions & 0 deletions testplans/bitswap/_compositions/medium-k8s.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[metadata]
name = "bitswap-medium-speed-test"

[global]
plan = "bitswap"
case = "speed-test"
total_instances = 5
builder = "docker:go"
runner = "cluster:k8s"

[global.build_config]
push_registry=true
go_proxy_mode="remote"
go_proxy_url="http://localhost:8081"
registry_type="aws"

[global.run.test_params]
size = "1MB"
count = "1000"

[[groups]]
id = "providers"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"

[[groups]]
id = "requestors"
instances = { count = 4 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"
30 changes: 30 additions & 0 deletions testplans/bitswap/_compositions/small-docker.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[metadata]
name = "bitswap-local-speed-test"

[global]
plan = "bitswap"
case = "speed-test"
total_instances = 2
builder = "docker:go"
runner = "local:docker"

[global.build_config]
push_registry=false

[global.run.test_params]
size = "1MB"
count = "1000"

[[groups]]
id = "providers"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"

[[groups]]
id = "requestors"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"
33 changes: 33 additions & 0 deletions testplans/bitswap/_compositions/small-k8s.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[metadata]
name = "bitswap-small-speed-test"

[global]
plan = "bitswap"
case = "speed-test"
total_instances = 2
builder = "docker:go"
runner = "cluster:k8s"

[global.build_config]
push_registry=true
go_proxy_mode="remote"
go_proxy_url="http://localhost:8081"
registry_type="aws"

[global.run.test_params]
size = "1MB"
count = "1000"

[[groups]]
id = "providers"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"

[[groups]]
id = "requestors"
instances = { count = 1 }
[groups.resources]
memory = "4096Mi"
cpu = "1000m"
29 changes: 29 additions & 0 deletions testplans/bitswap/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module github.com/ipfs/go-ipfs/testplans/bitswap

require (
github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f // indirect
github.com/ipfs/go-bitswap v0.3.4
github.com/ipfs/go-block-format v0.0.3
github.com/ipfs/go-cid v0.0.7
github.com/ipfs/go-datastore v0.4.5
github.com/ipfs/go-ipfs-blockstore v0.1.6
github.com/ipfs/go-ipfs-exchange-interface v0.0.1
github.com/ipfs/go-ipfs-regression v0.0.1
github.com/ipfs/go-ipns v0.1.0 // indirect
github.com/ipfs/go-log/v2 v2.3.0 // indirect
github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db // indirect
github.com/libp2p/go-libp2p v0.14.4
github.com/libp2p/go-libp2p-core v0.8.6
github.com/libp2p/go-libp2p-discovery v0.5.1 // indirect
github.com/libp2p/go-libp2p-kad-dht v0.12.2
github.com/libp2p/go-libp2p-peerstore v0.2.8 // indirect
github.com/libp2p/go-libp2p-quic-transport v0.11.2 // indirect
github.com/multiformats/go-multiaddr v0.3.3
github.com/multiformats/go-multihash v0.0.15
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e // indirect
github.com/smartystreets/assertions v1.0.1 // indirect
github.com/testground/sdk-go v0.2.7
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 // indirect
)

go 1.15
Loading

0 comments on commit 84291d1

Please sign in to comment.