fix(ci): interop test parallelism (#8674)

* fix(ci): interop test parallelism

It broke when require got replaced with modern import statement,
and CI run all tests four times.. every time.

* fix(ci): run interop with 2 vCPUs

We often have 3 processes (tests and 2 or more IPFS nodes)

* fix(ci): cache npm during interop

* fix(ci): run interop on 2xlarge

It is similar load as sharness, so let's use same beefy box

* fix(ci): enable ipfs-webui

it was skipping due to missing chromium binary

* fix(ci): force fresh npm cache during interop

Needed to pull-in @chainsafe/libp2p-noise@5.0.2
This commit is contained in:
Marcin Rataj 2022-01-17 19:14:23 +01:00 committed by GitHub
parent 440394682a
commit bc7ddef8dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -219,10 +219,16 @@ jobs:
docker:
- image: cimg/go:1.16-node
parallelism: 4
resource_class: large
steps:
- *make_out_dirs
- attach_workspace:
at: /tmp/circleci-workspace
- restore_cache:
keys:
- v1-interop-{{ .Branch }}-{{ .Revision }}
- v1-interop-{{ .Branch }}-
- v1-interop-
- run:
name: Installing dependencies
command: |
@ -236,7 +242,7 @@ jobs:
command: |
mkdir -p /tmp/test-results/interop/
export MOCHA_FILE="$(mktemp /tmp/test-results/interop/unit.XXXXXX.xml)"
npx ipfs-interop -- -t node -f $(sed -n -e "s|^require('\(.*\)')$|test/\1|p" node_modules/ipfs-interop/test/node.js | circleci tests split) -- --reporter mocha-circleci-reporter
npx ipfs-interop -- -t node -f $(sed -n -e "s|^import '\(.*\)'$|test/\1|p" node_modules/ipfs-interop/test/node.js | circleci tests split --split-by=timings) -- --reporter mocha-circleci-reporter
working_directory: ~/ipfs/go-ipfs/interop
environment:
LIBP2P_TCP_REUSEPORT: false
@ -244,6 +250,10 @@ jobs:
IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs
- store_test_results:
path: /tmp/test-results
- save_cache:
key: v1-interop-{{ .Branch }}-{{ .Revision }}
paths:
- ~/ipfs/go-ipfs/interop/node_modules
go-ipfs-api:
executor: golang
steps:
@ -326,6 +336,7 @@ jobs:
name: Installing dependencies
command: |
npm install
npx playwright install
working_directory: ~/ipfs/go-ipfs/ipfs-webui
- run:
name: Running upstream tests (finish early if they fail)
@ -341,6 +352,7 @@ jobs:
- save_cache:
key: v1-ipfs-webui-{{ checksum "~/ipfs/go-ipfs/ipfs-webui/package-lock.json" }}
paths:
- ~/.cache/ms-playwright
- ~/ipfs/go-ipfs/ipfs-webui/node_modules
# We only run build as a test here. DockerHub images are built and published
# by Github Action now: https://github.com/ipfs/go-ipfs/pull/8467