diff --git a/.circleci/config.yml b/.circleci/config.yml index 9a28caa7..6222e5df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,8 +18,25 @@ jobs: - run: name: Run tests command: yarn test + test_e2e: + docker: + - image: "cimg/base:current" + resource_class: medium+ + steps: + - checkout + - setup_remote_docker + - node/install: + install-yarn: true + node-version: "18.15" + - node/install-packages: + pkg-manager: yarn + - run: node --version + - run: + name: Run e2e tests + command: yarn test:e2e:ci workflows: run-ci: jobs: - test + - test_e2e diff --git a/.dockerignore b/.dockerignore index 944095d9..efda7db7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,4 +2,5 @@ node_modules build contracts generated -tests \ No newline at end of file +tests +!tests/e2e/setup-scripts/* \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 23a1d113..ee027785 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,4 +3,6 @@ RUN apk add --no-cache curl RUN apk add --no-cache git WORKDIR /usr/subgraph COPY . . -CMD [ "yarn" ] \ No newline at end of file +COPY ./tests/e2e/setup-scripts /usr/subgraph/setup-scripts +CMD [ "yarn" ] + diff --git a/package.json b/package.json index 9b954979..b70ca885 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "scripts": { "build": "yarn codegen:generic && graph build", "test": "yarn codegen:generic && graph test -r", - "test:e2e": "cd tests/e2e && docker compose -f docker-compose.yml -f docker-compose.test.yml up --exit-code-from runner", + "test:e2e": "cd tests/e2e && GRAPH_NODE_BASE_IMAGE=graphprotocol/graph-node:latest docker compose -f docker-compose.yml -f docker-compose.test.yml up --exit-code-from runner", + "test:e2e:m1": "cd tests/e2e && GRAPH_NODE_BASE_IMAGE=graph-node:latest docker compose -f docker-compose.yml -f docker-compose.test.yml up --exit-code-from runner", + "test:e2e:ci": "cd tests/e2e && GRAPH_NODE_BASE_IMAGE=graphprotocol/graph-node:latest docker compose -f docker-compose.yml -f docker-compose.ci.yml up --exit-code-from runner", "run:local": "cd tests/e2e && docker compose -f docker-compose.yml -f docker-compose.local.yml up", "coverage": "graph test -- -c", "deploy:mainnet-hosted": "yarn prepare:mainnet && graph deploy --product hosted-service --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ artblocks/art-blocks", diff --git a/tests/e2e/docker-compose.ci.yml b/tests/e2e/docker-compose.ci.yml new file mode 100644 index 00000000..e1d91ff5 --- /dev/null +++ b/tests/e2e/docker-compose.ci.yml @@ -0,0 +1,11 @@ +version: "3.8" +services: + runner: + build: runner + environment: + - SUBGRAPH_GRAPHQL_URL=http://graph-node:8000/subgraphs/name/artblocks/art-blocks + depends_on: + subgraph: + condition: service_healthy + volumes: + - shared-data:/usr/runner/shared diff --git a/tests/e2e/docker-compose.local.yml b/tests/e2e/docker-compose.local.yml index 3cf1c01b..e22bc7ed 100644 --- a/tests/e2e/docker-compose.local.yml +++ b/tests/e2e/docker-compose.local.yml @@ -9,4 +9,7 @@ services: - '8001:8001' - '8020:8020' - '8030:8030' - - '8040:8040' \ No newline at end of file + - '8040:8040' + subgraph: + volumes: + - ./setup-scripts:/usr/subgraph/setup-scripts \ No newline at end of file diff --git a/tests/e2e/docker-compose.test.yml b/tests/e2e/docker-compose.test.yml index cb96fb6c..638a4188 100644 --- a/tests/e2e/docker-compose.test.yml +++ b/tests/e2e/docker-compose.test.yml @@ -10,3 +10,6 @@ services: volumes: - shared-data:/usr/runner/shared - ./runner/__tests__:/usr/runner/__tests__ + subgraph: + volumes: + - ./setup-scripts:/usr/subgraph/setup-scripts \ No newline at end of file diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index a0c6b250..1e1a0311 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -13,12 +13,16 @@ services: build: seed volumes: - shared-data:/usr/seed/shared - - ./setup-scripts:/usr/seed/setup-scripts depends_on: hardhat: condition: service_healthy graph-node: - build: graph-node + build: + context: . + dockerfile_inline: | + FROM ${GRAPH_NODE_BASE_IMAGE} + RUN ["apt", "update"] + RUN ["apt-get", "install", "-y", "curl"] depends_on: - ipfs - postgres @@ -72,7 +76,6 @@ services: IPFS: 'http://ipfs:5001' volumes: - shared-data:/usr/subgraph/shared - - ./setup-scripts:/usr/subgraph/setup-scripts command: ./setup-scripts/subgraph.sh # We create an empty file called `subgraph-complete` in the shared # volume when the subgraph is deployed. We use this file as a diff --git a/tests/e2e/graph-node/Dockerfile b/tests/e2e/graph-node/Dockerfile deleted file mode 100644 index b549620d..00000000 --- a/tests/e2e/graph-node/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM graph-node:latest -RUN ["apt", "update"] -RUN ["apt-get", "install", "-y", "curl"] \ No newline at end of file