From 117d5806a4fc28f4459235f7a80264b27d96ff1d Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:46:36 +0200 Subject: [PATCH 01/77] chore: kick goth out and replace with docker-compose --- tests/e2e/Provider.Dockerfile | 41 ++++++++++ tests/e2e/Requestor.Dockerfile | 28 +++++++ tests/e2e/_setup.ts | 18 ----- tests/e2e/_teardown.ts | 3 - tests/e2e/configure-provider.py | 20 +++++ tests/e2e/data-node/ya-provider/globals.json | 5 ++ tests/e2e/data-node/ya-provider/hardware.json | 10 +++ tests/e2e/data-node/ya-provider/presets.json | 35 +++++++++ tests/e2e/docker-compose.yml | 59 ++++++++++++++ tests/e2e/jest.config.json | 2 - tests/e2e/start-requestor.sh | 35 +++++++++ tests/e2e/start_provider.sh | 2 + tests/goth/goth.ts | 78 ------------------- 13 files changed, 235 insertions(+), 101 deletions(-) create mode 100644 tests/e2e/Provider.Dockerfile create mode 100644 tests/e2e/Requestor.Dockerfile delete mode 100644 tests/e2e/_setup.ts delete mode 100644 tests/e2e/_teardown.ts create mode 100644 tests/e2e/configure-provider.py create mode 100644 tests/e2e/data-node/ya-provider/globals.json create mode 100644 tests/e2e/data-node/ya-provider/hardware.json create mode 100644 tests/e2e/data-node/ya-provider/presets.json create mode 100644 tests/e2e/docker-compose.yml create mode 100755 tests/e2e/start-requestor.sh create mode 100644 tests/e2e/start_provider.sh delete mode 100644 tests/goth/goth.ts diff --git a/tests/e2e/Provider.Dockerfile b/tests/e2e/Provider.Dockerfile new file mode 100644 index 000000000..31213731e --- /dev/null +++ b/tests/e2e/Provider.Dockerfile @@ -0,0 +1,41 @@ +ARG UBUNTU_VERSION=22.04 +ARG YA_CORE_VERSION=0.12.2 +ARG YA_WASI_VERSION=0.2.2 +ARG YA_VM_VERSION=0.3.0 + +FROM ubuntu:${UBUNTU_VERSION} +ARG YA_CORE_VERSION +ARG YA_WASI_VERSION +ARG YA_VM_VERSION +ARG YA_DIR_INSTALLER=/ya-installer +ARG YA_DIR_BIN=/usr/bin +ARG YA_DIR_PLUGINS=/lib/yagna/plugins +COPY /data-node/ya-provider/ /root/.local/share/ya-provider/ +RUN apt-get update -q \ + && apt-get install -q -y --no-install-recommends \ + wget \ + apt-transport-https \ + ca-certificates \ + xz-utils \ + curl \ + python3 \ + && apt-get remove --purge -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p ${YA_DIR_PLUGINS} \ + && mkdir ${YA_DIR_INSTALLER} \ + && cd ${YA_DIR_INSTALLER} \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-provider-linux-v${YA_CORE_VERSION}.tar.gz" \ + && wget -q "https://github.com/golemfactory/ya-runtime-wasi/releases/download/v${YA_WASI_VERSION}/ya-runtime-wasi-linux-v${YA_WASI_VERSION}.tar.gz" \ + && wget -q "https://github.com/golemfactory/ya-runtime-vm/releases/download/v${YA_VM_VERSION}/ya-runtime-vm-linux-v${YA_VM_VERSION}.tar.gz" \ + && tar -zxvf golem-provider-linux-v${YA_CORE_VERSION}.tar.gz \ + && tar -zxvf ya-runtime-wasi-linux-v${YA_WASI_VERSION}.tar.gz \ + && tar -zxvf ya-runtime-vm-linux-v${YA_VM_VERSION}.tar.gz \ + && find golem-provider-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && cp -R golem-provider-linux-v${YA_CORE_VERSION}/plugins/* ${YA_DIR_PLUGINS} \ + && cp -R ya-runtime-wasi-linux-v${YA_WASI_VERSION}/* ${YA_DIR_PLUGINS} \ + && cp -R ya-runtime-vm-linux-v${YA_VM_VERSION}/* ${YA_DIR_PLUGINS} \ + && rm -Rf ${YA_DIR_INSTALLER} +COPY ./configure-provider.py /configure-provider.py + +CMD ["bash", "-c", "python3 /configure-provider.py && golemsp run --payment-network testnet"] diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile new file mode 100644 index 000000000..e6c536ecc --- /dev/null +++ b/tests/e2e/Requestor.Dockerfile @@ -0,0 +1,28 @@ +ARG UBUNTU_VERSION=22.04 +ARG YA_CORE_VERSION=0.12.2 + +FROM ubuntu:${UBUNTU_VERSION} +ARG YA_CORE_VERSION +ARG YA_DIR_INSTALLER=/ya-installer +ARG YA_DIR_BIN=/usr/bin +RUN apt-get update -q \ + && apt-get install -q -y --no-install-recommends \ + wget \ + apt-transport-https \ + ca-certificates \ + xz-utils \ + curl \ + python3 \ + && apt-get remove --purge -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir ${YA_DIR_INSTALLER} \ + && cd ${YA_DIR_INSTALLER} \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux_aarch64-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux_aarch64-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && rm -Rf ${YA_DIR_INSTALLER} + +COPY ./start-requestor.sh /start-requestor.sh + +CMD ["bash", "-c", "/start-requestor.sh"] diff --git a/tests/e2e/_setup.ts b/tests/e2e/_setup.ts deleted file mode 100644 index de9ff4749..000000000 --- a/tests/e2e/_setup.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Goth } from "../goth/goth"; -import { resolve } from "path"; - -const timeoutPromise = (seconds: number) => - new Promise((_resolve, reject) => { - setTimeout( - () => reject(new Error(`The timeout was reached and the racing promise has rejected after ${seconds} seconds`)), - seconds * 1000, - ); - }); - -export default async function setUpGoth() { - const gothConfig = resolve("../goth/assets/goth-config.yml"); - globalThis.__GOTH = new Goth(gothConfig); - - // Start Goth, but don't wait for an eternity - return await Promise.race([globalThis.__GOTH.start(), timeoutPromise(180)]); -} diff --git a/tests/e2e/_teardown.ts b/tests/e2e/_teardown.ts deleted file mode 100644 index 994401c50..000000000 --- a/tests/e2e/_teardown.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default async function tearDownGoth() { - await globalThis.__GOTH.end(); -} diff --git a/tests/e2e/configure-provider.py b/tests/e2e/configure-provider.py new file mode 100644 index 000000000..ccd452297 --- /dev/null +++ b/tests/e2e/configure-provider.py @@ -0,0 +1,20 @@ +import os +import json + + +def update_globals(file_path, node_name): + try: + with open(file_path, 'r+') as f: + data = json.load(f) + data['node_name'] = node_name + f.seek(0) + print(data) + json.dumps(data, f) + f.truncate() + print(f"Provider node name configured to {node_name}") + except Exception as e: + print(f"Error occurred: {str(e)}") + + +update_globals(os.path.expanduser( + '/root/.local/share/ya-provider/globals.json'), os.environ.get('NODE_NAME')) diff --git a/tests/e2e/data-node/ya-provider/globals.json b/tests/e2e/data-node/ya-provider/globals.json new file mode 100644 index 000000000..83261dce1 --- /dev/null +++ b/tests/e2e/data-node/ya-provider/globals.json @@ -0,0 +1,5 @@ +{ + "node_name": "node-name", + "subnet": "public", + "account": "0x797cE3Aa8dc255D13E48F31A6B23fe18b5924940" +} diff --git a/tests/e2e/data-node/ya-provider/hardware.json b/tests/e2e/data-node/ya-provider/hardware.json new file mode 100644 index 000000000..51f668a89 --- /dev/null +++ b/tests/e2e/data-node/ya-provider/hardware.json @@ -0,0 +1,10 @@ +{ + "active": "default", + "profiles": { + "default": { + "cpu_threads": 1, + "mem_gib": 2.0, + "storage_gib": 10.0 + } + } +} diff --git a/tests/e2e/data-node/ya-provider/presets.json b/tests/e2e/data-node/ya-provider/presets.json new file mode 100644 index 000000000..01cde6bb3 --- /dev/null +++ b/tests/e2e/data-node/ya-provider/presets.json @@ -0,0 +1,35 @@ +{ + "active": ["wasmtime", "vm"], + "presets": [ + { + "name": "default", + "exeunit-name": "wasmtime", + "pricing-model": "linear", + "usage-coeffs": { + "cpu": 0.000000001, + "duration": 0.0, + "initial": 0.0 + } + }, + { + "name": "vm", + "exeunit-name": "vm", + "pricing-model": "linear", + "usage-coeffs": { + "cpu": 0.000000001, + "duration": 0.0, + "initial": 0.0 + } + }, + { + "name": "wasmtime", + "exeunit-name": "wasmtime", + "pricing-model": "linear", + "usage-coeffs": { + "cpu": 0.000000001, + "duration": 0.0, + "initial": 0.0 + } + } + ] +} diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml new file mode 100644 index 000000000..bfebee4b2 --- /dev/null +++ b/tests/e2e/docker-compose.yml @@ -0,0 +1,59 @@ +version: "3.5" +services: + provider-1: + build: + context: . + dockerfile: Provider.Dockerfile + image: provider:latest + restart: always + volumes: + - /etc/localtime:/etc/localtime:ro + - /root/.local/share/yagna/ + devices: + - /dev/kvm:/dev/kvm + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s + environment: + - NODE_NAME=provider-1 + provider-2: + build: . + image: provider:latest + restart: always + volumes: + - /etc/localtime:/etc/localtime:ro + - /root/.local/share/yagna/ + devices: + - /dev/kvm:/dev/kvm + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s + environment: + - NODE_NAME=provider-2 + requestor: + build: + context: . + dockerfile: Requestor.Dockerfile + image: requestor:latest + restart: always + volumes: + - /etc/localtime:/etc/localtime:ro + - /root/.local/share/yagna/ + ports: + - 7465:7465 + environment: + - YAGNA_AUTOCONF_APPKEY=e2e-test + - YAGNA_API_URL=http://0.0.0.0:7465 + + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s diff --git a/tests/e2e/jest.config.json b/tests/e2e/jest.config.json index ae00deaa5..8eb5939a8 100644 --- a/tests/e2e/jest.config.json +++ b/tests/e2e/jest.config.json @@ -1,8 +1,6 @@ { "preset": "ts-jest", "testEnvironment": "node", - "globalSetup": "/_setup.ts", - "globalTeardown": "/_teardown.ts", "setupFilesAfterEnv": ["/_setupLogging.ts"], "testTimeout": 180000 } diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh new file mode 100755 index 000000000..8b87259f9 --- /dev/null +++ b/tests/e2e/start-requestor.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +get_funds_from_faucet() { + echo "Sending request to the faucet" + yagna payment fund +} + +echo "Starting Yagna in the background to get funds from the faucet" +yagna service run >/dev/null 2>&1 & +sleep 1 + +PID=$(pgrep -f "yagna service run") +echo "Yagna is running with PID: $PID" + +sleep 4 + +echo "I will now try to get funds from the faucet" +FUNDING_STATUS="NO" + +while [[ $FUNDING_STATUS == "NO" ]]; do + if get_funds_from_faucet; then + echo "Funds received from the faucet" + FUNDING_STATUS="OK" + else + echo "Error receiving funds from the faucet. We're retrying..." + fi +done + +stop_yagna=$(kill -9 $PID) + +echo "Stopped Yagna" +sleep 4 + +echo "Starting Yagna again to run it in the foreground" +yagna service run diff --git a/tests/e2e/start_provider.sh b/tests/e2e/start_provider.sh new file mode 100644 index 000000000..18171ce71 --- /dev/null +++ b/tests/e2e/start_provider.sh @@ -0,0 +1,2 @@ +python /configure-provider.py +golemsp run --payment-network testnet diff --git a/tests/goth/goth.ts b/tests/goth/goth.ts deleted file mode 100644 index 504d6ddf5..000000000 --- a/tests/goth/goth.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { ChildProcess, spawn } from "child_process"; - -type EnvironmentSettings = { apiKey: string; basePath: string; subnetTag: string; gsbUrl: string; path: string }; - -export class Goth { - private gothProcess?: ChildProcess; - - constructor(private readonly gothConfig) {} - - async start(): Promise { - return new Promise((resolve, reject) => { - const startTime = Date.now(); - console.log("\x1b[33mStarting goth process..."); - console.log("\x1b[33mRun command:\x1b[0m \x1b[36m", `python -m goth start ${this.gothConfig}`); - this.gothProcess = spawn("python", ["-m", "goth", "start", this.gothConfig], { - env: { ...process.env, PYTHONUNBUFFERED: "1" }, - }); - this.gothProcess.on("spawn", () => console.log("Goth spawned successfully")); - this.gothProcess?.stdout?.setEncoding("utf-8"); - this.gothProcess?.stderr?.setEncoding("utf-8"); - - this.gothProcess?.stdout?.on("data", (data) => { - const regexp = - /YAGNA_APPKEY=(\w+) YAGNA_API_URL=(http:\/\/127\.0{0,3}\.0{0,3}.0{0,2}1:\d+) GSB_URL=(tcp:\/\/\d+\.\d+\.\d+\.\d+:\d+) PATH=(.*) YAGNA_SUBNET=(\w+)/g; - const results = Array.from(data?.toString()?.matchAll(regexp) || [])?.pop(); - const apiKey = results?.[1]; - const basePath = results?.[2]; - const gsbUrl = results?.[3]; - const path = results?.[4]?.split(":")?.shift(); - const subnetTag = results?.[5]; - if (apiKey) { - process.env["YAGNA_APPKEY"] = apiKey; - process.env["YAGNA_API_URL"] = basePath; - process.env["GSB_URL"] = gsbUrl; - process.env["PATH"] = `${path}:${process.env["PATH"]}`; - process.env["YAGNA_SUBNET"] = subnetTag; - // Note: rinkeby is a test network which is dead, but our goth runners exist on a custom deployment of this network - process.env["PAYMENT_NETWORK"] = "rinkeby"; - - const settings = { apiKey, basePath, subnetTag, gsbUrl, path }; - - console.log( - `\x1b[33mGoth has been successfully started in ${((Date.now() - startTime) / 1000).toFixed( - 0, - )}s. Resulting settings:`, - settings, - ); - - resolve(settings); - } - }); - this.gothProcess?.stderr?.on("data", (data) => { - if (data.toString().match(/error/)) reject(data); - const regexp = /\[requestor] Gftp volume ([a-zA-Z0-9/_]*)/g; - const results = Array.from(data?.toString()?.matchAll(regexp) || [])?.pop(); - const gftpVolume = results?.[1]; - if (gftpVolume) process.env["GOTH_GFTP_VOLUME"] = gftpVolume + "/out/"; - console.log("\x1b[33m[goth]\x1b[0m " + data.replace(/[\n\t\r]/g, "")); - }); - this.gothProcess.on("error", (error) => reject("Failed to spawn Goth" + error.toString())); - this.gothProcess.on("close", (code) => console.info(`Goth process exit with code ${code}`)); - this.gothProcess.on("exit", (code) => console.info(`Goth process exit with code ${code}`)); - }); - } - - async end() { - this.gothProcess?.kill("SIGINT"); - return new Promise((resolve) => { - this.gothProcess?.on("close", () => { - this.gothProcess?.stdout?.removeAllListeners(); - this.gothProcess?.stderr?.removeAllListeners(); - this.gothProcess?.removeAllListeners(); - console.log(`\x1b[33mGoth has been terminated`); - resolve(); - }); - }); - } -} From f1edc4ff95e788bfd5349b6e7f04ebecfa860133 Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:56:34 +0200 Subject: [PATCH 02/77] chore: dont use arm builds for yagna --- tests/e2e/Requestor.Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index e6c536ecc..a79260847 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -18,9 +18,9 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux_aarch64-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux_aarch64-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} COPY ./start-requestor.sh /start-requestor.sh From 99446a04745b4f6c7946b9df5fb12cceb1569b3d Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Wed, 27 Sep 2023 12:38:59 +0200 Subject: [PATCH 03/77] chore: bind GSB_URL and use custom subnet --- tests/e2e/docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index bfebee4b2..36902f923 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -19,6 +19,7 @@ services: start_period: 40s environment: - NODE_NAME=provider-1 + - SUBNET=notpublic provider-2: build: . image: provider:latest @@ -36,6 +37,7 @@ services: start_period: 40s environment: - NODE_NAME=provider-2 + - SUBNET=notpublic requestor: build: context: . @@ -47,9 +49,11 @@ services: - /root/.local/share/yagna/ ports: - 7465:7465 + - 7464:7464 environment: - YAGNA_AUTOCONF_APPKEY=e2e-test - YAGNA_API_URL=http://0.0.0.0:7465 + - GSB_URL=tcp://0.0.0.0:7464 healthcheck: test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] From 8d31368cf57481276a2f16457177597532bc32f8 Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Wed, 27 Sep 2023 12:39:39 +0200 Subject: [PATCH 04/77] chore: use correct dockerfile --- tests/e2e/docker-compose.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 36902f923..5dd4934eb 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -21,7 +21,9 @@ services: - NODE_NAME=provider-1 - SUBNET=notpublic provider-2: - build: . + build: + context: . + dockerfile: Provider.Dockerfile image: provider:latest restart: always volumes: From d4a5e6ad6645584f2ed70ae95b81999ed6e485be Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Fri, 29 Sep 2023 16:17:12 +0200 Subject: [PATCH 05/77] chore: run tests inside container --- tests/e2e/Requestor.Dockerfile | 3 ++- tests/e2e/docker-compose.yml | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index a79260847..593ecac5b 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -1,7 +1,7 @@ ARG UBUNTU_VERSION=22.04 ARG YA_CORE_VERSION=0.12.2 -FROM ubuntu:${UBUNTU_VERSION} +FROM node:18 ARG YA_CORE_VERSION ARG YA_DIR_INSTALLER=/ya-installer ARG YA_DIR_BIN=/usr/bin @@ -23,6 +23,7 @@ RUN apt-get update -q \ && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} + COPY ./start-requestor.sh /start-requestor.sh CMD ["bash", "-c", "/start-requestor.sh"] diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 5dd4934eb..5ba16d34a 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -6,6 +6,8 @@ services: dockerfile: Provider.Dockerfile image: provider:latest restart: always + deploy: + replicas: 3 volumes: - /etc/localtime:/etc/localtime:ro - /root/.local/share/yagna/ @@ -26,6 +28,8 @@ services: dockerfile: Provider.Dockerfile image: provider:latest restart: always + deploy: + replicas: 3 volumes: - /etc/localtime:/etc/localtime:ro - /root/.local/share/yagna/ @@ -49,13 +53,13 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /root/.local/share/yagna/ - ports: - - 7465:7465 - - 7464:7464 + - ../../:/golem-js environment: - YAGNA_AUTOCONF_APPKEY=e2e-test - YAGNA_API_URL=http://0.0.0.0:7465 - GSB_URL=tcp://0.0.0.0:7464 + - YAGNA_SUBNET=notpublic + - YAGNA_APPKEY=e2e-test healthcheck: test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] From 0b144b0f843648c9be8e8dfc33f247b113d6aeb7 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 11:07:51 +0200 Subject: [PATCH 06/77] chore: modify workflow to use docker instead of goth --- .github/workflows/release.yml | 55 +++------------------------------- tests/e2e/Requestor.Dockerfile | 4 ++- tests/e2e/jest.config.json | 2 +- 3 files changed, 8 insertions(+), 53 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 06c9006b4..9e93e778b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,11 +60,6 @@ jobs: # other versions are tested beforehand, so we can keep it short node-version: 16 - - name: Install packages required to set-up Goth - run: | - sudo apt-get update -y - sudo apt-get install -y build-essential - - name: Install browsers and graphic environment for Cypress tests run: | sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb @@ -87,54 +82,12 @@ jobs: with: python-version: "3.9" - #region Goth Setup - - name: Install Goth - run: | - pip install goth - rm -rf ../goth/assets - python -m goth create-assets ../goth/assets - sed -Ezi 's/(use\-proxy:\s)(True)/\1False/mg' ../goth/assets/goth-config.yml - sed -Ezi 's/(use\-prerelease:\s)(false)/\1true\n release-tag: "0.13.0-rc10"/mg' ../goth/assets/goth-config.yml - - - name: Disconnect Docker containers from default network - continue-on-error: true - # related to this issue: https://github.com/moby/moby/issues/23302 - run: | - docker network inspect docker_default - sudo apt-get install -y jq - docker network inspect docker_default | jq ".[0].Containers | map(.Name)[]" | tee /dev/stderr | xargs --max-args 1 -- docker network disconnect -f docker_default - - - name: Remove Docker containers - continue-on-error: true - run: docker rm -f $(docker ps -a -q) - - - name: Restart Docker daemon - # related to this issue: https://github.com/moby/moby/issues/23302 - run: sudo systemctl restart docker - - - name: Log in to GitHub Docker repository - run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{github.actor}} --password-stdin - #endregion - - #region E2E test execution - - name: Run the E2E tests using Goth - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build and start the docker containers run: | - npm run test:e2e - - - name: Upload test logs - uses: actions/upload-artifact@v2 - if: always() - with: - name: goth-logs - path: /tmp/goth-tests + docker compose -f tests/e2e/docker-compose.yml up -d - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf /tmp/goth-tests - #endregion + - name: Start the e2e test + run: sleep 4 && docker exec -it e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index 593ecac5b..e4388b8b0 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -21,7 +21,9 @@ RUN apt-get update -q \ && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz" \ && tar -zxvf golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz \ && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ - && rm -Rf ${YA_DIR_INSTALLER} + && rm -Rf ${YA_DIR_INSTALLER} \ + && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ + && chmod +x ${YA_DIR_BIN}/websocat COPY ./start-requestor.sh /start-requestor.sh diff --git a/tests/e2e/jest.config.json b/tests/e2e/jest.config.json index 8eb5939a8..64a53fa97 100644 --- a/tests/e2e/jest.config.json +++ b/tests/e2e/jest.config.json @@ -2,5 +2,5 @@ "preset": "ts-jest", "testEnvironment": "node", "setupFilesAfterEnv": ["/_setupLogging.ts"], - "testTimeout": 180000 + "testTimeout": 540000 } From 19ef1bcf32a77ccbacbdd7a0b4a6fdf1feb55d90 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 11:40:59 +0200 Subject: [PATCH 07/77] chore: test workflow --- .github/workflows/release.yml | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e96dc5831..1754f02f1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - push: + pull_request: branches: # Regular release channels - master @@ -141,38 +141,38 @@ jobs: docker system prune -af #endregion - release: - name: Release the SDK to NPM and GitHub - needs: run-integration-and-e2e-tests - runs-on: ubuntu-latest - permissions: - contents: write # to be able to publish a GitHub release - issues: write # to be able to comment on released issues - pull-requests: write # to be able to comment on released pull requests - id-token: write # to enable use of OIDC for npm provenance - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup NodeJS - uses: actions/setup-node@v3 - with: - # Semantic release requires this as bare minimum - node-version: 18 - - - name: Install dependencies - run: npm install - - - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - run: npm audit signatures - - - name: Build the SDK for release - run: npm run build - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npx semantic-release + # release: + # name: Release the SDK to NPM and GitHub + # needs: run-integration-and-e2e-tests + # runs-on: ubuntu-latest + # permissions: + # contents: write # to be able to publish a GitHub release + # issues: write # to be able to comment on released issues + # pull-requests: write # to be able to comment on released pull requests + # id-token: write # to enable use of OIDC for npm provenance + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 + + # - name: Setup NodeJS + # uses: actions/setup-node@v3 + # with: + # # Semantic release requires this as bare minimum + # node-version: 18 + + # - name: Install dependencies + # run: npm install + + # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + # run: npm audit signatures + + # - name: Build the SDK for release + # run: npm run build + + # - name: Release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + # run: npx semantic-release From c17f2072d6569d46407a830e94e5ea04ebb9794f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 11:53:53 +0200 Subject: [PATCH 08/77] chore: skip default tests --- .github/workflows/release.yml | 46 +++++++++++++++++------------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1754f02f1..ccf3eb372 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,32 +19,32 @@ permissions: contents: read # for checkout jobs: - regular-checks: - name: Build and unit-test on supported platforms and NodeJS versions - strategy: - matrix: - node-version: [16.x, 18.x, 20.x] - os: [ubuntu-latest, windows-latest, macos-latest] + # regular-checks: + # name: Build and unit-test on supported platforms and NodeJS versions + # strategy: + # matrix: + # node-version: [16.x, 18.x, 20.x] + # os: [ubuntu-latest, windows-latest, macos-latest] - runs-on: ${{ matrix.os }} + # runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - - name: Setup NodeJS ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} + # steps: + # - uses: actions/checkout@v3 - - name: Perform regular checks - run: | - npm install - npm run format:check - npm run lint - npm run test:unit - npm run build - npm install --prefix examples - npm run --prefix examples lint:ts + # - name: Setup NodeJS ${{ matrix.node-version }} + # uses: actions/setup-node@v3 + # with: + # node-version: ${{ matrix.node-version }} + + # - name: Perform regular checks + # run: | + # npm install + # npm run format:check + # npm run lint + # npm run test:unit + # npm run build + # npm install --prefix examples + # npm run --prefix examples lint:ts run-integration-and-e2e-tests: name: Run integration and E2E tests From eb016008f31b18b771ecb143b2cbcdd8486a70b4 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 11:54:53 +0200 Subject: [PATCH 09/77] chore: skip ci test --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fa4664dc..a22482742 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ name: Regular CI Pipeline on: - pull_request: + push: branches: # Regular release channels - master From bc4e6a1d410fba8b5011c431a7caed51f118f93d Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 11:59:15 +0200 Subject: [PATCH 10/77] chore: workflow fixes --- .github/workflows/release.yml | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ccf3eb372..815739d44 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,52 +4,19 @@ on: pull_request: branches: # Regular release channels - - master - - next - beta - - alpha - # Support, hotfix branches like: 1.0.x or 1.x - - '([0-9]+)(\.([0-9]+))?\.x' # Allows triggering the workflow manually - workflow_dispatch: # We're going to interact with GH from the pipelines, so we need to get some permissions permissions: contents: read # for checkout jobs: - # regular-checks: - # name: Build and unit-test on supported platforms and NodeJS versions - # strategy: - # matrix: - # node-version: [16.x, 18.x, 20.x] - # os: [ubuntu-latest, windows-latest, macos-latest] - - # runs-on: ${{ matrix.os }} - - # steps: - # - uses: actions/checkout@v3 - - # - name: Setup NodeJS ${{ matrix.node-version }} - # uses: actions/setup-node@v3 - # with: - # node-version: ${{ matrix.node-version }} - - # - name: Perform regular checks - # run: | - # npm install - # npm run format:check - # npm run lint - # npm run test:unit - # npm run build - # npm install --prefix examples - # npm run --prefix examples lint:ts - run-integration-and-e2e-tests: name: Run integration and E2E tests needs: regular-checks - runs-on: goth2 + runs-on: goth steps: - name: Checkout uses: actions/checkout@v3 From 4db75598146a4887d701b11f47c2d0a56318395f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 12:00:32 +0200 Subject: [PATCH 11/77] chore: add workflow with no dependency --- .github/workflows/release.yml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 815739d44..1a23b4bdb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,19 +4,46 @@ on: pull_request: branches: # Regular release channels + - master + - next - beta + - alpha + # Support, hotfix branches like: 1.0.x or 1.x + - '([0-9]+)(\.([0-9]+))?\.x' # Allows triggering the workflow manually + workflow_dispatch: # We're going to interact with GH from the pipelines, so we need to get some permissions permissions: contents: read # for checkout jobs: + regular-checks: + name: Build and unit-test on supported platforms and NodeJS versions + strategy: + matrix: + node-version: [16.x, 18.x, 20.x] + os: [ubuntu-latest, windows-latest, macos-latest] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + + - name: Setup NodeJS ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Perform regular checks + run: | + echo test + run-integration-and-e2e-tests: name: Run integration and E2E tests needs: regular-checks - runs-on: goth + runs-on: goth2 steps: - name: Checkout uses: actions/checkout@v3 From 7acfaeee9f473ad83afffbcc29193d889da33a30 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 12:07:36 +0200 Subject: [PATCH 12/77] chore: dont use tty for docker exec --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1a23b4bdb..c73a84463 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -82,7 +82,7 @@ jobs: run: docker compose -f tests/e2e/docker-compose.yml up -d - name: Start the e2e test - run: sleep 4 && docker exec -it e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server From e70d7e625044a7ae643563e5bd4db8058503b14c Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 12:12:28 +0200 Subject: [PATCH 13/77] chore: fund the requestor in workflow --- .github/workflows/release.yml | 5 +++- tests/e2e/start-requestor.sh | 44 ++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c73a84463..e2e2409f1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,8 +81,11 @@ jobs: - name: Build and start the docker containers run: docker compose -f tests/e2e/docker-compose.yml up -d + - name: Fund the requestor + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" + - name: Start the e2e test - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 8b87259f9..5e2cecce1 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -5,31 +5,33 @@ get_funds_from_faucet() { yagna payment fund } -echo "Starting Yagna in the background to get funds from the faucet" -yagna service run >/dev/null 2>&1 & -sleep 1 +# echo "Starting Yagna in the background to get funds from the faucet" +echo "Starting Yagna" +# yagna service run >/dev/null 2>&1 & +yagna service run +# sleep 1 -PID=$(pgrep -f "yagna service run") -echo "Yagna is running with PID: $PID" +# PID=$(pgrep -f "yagna service run") +# echo "Yagna is running with PID: $PID" -sleep 4 +# sleep 4 -echo "I will now try to get funds from the faucet" -FUNDING_STATUS="NO" +# echo "I will now try to get funds from the faucet" +# FUNDING_STATUS="NO" -while [[ $FUNDING_STATUS == "NO" ]]; do - if get_funds_from_faucet; then - echo "Funds received from the faucet" - FUNDING_STATUS="OK" - else - echo "Error receiving funds from the faucet. We're retrying..." - fi -done +# while [[ $FUNDING_STATUS == "NO" ]]; do +# if get_funds_from_faucet; then +# echo "Funds received from the faucet" +# FUNDING_STATUS="OK" +# else +# echo "Error receiving funds from the faucet. We're retrying..." +# fi +# done -stop_yagna=$(kill -9 $PID) +# stop_yagna=$(kill -9 $PID) -echo "Stopped Yagna" -sleep 4 +# echo "Stopped Yagna" +# sleep 4 -echo "Starting Yagna again to run it in the foreground" -yagna service run +# echo "Starting Yagna again to run it in the foreground" +# yagna service run From 94f634c3c369982d45dd1619f97d4f91c1acd326 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 12:43:43 +0200 Subject: [PATCH 14/77] chore: remove python from setup steps --- .github/workflows/release.yml | 8 ++------ tests/e2e/docker-compose.yml | 6 +++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e2e2409f1..11a8e561b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,13 +73,9 @@ jobs: npm install --prefix examples npm install ts-node - - name: Configure python - uses: actions/setup-python@v4 - with: - python-version: "3.9" - - name: Build and start the docker containers - run: docker compose -f tests/e2e/docker-compose.yml up -d + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 5ba16d34a..39782c9f4 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -21,7 +21,7 @@ services: start_period: 40s environment: - NODE_NAME=provider-1 - - SUBNET=notpublic + - SUBNET=${YAGNA_SUBNET:-golemjstest} provider-2: build: context: . @@ -43,7 +43,7 @@ services: start_period: 40s environment: - NODE_NAME=provider-2 - - SUBNET=notpublic + - SUBNET=${YAGNA_SUBNET:-golemjstest} requestor: build: context: . @@ -58,7 +58,7 @@ services: - YAGNA_AUTOCONF_APPKEY=e2e-test - YAGNA_API_URL=http://0.0.0.0:7465 - GSB_URL=tcp://0.0.0.0:7464 - - YAGNA_SUBNET=notpublic + - YAGNA_SUBNET=${YAGNA_SUBNET:-golemjstest} - YAGNA_APPKEY=e2e-test healthcheck: From ee9bc1830f960c6240556a51a02ac28a8a6b4305 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 12:52:57 +0200 Subject: [PATCH 15/77] chore: increase provider pricing for tests --- tests/e2e/data-node/ya-provider/presets.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e/data-node/ya-provider/presets.json b/tests/e2e/data-node/ya-provider/presets.json index 01cde6bb3..a2f8810cd 100644 --- a/tests/e2e/data-node/ya-provider/presets.json +++ b/tests/e2e/data-node/ya-provider/presets.json @@ -6,7 +6,7 @@ "exeunit-name": "wasmtime", "pricing-model": "linear", "usage-coeffs": { - "cpu": 0.000000001, + "cpu": 3.000000001, "duration": 0.0, "initial": 0.0 } @@ -16,7 +16,7 @@ "exeunit-name": "vm", "pricing-model": "linear", "usage-coeffs": { - "cpu": 0.000000001, + "cpu": 3.000000001, "duration": 0.0, "initial": 0.0 } @@ -26,7 +26,7 @@ "exeunit-name": "wasmtime", "pricing-model": "linear", "usage-coeffs": { - "cpu": 0.000000001, + "cpu": 3.000000001, "duration": 0.0, "initial": 0.0 } From 883adc17476d681497e1782c1265811900b49add Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 15:17:45 +0200 Subject: [PATCH 16/77] chore: fix tests --- package.json | 1 - tests/e2e/Requestor.Dockerfile | 1 + tests/e2e/data-node/ya-provider/presets.json | 6 +++--- tests/e2e/docker-compose.yml | 4 ++-- tests/examples/examples.test.ts | 21 +------------------- 5 files changed, 7 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 555f4ae16..ea610ae4c 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "test:e2e:no-goth": "jest tests/e2e/**.spec.ts --testTimeout=180000 --runInBand --forceExit", "test:cypress": "cypress run", "test:examples": "ts-node --project tsconfig.spec.json tests/examples/examples.test.ts", - "test:examples:no-goth": "ts-node --project tsconfig.spec.json tests/examples/examples.test.ts --no-goth", "lint": "npm run lint:ts && npm run lint:ts:tests && npm run lint:eslint", "lint:ts": "tsc --project tsconfig.json --noEmit", "lint:ts:tests": "tsc --project tests/tsconfig.json --noEmit", diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index e4388b8b0..33670374f 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -12,6 +12,7 @@ RUN apt-get update -q \ ca-certificates \ xz-utils \ curl \ + sshpass \ python3 \ && apt-get remove --purge -y \ && apt-get clean -y \ diff --git a/tests/e2e/data-node/ya-provider/presets.json b/tests/e2e/data-node/ya-provider/presets.json index a2f8810cd..e360c9cb2 100644 --- a/tests/e2e/data-node/ya-provider/presets.json +++ b/tests/e2e/data-node/ya-provider/presets.json @@ -6,7 +6,7 @@ "exeunit-name": "wasmtime", "pricing-model": "linear", "usage-coeffs": { - "cpu": 3.000000001, + "cpu": 0.500000001, "duration": 0.0, "initial": 0.0 } @@ -16,7 +16,7 @@ "exeunit-name": "vm", "pricing-model": "linear", "usage-coeffs": { - "cpu": 3.000000001, + "cpu": 0.500000001, "duration": 0.0, "initial": 0.0 } @@ -26,7 +26,7 @@ "exeunit-name": "wasmtime", "pricing-model": "linear", "usage-coeffs": { - "cpu": 3.000000001, + "cpu": 0.500000001, "duration": 0.0, "initial": 0.0 } diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 39782c9f4..635d6cedf 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -55,11 +55,11 @@ services: - /root/.local/share/yagna/ - ../../:/golem-js environment: - - YAGNA_AUTOCONF_APPKEY=e2e-test + - YAGNA_AUTOCONF_APPKEY=try_golem - YAGNA_API_URL=http://0.0.0.0:7465 - GSB_URL=tcp://0.0.0.0:7464 - YAGNA_SUBNET=${YAGNA_SUBNET:-golemjstest} - - YAGNA_APPKEY=e2e-test + - YAGNA_APPKEY=try_golem healthcheck: test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] diff --git a/tests/examples/examples.test.ts b/tests/examples/examples.test.ts index e61e534b2..cfb6f30ef 100644 --- a/tests/examples/examples.test.ts +++ b/tests/examples/examples.test.ts @@ -1,15 +1,8 @@ import { spawn } from "child_process"; import { dirname, basename, resolve } from "path"; -import { Goth } from "../goth/goth"; import chalk from "chalk"; import testExamples from "./examples.json"; -const noGoth = process.argv[2] === "--no-goth"; -const gothConfig = resolve("../goth/assets/goth-config.yml"); -const gothStartingTimeout = 180; -const goth = new Goth(gothConfig); - -const examples = !noGoth ? testExamples.filter((e) => !e?.noGoth) : testExamples; const criticalLogsRegExp = [/Task *. timeot/, /Task *. has been rejected/, /ERROR: TypeError/, /ERROR: Error/gim]; type Example = { @@ -17,7 +10,6 @@ type Example = { path: string; args?: string[]; timeout?: number; - noGoth?: boolean; skip?: boolean; }; @@ -62,16 +54,6 @@ async function test(cmd: string, path: string, args: string[] = [], timeout = 18 async function testAll(examples: Example[]) { const failedTests = new Set(); const skippedTests = new Set(); - if (!noGoth) - await Promise.race([ - goth.start(), - new Promise((res, rej) => - setTimeout( - () => rej(new Error(`The Goth starting timeout was reached after ${gothStartingTimeout} seconds`)), - gothStartingTimeout * 1000, - ), - ), - ]); for (const example of examples) { try { console.log(chalk.yellow(`\n---- Starting test: "${example.path}" ----\n`)); @@ -87,7 +69,6 @@ async function testAll(examples: Example[]) { failedTests.add(example.path); } } - if (!noGoth) await goth.end().catch((error) => console.error(error)); console.log( chalk.bold.yellow("\n\nTESTS RESULTS: "), chalk.bgGreen.black(` ${examples.length - failedTests.size - skippedTests.size} passed `), @@ -102,4 +83,4 @@ async function testAll(examples: Example[]) { process.exit(failedTests.size > 0 ? 1 : 0); } -testAll(examples).then(); +testAll(testExamples).then(); From 2a4d691a212c066ece49199c57c72c42a6ac9e33 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 15:19:46 +0200 Subject: [PATCH 17/77] chore: update workflow to use docker --- .github/workflows/release.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11a8e561b..d6b50b9ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -109,11 +109,9 @@ jobs: #endregion #region Examples test execution - - name: Run the Examples tests using Goth - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Run the Examples tests run: | - npm run test:examples + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:examples" - name: Upload test logs uses: actions/upload-artifact@v2 From 943cf016a5175f108660e77852796e1f655ec2bd Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 18:25:55 +0200 Subject: [PATCH 18/77] chore: build containers and then start to mitigate using same image --- .github/workflows/release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d6b50b9ad..2c48e4224 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,7 +73,11 @@ jobs: npm install --prefix examples npm install ts-node - - name: Build and start the docker containers + - name: Build the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') docker compose -f tests/e2e/docker-compose.yml build + + - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 run: YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') docker compose -f tests/e2e/docker-compose.yml up -d From eadef0c4858ccf0fadc5bdf2f73005bd10b35951 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 20:36:17 +0200 Subject: [PATCH 19/77] chore: export subnet variable inside action --- .github/workflows/release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c48e4224..09e9e6ddd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,13 +73,16 @@ jobs: npm install --prefix examples npm install ts-node + - name: Use random string for subnet + run: export YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') + - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') docker compose -f tests/e2e/docker-compose.yml build + run: docker compose -f tests/e2e/docker-compose.yml build - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" From dd2e102dc700e93d53256ff990174fbbe20448cb Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 20:52:05 +0200 Subject: [PATCH 20/77] chore: use proper syntax for env variables --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 09e9e6ddd..8df479cb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,7 +74,7 @@ jobs: npm install ts-node - name: Use random string for subnet - run: export YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '') + run: echo "YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '')" >> $GITHUB_ENV - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 From d38c961136c2a3f1fc6340250e7347d75f999bcf Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 21:39:19 +0200 Subject: [PATCH 21/77] chore: test cypress without goth --- .github/workflows/release.yml | 4 ++-- cypress.config.ts | 15 +++------------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8df479cb9..1dcf8cd9c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,8 +87,8 @@ jobs: - name: Fund the requestor run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" - - name: Start the e2e test - run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + # - name: Start the e2e test + # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server diff --git a/cypress.config.ts b/cypress.config.ts index f76baf63e..f2e9e334c 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,9 +1,4 @@ import { defineConfig } from "cypress"; -import { Goth } from "./tests/goth/goth"; -import { resolve } from "path"; - -const gothConfig = resolve("../goth/assets/goth-config.yml"); -const goth = new Goth(gothConfig); export default defineConfig({ fileServerFolder: "examples/web", @@ -20,14 +15,10 @@ export default defineConfig({ supportFile: "tests/cypress/support/e2e.ts", specPattern: "tests/cypress/ui/**/*.cy.ts", setupNodeEvents(on, config) { - on("after:run", async () => { - await goth.end(); - }); return new Promise(async (res) => { - const { apiKey, basePath, subnetTag } = await goth.start(); - config.env.YAGNA_APPKEY = apiKey; - config.env.YAGNA_API_BASEPATH = basePath; - config.env.YAGNA_SUBNET = subnetTag; + config.env.YAGNA_APPKEY = process.env.YAGNA_APPKEY; + config.env.YAGNA_API_BASEPATH = process.env.YAGNA_API_URL; + config.env.YAGNA_SUBNET = process.env.YAGNA_SUBNET; res(config); }); }, From 8b76a53d00166574eb802486cd0566de7d0e8a5d Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 22:06:26 +0200 Subject: [PATCH 22/77] chore: run cypress inside container --- .github/workflows/release.yml | 14 +------------- tests/e2e/Requestor.Dockerfile | 12 ++++++++++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1dcf8cd9c..b7e24fa03 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,18 +54,6 @@ jobs: # other versions are tested beforehand, so we can keep it short node-version: 16 - - name: Install browsers and graphic environment for Cypress tests - run: | - sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - sudo apt install -y ./google-chrome-stable_current_amd64.deb - - - name: Install websocat and sshpass (required by some tests) - run: | - sudo wget https://github.com/vi/websocat/releases/download/v1.9.0/websocat_linux64 -O /usr/local/bin/websocat - sudo chmod +x /usr/local/bin/websocat - sudo apt-get install sshpass - - name: Build the SDK run: | npm install @@ -100,7 +88,7 @@ jobs: env: GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - npm run test:cypress -- --browser chrome + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index 33670374f..972426bcd 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -14,6 +14,18 @@ RUN apt-get update -q \ curl \ sshpass \ python3 \ + libgtk2.0-0 \ + libgtk-3-0 \ + libgbm-dev \ + libnotify-dev \ + libgconf-2-4 \ + libnss3 \ + libxss1 \ + libasound2 \ + libxtst6 \ + xauth \ + xvfb \ + chromium \ && apt-get remove --purge -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* \ From 5a2d810361ca52b8cb00d6893e5b2184c76c9569 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 22:07:11 +0200 Subject: [PATCH 23/77] chore: install cypress on start --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b7e24fa03..c394467d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,7 +88,7 @@ jobs: env: GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:cypress -- --browser chromium" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && ./node_modules/.bin/cypress install && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 From 11c5c5d97af2d399435b1d4da0948cd21b1b70ff Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Mon, 2 Oct 2023 22:47:34 +0200 Subject: [PATCH 24/77] chore: cypress fixes --- .github/workflows/release.yml | 7 +++++-- tests/e2e/Requestor.Dockerfile | 8 ++++---- tests/e2e/start-requestor.sh | 3 +-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c394467d4..81ff981a5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,14 +75,17 @@ jobs: - name: Fund the requestor run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" + - name: Install and build the SDK in the docker container + run: | + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" + # - name: Start the e2e test # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server run: | - cd examples/web - node app.mjs & + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs &" - name: Run test suite env: diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index 972426bcd..a0122ddb2 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -1,5 +1,5 @@ ARG UBUNTU_VERSION=22.04 -ARG YA_CORE_VERSION=0.12.2 +ARG YA_CORE_VERSION=0.13.1 FROM node:18 ARG YA_CORE_VERSION @@ -31,9 +31,9 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 5e2cecce1..58f136d03 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -4,11 +4,10 @@ get_funds_from_faucet() { echo "Sending request to the faucet" yagna payment fund } - # echo "Starting Yagna in the background to get funds from the faucet" echo "Starting Yagna" # yagna service run >/dev/null 2>&1 & -yagna service run +yagna service run --api-allow-origin="*" # sleep 1 # PID=$(pgrep -f "yagna service run") From b629755c48518df19436d7f0d748008787be7a1f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 09:00:02 +0200 Subject: [PATCH 25/77] chore: fix cypress --- .github/workflows/release.yml | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81ff981a5..760439071 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,19 +48,6 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Configure NodeJS - uses: actions/setup-node@v3 - with: - # other versions are tested beforehand, so we can keep it short - node-version: 16 - - - name: Build the SDK - run: | - npm install - npm run build - npm install --prefix examples - npm install ts-node - - name: Use random string for subnet run: echo "YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '')" >> $GITHUB_ENV @@ -85,13 +72,13 @@ jobs: #region Cypress test execution - name: Run web server run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs &" + docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - name: Run test suite env: GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && ./node_modules/.bin/cypress install && npm run test:cypress -- --browser chromium" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 From 95c8f227b8968e3305b488c0b6c997897375c576 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 11:49:31 +0200 Subject: [PATCH 26/77] chore: use older rc with more net stability --- tests/e2e/Requestor.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index a0122ddb2..9dd41b223 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -1,5 +1,5 @@ ARG UBUNTU_VERSION=22.04 -ARG YA_CORE_VERSION=0.13.1 +ARG YA_CORE_VERSION=0.13.0-rc10 FROM node:18 ARG YA_CORE_VERSION From ebe23c4c43d26919318e169ba3cf6040543a7567 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 12:10:55 +0200 Subject: [PATCH 27/77] chore: run examples test --- .github/workflows/release.yml | 10 +++++----- .../examples/executing-tasks/output_provider-1.txt | 1 + tests/e2e/Requestor.Dockerfile | 8 ++++---- 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 examples/docs-examples/examples/executing-tasks/output_provider-1.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 760439071..253fa787a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,11 +74,11 @@ jobs: run: | docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - - name: Run test suite - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" + # - name: Run test suite + # env: + # GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: | + # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 diff --git a/examples/docs-examples/examples/executing-tasks/output_provider-1.txt b/examples/docs-examples/examples/executing-tasks/output_provider-1.txt new file mode 100644 index 000000000..22ccdd328 --- /dev/null +++ b/examples/docs-examples/examples/executing-tasks/output_provider-1.txt @@ -0,0 +1 @@ +some action logprocessing item: 2 diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index 9dd41b223..bfe53cee6 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -31,11 +31,11 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ - && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ + && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.aarch64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat From 10cc4f468ee6a20bb56b3d4728d9d3cc6856582d Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 12:26:55 +0200 Subject: [PATCH 28/77] chore: shutdown docker container before trying to start again --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 253fa787a..ea8faecd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,7 +57,7 @@ jobs: - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" From 9d5ac414a7bc0f0a5eae69e4c3866a8432d2826b Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 12:30:35 +0200 Subject: [PATCH 29/77] chore: revert aarch64 --- tests/e2e/Requestor.Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/e2e/Requestor.Dockerfile b/tests/e2e/Requestor.Dockerfile index bfe53cee6..9dd41b223 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/e2e/Requestor.Dockerfile @@ -31,11 +31,11 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ - && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.aarch64-unknown-linux-musl" \ + && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat From bed099e2437a904bf2a939e207a3fe019772b45f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 12:38:31 +0200 Subject: [PATCH 30/77] chore: test --- .github/workflows/release.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea8faecd9..77dd8e3bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -80,17 +80,17 @@ jobs: # run: | # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - - name: Upload test logs - uses: actions/upload-artifact@v2 - if: always() - with: - name: cypress-logs - path: .cypress - - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf .cypress + # - name: Upload test logs + # uses: actions/upload-artifact@v2 + # if: always() + # with: + # name: cypress-logs + # path: .cypress + + # # Only relevant for self-hosted runners + # - name: Remove test logs + # if: always() + # run: rm -rf .cypress #endregion #region Examples test execution From 756e83abb597e7856c80c106d76fb7a7cbce0a77 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 12:44:33 +0200 Subject: [PATCH 31/77] chore: reorder test --- .github/workflows/release.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 77dd8e3bb..7c4bf0b51 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,9 @@ jobs: # GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} # run: | # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - + - name: Run the Examples tests + run: | + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() @@ -94,9 +96,6 @@ jobs: #endregion #region Examples test execution - - name: Run the Examples tests - run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:examples" - name: Upload test logs uses: actions/upload-artifact@v2 From ae4d94a852f67074a33a1136fea165bf1081df02 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 15:22:43 +0200 Subject: [PATCH 32/77] chore: build on test:examples --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7c4bf0b51..dadc5f755 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() From 47d6b8807e89d2bfa76467368f272418636900cc Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 15:39:38 +0200 Subject: [PATCH 33/77] chore: test ts-node fix --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dadc5f755..0cb05f990 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install -g typescript && npm install -g ts-node && npm i && npm run build && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() From eb3f1e3d91928b26b404b526ae81a0a10d94249c Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 15:44:50 +0200 Subject: [PATCH 34/77] chore: try installing globally --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0cb05f990..9e49e68b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install -g typescript && npm install -g ts-node && npm i && npm run build && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i -g && npm run build && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() From e1a48b782a491cef09f6d091f3e2234310fe764b Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Tue, 3 Oct 2023 15:51:16 +0200 Subject: [PATCH 35/77] chore: build in startup --- .github/workflows/release.yml | 4 ++-- tests/e2e/start-requestor.sh | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e49e68b3..f07ba999b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,7 +60,7 @@ jobs: run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" + run: sleep 30 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" - name: Install and build the SDK in the docker container run: | @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i -g && npm run build && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 58f136d03..30b6f93b7 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -4,6 +4,11 @@ get_funds_from_faucet() { echo "Sending request to the faucet" yagna payment fund } + +cd /golem-js +npm i +npm run build + # echo "Starting Yagna in the background to get funds from the faucet" echo "Starting Yagna" # yagna service run >/dev/null 2>&1 & From b9d0f9d6410fc0cc7a4cd5dc84894836a3684285 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 08:47:01 +0200 Subject: [PATCH 36/77] chore: use npm ci --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f07ba999b..8ae2bf494 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,10 +64,10 @@ jobs: - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm ci && npm run build && ./node_modules/.bin/cypress install" # - name: Start the e2e test - # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" #region Cypress test execution - name: Run web server From 93fe7670fe80d0bc0bd8a97cb044962fdde8ce91 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 08:50:39 +0200 Subject: [PATCH 37/77] chore: remove workaround that didnt work --- tests/e2e/start-requestor.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 30b6f93b7..bd5042a28 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -5,10 +5,6 @@ get_funds_from_faucet() { yagna payment fund } -cd /golem-js -npm i -npm run build - # echo "Starting Yagna in the background to get funds from the faucet" echo "Starting Yagna" # yagna service run >/dev/null 2>&1 & From 38035d598170cbd461c976910d07e58f040f5628 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 09:06:55 +0200 Subject: [PATCH 38/77] chore: give my marcins idea a shot --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ae2bf494..5cc7876f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,14 +60,14 @@ jobs: run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor - run: sleep 30 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm ci && npm run build && ./node_modules/.bin/cypress install" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" # - name: Start the e2e test - # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" + # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() From 3671d4c9b449e9f0ca2f035f25b46bae610600a8 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 09:36:34 +0200 Subject: [PATCH 39/77] chore: double test timeouts not that were not using artificial env --- tests/examples/examples.json | 2 +- tests/examples/examples.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/examples/examples.json b/tests/examples/examples.json index 688cc6718..c3238ab1b 100644 --- a/tests/examples/examples.json +++ b/tests/examples/examples.json @@ -62,6 +62,6 @@ "cmd": "node", "path": "examples/docs-examples/tutorials/running-parallel-tasks/index.mjs", "args": ["--mask", "?a?a", "--hash", "$P$5ZDzPE45CigTC6EY4cXbyJSLj/pGee0"], - "timeout": 500 + "timeout": 1000 } ] diff --git a/tests/examples/examples.test.ts b/tests/examples/examples.test.ts index cfb6f30ef..40e6ed627 100644 --- a/tests/examples/examples.test.ts +++ b/tests/examples/examples.test.ts @@ -13,7 +13,7 @@ type Example = { skip?: boolean; }; -async function test(cmd: string, path: string, args: string[] = [], timeout = 180) { +async function test(cmd: string, path: string, args: string[] = [], timeout = 360) { const file = basename(path); const cwd = dirname(path); const spawnedExample = spawn(cmd, [file, ...args], { cwd }); From 514dbac3d9c882c166385641344d3f12f91a7f04 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 09:44:36 +0200 Subject: [PATCH 40/77] chore: add option to exitOnError in examples test --- .github/workflows/release.yml | 2 +- tests/examples/examples.test.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5cc7876f3..91f752c0a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples" + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" # - name: Upload test logs # uses: actions/upload-artifact@v2 # if: always() diff --git a/tests/examples/examples.test.ts b/tests/examples/examples.test.ts index 40e6ed627..3e30cfe3e 100644 --- a/tests/examples/examples.test.ts +++ b/tests/examples/examples.test.ts @@ -13,6 +13,8 @@ type Example = { skip?: boolean; }; +const exitOnError = process.argv.includes("--exitOnError"); + async function test(cmd: string, path: string, args: string[] = [], timeout = 360) { const file = basename(path); const cwd = dirname(path); @@ -66,6 +68,10 @@ async function testAll(examples: Example[]) { } } catch (error) { console.log(chalk.bgRed.white(" FAIL "), chalk.red(error)); + if (exitOnError) { + console.log(chalk.bold.red(`\nExiting due to error in: "${example.path}"\n`)); + process.exit(1); + } failedTests.add(example.path); } } From a4f9eb9dbf2c8eb8d2b6e773241eb51beaad8a16 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 10:26:47 +0200 Subject: [PATCH 41/77] chore: increase the amount of providers --- tests/e2e/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 635d6cedf..aa38e11f1 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -7,7 +7,7 @@ services: image: provider:latest restart: always deploy: - replicas: 3 + replicas: 6 volumes: - /etc/localtime:/etc/localtime:ro - /root/.local/share/yagna/ @@ -29,7 +29,7 @@ services: image: provider:latest restart: always deploy: - replicas: 3 + replicas: 6 volumes: - /etc/localtime:/etc/localtime:ro - /root/.local/share/yagna/ From dee83a58b270d9d90e60e13789c5d534eaf4c8e7 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 11:05:14 +0200 Subject: [PATCH 42/77] chore: spawn custom whitelisted provider --- .../selecting-providers/whitelist.mjs | 4 +- tests/e2e/docker-compose.yml | 94 ++++++++++++------ .../e2e/whitelisted-provider-1/accounts.json | 4 + tests/e2e/whitelisted-provider-1/activity.db | Bin 0 -> 4096 bytes .../whitelisted-provider-1/activity.db-shm | Bin 0 -> 32768 bytes .../whitelisted-provider-1/activity.db-wal | Bin 0 -> 160712 bytes .../whitelisted-provider-1/erc20-driver.db | Bin 0 -> 4096 bytes .../erc20-driver.db-shm | Bin 0 -> 32768 bytes .../erc20-driver.db-wal | Bin 0 -> 164832 bytes tests/e2e/whitelisted-provider-1/market.db | Bin 0 -> 4096 bytes .../e2e/whitelisted-provider-1/market.db-shm | Bin 0 -> 32768 bytes .../e2e/whitelisted-provider-1/market.db-wal | Bin 0 -> 276072 bytes tests/e2e/whitelisted-provider-1/payment.db | Bin 0 -> 4096 bytes .../e2e/whitelisted-provider-1/payment.db-shm | Bin 0 -> 32768 bytes .../e2e/whitelisted-provider-1/payment.db-wal | Bin 0 -> 432632 bytes tests/e2e/whitelisted-provider-1/yagna.db | Bin 0 -> 4096 bytes tests/e2e/whitelisted-provider-1/yagna.db-shm | Bin 0 -> 32768 bytes tests/e2e/whitelisted-provider-1/yagna.db-wal | Bin 0 -> 123632 bytes tests/e2e/whitelisted-provider-1/yagna.pid | 1 + .../whitelisted-provider-1/yagna_rCURRENT.log | 77 ++++++++++++++ .../whitelisted-provider-1/zksync-driver.db | Bin 0 -> 4096 bytes .../zksync-driver.db-shm | Bin 0 -> 32768 bytes .../zksync-driver.db-wal | Bin 0 -> 164832 bytes .../e2e/whitelisted-provider-2/accounts.json | 4 + tests/e2e/whitelisted-provider-2/activity.db | Bin 0 -> 4096 bytes .../whitelisted-provider-2/activity.db-shm | Bin 0 -> 32768 bytes .../whitelisted-provider-2/activity.db-wal | Bin 0 -> 160712 bytes .../whitelisted-provider-2/erc20-driver.db | Bin 0 -> 4096 bytes .../erc20-driver.db-shm | Bin 0 -> 32768 bytes .../erc20-driver.db-wal | Bin 0 -> 164832 bytes tests/e2e/whitelisted-provider-2/market.db | Bin 0 -> 4096 bytes .../e2e/whitelisted-provider-2/market.db-shm | Bin 0 -> 32768 bytes .../e2e/whitelisted-provider-2/market.db-wal | Bin 0 -> 276072 bytes tests/e2e/whitelisted-provider-2/payment.db | Bin 0 -> 4096 bytes .../e2e/whitelisted-provider-2/payment.db-shm | Bin 0 -> 32768 bytes .../e2e/whitelisted-provider-2/payment.db-wal | Bin 0 -> 432632 bytes tests/e2e/whitelisted-provider-2/yagna.db | Bin 0 -> 4096 bytes tests/e2e/whitelisted-provider-2/yagna.db-shm | Bin 0 -> 32768 bytes tests/e2e/whitelisted-provider-2/yagna.db-wal | Bin 0 -> 123632 bytes tests/e2e/whitelisted-provider-2/yagna.pid | 1 + .../whitelisted-provider-2/yagna_rCURRENT.log | 74 ++++++++++++++ .../whitelisted-provider-2/zksync-driver.db | Bin 0 -> 4096 bytes .../zksync-driver.db-shm | Bin 0 -> 32768 bytes .../zksync-driver.db-wal | Bin 0 -> 164832 bytes 44 files changed, 228 insertions(+), 31 deletions(-) create mode 100644 tests/e2e/whitelisted-provider-1/accounts.json create mode 100644 tests/e2e/whitelisted-provider-1/activity.db create mode 100644 tests/e2e/whitelisted-provider-1/activity.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/activity.db-wal create mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db create mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db-wal create mode 100644 tests/e2e/whitelisted-provider-1/market.db create mode 100644 tests/e2e/whitelisted-provider-1/market.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/market.db-wal create mode 100644 tests/e2e/whitelisted-provider-1/payment.db create mode 100644 tests/e2e/whitelisted-provider-1/payment.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/payment.db-wal create mode 100644 tests/e2e/whitelisted-provider-1/yagna.db create mode 100644 tests/e2e/whitelisted-provider-1/yagna.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/yagna.db-wal create mode 100644 tests/e2e/whitelisted-provider-1/yagna.pid create mode 100644 tests/e2e/whitelisted-provider-1/yagna_rCURRENT.log create mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db create mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db-shm create mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/accounts.json create mode 100644 tests/e2e/whitelisted-provider-2/activity.db create mode 100644 tests/e2e/whitelisted-provider-2/activity.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/activity.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db create mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/market.db create mode 100644 tests/e2e/whitelisted-provider-2/market.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/market.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/payment.db create mode 100644 tests/e2e/whitelisted-provider-2/payment.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/payment.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/yagna.db create mode 100644 tests/e2e/whitelisted-provider-2/yagna.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/yagna.db-wal create mode 100644 tests/e2e/whitelisted-provider-2/yagna.pid create mode 100644 tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log create mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db create mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db-shm create mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db-wal diff --git a/examples/docs-examples/examples/selecting-providers/whitelist.mjs b/examples/docs-examples/examples/selecting-providers/whitelist.mjs index 26bdcd6fe..51b68fdf6 100644 --- a/examples/docs-examples/examples/selecting-providers/whitelist.mjs +++ b/examples/docs-examples/examples/selecting-providers/whitelist.mjs @@ -10,8 +10,8 @@ const whiteListIds = [ "0xd79f83f1108d1fcbe0cf57e13b452305eb38a325", "0x677c5476f3b0e1f03d5c3abd2e2e2231e36fddde", "0x06c03165aaa676680b9d02c1f3ee846c3806fec7", - "0x17ec8597ff92c3f44523bdc65bf0f1be632917ff", // goth provider-1: - "0x63fc2ad3d021a4d7e64323529a55a9442c444da0", // goth provider-2: + "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", // whitelisted-provider-1: + "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", // whitelisted-provider-2: ]; console.log("Will accept only proposals from:"); for (let i = 0; i < whiteListIds.length; i++) { diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index aa38e11f1..005eea0a5 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -1,40 +1,58 @@ version: "3.5" services: - provider-1: + # provider-1: + # build: + # context: . + # dockerfile: Provider.Dockerfile + # image: provider:latest + # restart: always + # deploy: + # replicas: 6 + # volumes: + # - /etc/localtime:/etc/localtime:ro + # - /root/.local/share/yagna/ + # devices: + # - /dev/kvm:/dev/kvm + # healthcheck: + # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + # interval: 10s + # timeout: 5s + # retries: 1 + # start_period: 40s + # environment: + # - NODE_NAME=provider-1 + # - SUBNET=${YAGNA_SUBNET:-golemjstest} + # provider-2: + # build: + # context: . + # dockerfile: Provider.Dockerfile + # image: provider:latest + # restart: always + # deploy: + # replicas: 6 + # volumes: + # - /etc/localtime:/etc/localtime:ro + # - /root/.local/share/yagna/ + # devices: + # - /dev/kvm:/dev/kvm + # healthcheck: + # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + # interval: 10s + # timeout: 5s + # retries: 1 + # start_period: 40s + # environment: + # - NODE_NAME=provider-2 + # - SUBNET=${YAGNA_SUBNET:-golemjstest} + whitelisted-provider-2: build: context: . dockerfile: Provider.Dockerfile image: provider:latest restart: always - deploy: - replicas: 6 volumes: - /etc/localtime:/etc/localtime:ro - - /root/.local/share/yagna/ - devices: - - /dev/kvm:/dev/kvm - healthcheck: - test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - interval: 10s - timeout: 5s - retries: 1 - start_period: 40s - environment: - - NODE_NAME=provider-1 - - SUBNET=${YAGNA_SUBNET:-golemjstest} - provider-2: - build: - context: . - dockerfile: Provider.Dockerfile - image: provider:latest - restart: always - deploy: - replicas: 6 - volumes: - - /etc/localtime:/etc/localtime:ro - - /root/.local/share/yagna/ - devices: - - /dev/kvm:/dev/kvm + - ./whitelisted-provider-2:/root/.local/share/yagna/ healthcheck: test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] interval: 10s @@ -42,8 +60,26 @@ services: retries: 1 start_period: 40s environment: - - NODE_NAME=provider-2 + - NODE_NAME=whitelisted-provider-2 - SUBNET=${YAGNA_SUBNET:-golemjstest} + # whitelisted-provider-1: + # build: + # context: . + # dockerfile: Provider.Dockerfile + # image: provider:latest + # restart: always + # volumes: + # - /etc/localtime:/etc/localtime:ro + # - ./whitelisted-provider-1:/root/.local/share/yagna/ + # healthcheck: + # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + # interval: 10s + # timeout: 5s + # retries: 1 + # start_period: 40s + # environment: + # - NODE_NAME=whitelisted-provider-1 + # - SUBNET=${YAGNA_SUBNET:-golemjstest} requestor: build: context: . diff --git a/tests/e2e/whitelisted-provider-1/accounts.json b/tests/e2e/whitelisted-provider-1/accounts.json new file mode 100644 index 000000000..d91ecccb9 --- /dev/null +++ b/tests/e2e/whitelisted-provider-1/accounts.json @@ -0,0 +1,4 @@ +[ + { "driver": "erc20", "address": "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", "send": false, "receive": true }, + { "driver": "zksync", "address": "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", "send": false, "receive": true } +] diff --git a/tests/e2e/whitelisted-provider-1/activity.db b/tests/e2e/whitelisted-provider-1/activity.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/activity.db-shm b/tests/e2e/whitelisted-provider-1/activity.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..070f9e7c7155054cf95947c999c7e0cb28fdd6bc GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/erc20-driver.db-shm b/tests/e2e/whitelisted-provider-1/erc20-driver.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..bf7820e108044c6d3195492611ad36cad92c8b11 GIT binary patch literal 32768 zcmeI*J#G_W5C-6}9UvqI9ET9wK*Dd5#w9JvdAI@GA~Z;DQqtuJ93~RCKr-`LDB30k z#Y&du8R^xo?N75i&jH4>+hw$Rm>EP&F7i6f%-27EoO~UQeyy&SH{U*e`M&t``*L;t zdG?>@v(=_r-*u<{eSLSyXU8xz%5?8{^7DgCd%s7S-OS_6US>bjJ$v8%IL|%FJk31I zOfucGt$(+7_uN7L);tse0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!89W0)yDejS$l~ir0O#*OR~& z3k-9!$|MfsMVxH$TY5DDeF%(lr_ez>kK;J)qrIL4wpgI;yHW&d3hc(4nuD8~z-E6U z1_Ct&_Tp{L!A(sdcjmsMK%l6=INleX+}H%#4s=DJra;^3uL#r>nAIHH)C5vsPJuvK zfkk{MJG;TF3%rbv)d|dBR^U~fm7U$-)dkM01DLN>CMSuVS0t5&UAV8oi@E0+j BDS7|^ literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/erc20-driver.db-wal b/tests/e2e/whitelisted-provider-1/erc20-driver.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..1dfdb53bd002907effd45213d2eab5a8742bdca8 GIT binary patch literal 164832 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 YfB*y_009U<00Izz00bZa0Yl*b0PGxV6aWAK literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/market.db b/tests/e2e/whitelisted-provider-1/market.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/market.db-shm b/tests/e2e/whitelisted-provider-1/market.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..9d70df285a958f053a4ee0d2197bcaaa59cc5e4f GIT binary patch literal 32768 zcmeI*xl&X?6vpubgDA=}$TlFG3xlEvZiwtkmAQ%UqKTma1U!|2kq=;GNEz`0@SR%} z+=8ho2>Mdp{XbP-F>|@or_b*Jx*Pu%&FhxZVOHPO-^a?g+QHw?&BMLvufON*SM$%$ z{r^Ybd%pZ=T=RV`Rg|xLT&mN@XMfb&I+dDI{@kVSzPE1WwsJ@5QSK`DlwPGz=~o7n zx-zKTSB8{fWkeZO#+35ft=4Gw+lGEWeqjyYga5|+c#rb>zK3%E34MQ{Oe#~#v@)a2 zDi4)MirZ5NAblL4z_~}f1^h-K>M8<*#mz!jd6Rb#NKL?R;i3@8 zQ^4=QqY%hbU|9DlF6TKqQ)e$QVoz)(dj$aU6d1L+JO^iL1a#MR(_YzoBoN3@pked2 Kn&I5nANd68{xYoq literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/market.db-wal b/tests/e2e/whitelisted-provider-1/market.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..45ef269616ed2c7b1062b28fe37d950f4bfb3800 GIT binary patch literal 276072 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 R1V8`;KmY_l00dY9{~y$zC0+mk literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/payment.db b/tests/e2e/whitelisted-provider-1/payment.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/payment.db-shm b/tests/e2e/whitelisted-provider-1/payment.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..e1c992e9d78de6d001aa4fd3556ee48adf95bf8d GIT binary patch literal 32768 zcmeI5S5lNw5JoRSiOPry113;WL7a0+wqV^omeYWd6JH$@0OY9b7VqEMId&NGnUmOqzMeP~ZXTN{# zHOpt$DGXo$0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO z0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7nKuX7v;55*q|NcLmE<3yb z=eD}ksA&sh>2!LSo)sBtdm8j zD=D1Kw4po(8Z=XAR5NiV)8q8Q^M!0Z6WLCVcCbxzqC5tgGzsdgr!jlasq6`&1h6?~ zl*d4`W}uz(G-mI)mOVj~05-vo@)&5*^uP0-#_T=UvnPlWz-Cuc9s{kKdwIdrn7!vl z_5@J^^hF7pJ!hLHzFy3p!V}=8r->dJ=*NQ7K)YreUvl>5ZM&8C_&}%Iq;AS%z~-dK zsM|4O7Ld|r)KeY~N+sH$C4A?%T7jT87g&- eu-(ZvK~oFKz_Eq&F!TB>)!7~B^LoSrx%m$+s6~hX literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/payment.db-wal b/tests/e2e/whitelisted-provider-1/payment.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..c629c392b4cf3b59aab6393f5a8abc03a5e8e020 GIT binary patch literal 432632 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 AEC2ui literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/yagna.db b/tests/e2e/whitelisted-provider-1/yagna.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/yagna.db-shm b/tests/e2e/whitelisted-provider-1/yagna.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..48a430b8f80fa8eec5fe5d8c4b53bf1816256438 GIT binary patch literal 32768 zcmeI*J2FI35C-68Ff$m&dpt%kxqVoH9T3Z`L|_3*B9$qd5Xfb6V)`hhZplO^IA2$F zojY?M|2^LV`c7U?qEtV7E@FI~>st2n%jwzd`eOQVd4K-)esw#3dVILKzne||d3`?W zyUKGvJN5JT?~>UupWVyu9xvqY#q6c*@{WV-VfJ$NO7?1Y_nPj#qdZsk@^|gto2L~4 z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!89sfw`O=u~jWyFoBu^^Ep{%yXFhXCQwbFmotTSs-+7i zP*b2Ezdq>`x)Q`w=x4{y=2T|m`U-#bUy(6vXcgM`f1J^yt@BN&|^MHqMKVJSS{lVMU zerN3St-hz>WwA6MP!!S=kuHTn$LT$A8zU8D%CX8qD@-Wn#KZM(zPXPzM;3Qdab#2jBmWC=1VFmlUSy|*_zBqm^UyLh4f}Af-PUnl4$%oa;q%cz=g}JGzk;Y0*W9dqh)9P#~ zKYiYfA!pRH`MIeQ8J{Z_)j~;glO$$+f#`hR>#=GkU2R^evcK0geWg{m_qDC7rHNa| z@xSZ)I=1}pe0RR!#an+~eeJ1NCl2ty_EZ9Yg$)7_fB*y_009U<00Izz00bZafxRif z=Lr1HIs)@=|7`W(+u!+an70-40(-N^(JBZ)00Izz00bZa0SG_<0uX?}9f6+f2yQ3; zL-^LO9g?@Xj$q(UcF%tH`kt>N=azK&qv`-9I9UhDttz}NZ@grx2UO^?01ZuVXI^LI@PYj5VoD2DXNnb1-|k%?$$U#it1UFEo~iF zXNeseBXKT}7zwY-MB-hQ>B;AW_atcNpDRpWm{a3zghV)z><>iq!&|MI?eu~sc3upe z4+WwpPIxcd9oSi9+oV@kXw9JOcEdd#x-K%#J7I+7Og!Efj1CQXpS)xj$vcieLOq$= z4)-<`dV4#ay3^U=#PtUQ!RYbh-W%8KgF9@z+w`8DU{7^=qT+V9xIvaluIdeAL2vNY z&296gy18PH$Bj`&y;ia2SK4c=NsF$w+F6{H(pIfS=V^nOw4$$6TSRC_cMtyVP97od zv3~0D5>DiTf#~${t;UAiWUi%&J-dB32K>S3kt5!li#@VVqJ5iszAq)I)mx;tQmvBZ zhP9+O)(AUMM@TYBMn~-~V7pqyV$P2>+0t=N>1Ju8SxwDhEZ5l>(`#-5*SDfqo3tx= zm9o>A+)Z-5YU$059n5M?yZSY@?K^|rmhqXwY^j)MZ+gTswUyeUNZKcE?>XPD=!V3S zo7k=tJIhD+2cqLgw(UvD>7T&pzPrlc_WFKYM{rNq5&Xp~2Odklkp4q{9f3FUx`+K> zg8&2|009U<00Izz00bZa0SG`~*9jc+`V+DwNP-{=vM4KpsIWabDGEs;MTFd#AdaOn ztXcLw1fA;$o<6;L=+?(FKg+Kp@J8PBupev?fB*y_009U<00Izz00bZa0SN2~frI`; zsCTM>HOsyRz?m2L%*0DSGp=1dh5HWfi4I32AOHafKmY;|fB*y_009U<00P?y@cRR} z-$!70|LcL@y!Cq#+;?z0HpD{!0uX=z1Rwwb2tWV=5P$##_Jlxyx58O3@Zh%}|LdcF z5PAXg0(+uw(Fh1Y00Izz00bZa0SG_<0uX?}b^<}3z?l~~ntkr;|2;kQE4YqeJ2u2a z00Izz00bZa0SG_<0uX=z1onhLA8&;-FYt^1e)-|WE76CsUSLo3EgAs<2tWV=5P$## zAOHafKmY;|*iInC6FBn%AN-qH@rO_R;6v^2DSX=#d3(F;h=%|KAOHafKmY;|fB*y_ z009U(o$N-ABJY08up zY6@b?sF-CjW*^}Rept7x7F})eyi!WcniXnROhq)5Y+BEi(_&7p7`l)$S+m8go>HW= zsF$fuB|$WGGc8o8o{|-%QZW>#hKpu}7q?tyFQl%(jdeCyI#G~PLc2b!M&@Fb+AxwE zwA`?ZTUgSKWOG56lys*|mb|G~?W&7%MmEwJ#!ZECiXB#|qzu!PDMi8>SEbK_U0iv8P>rzhCjj||YX-2B(c8QxSNfwscH4%?54q?uy;*z>0;RkOWCiib7II5g|7w zh-0bDNktShvLHzU8`}H%@OI_}zWL1ccmFx@?8o_f0dM405BtFe0SG_<0uX=z1Rwwb z2tWV=5P-n05lH&=(A`f+v1SF>!@Z7RIC5g)n_qZks68+6t|#*Du4yDezUi!Q)Ecx( z^(NI;mQB4ywN`Uo#CTE7msCW(w3s1r`LKF< zBpj;gOSBzcm?@FM+|(2cY*JbykIu|Ysd*;V2`6XNv-!EH5~=9bCS|Fd-fT6=on|?y zS-e$i(ngD|Yh@k1NeZ{T4K^&VE4QPJ;l!x}f#`)3UXN8X>1y*zmGzgVue9p+zP8Ry z6W0X{-Z&TzMu&&JH`i=-eR)}1q-&k0{vPI7Cp5-<`GQ|EStzM|)H(v)&?G-snwc!H z0;bt0VC{?XTR&@?W#f^&Q)1*|zBqm^UyMtNl5k7q(X2}E6Kk2Y*0Ne_cIjJ|VKgW^ z1x<~gh%v&?A>M~whvDmi*{P#WP89f1iMusUkfM5)joreyI!o-(7>RR%M0+m+T^W$MHv~Cv)53-iAVNZ>LjtIy;=W{$L;& zJ$~GKiw-iRwgr_Yw^=88QYH%1wC_P#g2 z($M*tO!(69b~iciDORmT*;_ne3!e3rYKwH1Zg;)Q^o)WL;vVa#9xvfUE*OYTAKz+h zxJ~9-n%J}3cVoaGj2=1Sy}8&U>m=H@sptDrl3Kk*YAe+$S#DTMdSi{S6Lo}rj*!t& zy9?N^R8WX-q7cysF*U(cY}Ivt5S zXNU9t%g(f(&jaT}Vx+NB)7W6x_yM~0$75pF7l_X1x3b#0TAH|ZoS*$8lU?azZ~X6k zcV6JwdHPRZS$JWI-(SEN`D0Jyb@mGz1Rwwb2tWV=5P$##AOHafKmY>wjleOVKOwWb z28e>l?hufZGZK5+a1ViF-gYWM5CvJ36+u)sNyQq)=Lp<+fj9q6``m9w_J5vVN8pRR z;fcJ-eqnP=MbnV9>e0z`oy)(KpXN z^!I$d0K2IGHV8lf0uX=z1Rwwb2tWV=5P$##_O?LJdV%lhZ~XYXZ+zt;9_WpH)x&z{}fB*y_009U<00Izz00ba#9|#n^!NU*r$+9e*6s42W)%FuPD&^XD4iM5wAx%Va zOccgsapTPdvYQ04X7#KWc79$WQKrhNB7)fB*y_009U<00Izz z00bZa0SNpr3WWTJL+x1wR%p+9fe)RYxi;{~AKm7GzQ{+|dI9ze8w4N#0SG_<0uX=z z1Rwwb2tWV=I}#}Ry8mxqZvWrDOpeMz&i-F}A)6FLBBsZr^q8>8*9mO)fBXL*>jj3c zeD1gY>N`(=wEcYqKVs_zB0t(u!;u&Q5P$##AOHafKmY;|fB*y_0D=2aAnZTvwHFD< zzMl00_ALgT`wsr_@Ry#+MrJ45>jl`nz-`P6+>f1!Iza#e5P$##AOHafKmY;|fB*z` zC=mAfheP`EvbIRqf?oens8O#{Rz^QB$C(%SUF*ny9)0{bKH9$T;HN#2Pw((3NDcuA zKmY;|fB*y_009U<00Izzz)l6Od4rzN2d4FjdG@#ZQqrheIkA!!Q@T+$Qkj$@=5msh z%aqI6bhfPIjIu1O%5udtb2OJS(q<}4%jvY9RmxIUs+fY2p;7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/zksync-driver.db-shm b/tests/e2e/whitelisted-provider-1/zksync-driver.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..c267ad1cda4444c33c41638b8bcb28167cc57c49 GIT binary patch literal 32768 zcmeI*J#G_W5C-5$;sj$%u+2{#LgIk=Ybdz|hshl%H~L_W2RAi= z+x>|c2-Fl9#p{}bo0>rG%zZ;|tca1igR6PUlOz^iy)c6NhT7x+*e!2E>;+JCMp0t5&UAV7cs0Rmlt E8&lmbssI20 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-1/zksync-driver.db-wal b/tests/e2e/whitelisted-provider-1/zksync-driver.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..c112469144ce602d223470b777f65559832b10ba GIT binary patch literal 164832 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/accounts.json b/tests/e2e/whitelisted-provider-2/accounts.json new file mode 100644 index 000000000..990f65e46 --- /dev/null +++ b/tests/e2e/whitelisted-provider-2/accounts.json @@ -0,0 +1,4 @@ +[ + { "driver": "erc20", "address": "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", "send": false, "receive": true }, + { "driver": "zksync", "address": "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", "send": false, "receive": true } +] diff --git a/tests/e2e/whitelisted-provider-2/activity.db b/tests/e2e/whitelisted-provider-2/activity.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/activity.db-shm b/tests/e2e/whitelisted-provider-2/activity.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..a66857babcb3f1dc39d8e6ab04a4689361f65b3a GIT binary patch literal 32768 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 G3jYslNl)ki literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/erc20-driver.db b/tests/e2e/whitelisted-provider-2/erc20-driver.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/erc20-driver.db-shm b/tests/e2e/whitelisted-provider-2/erc20-driver.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..efb163d28ffad30e97bfc84ec8b545b87906ef6b GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/market.db-shm b/tests/e2e/whitelisted-provider-2/market.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..b57e2c958b1e1a73151d7f76d329052daa3d0777 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/payment.db-shm b/tests/e2e/whitelisted-provider-2/payment.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..93a7037efdebb6b04a56b6614a02493bb8e22258 GIT binary patch literal 32768 zcmeI5w{DbC5Js;9I06QYy*9}v2V;|LOwKvyXmWBzNkz*W@D_+?;3eolNKhit(jYD0 zn4pyeuBzFFHHbiw05qccb3V5Hp2kY!)q|RkVqAF-y!A zb3})jE9Qy$qEjpoU7}l5M33kd3&kR_SS%4sMW5&w%fxcALaY?4#A>ldtQEBxC!aC- z^S?dA?@ZRePOKLL!hVrKF(hiw@!V&lzOzYe7F)ztF)T*JHZdx;iydO8*d=Puus-|! zYp+>8yG~&M0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO z0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00vSzfCQ(39{u>zX^tjNBKVuy# zI$cTOY^Dw6G0>oyLPMH~b3ENoPds19)^j-9$Uk^L6iVC z$BgnAXx0q0lb*)xJr}blh!Vgi_)#7MEt>v!%F~#==Ti0rQ3BZPO3GuPRdX*-dm6L% zT+W^#N`Ss7L9^#<)5O;^*;9A|T=6u~BLn?da2jaWY~!=e-n?yB^By1Qbeq&oc?{T` z^cZz5M$7_I+KhV2W56~9#Hj1(K^l({HFHYa&Omt#*lvs%bt6X10#e#u63S!1w!*}y zn=xV*kkU5tP#y!e4=G07iV?Gbl(vhC@))p9U@>YeM$7_I+7>p-W59Oc#i-jcViu6n z_VH031GbqlM%{@Kvw)PgDUS2tS1*Ehcv6RO^m#2xIPzDCH&v;+Dke-H0 gog-{_vQ5y`bTY7iIz7ykK1*d{2l|vAF->m%16!U>umAu6 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/payment.db-wal b/tests/e2e/whitelisted-provider-2/payment.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..69b303ff392019841908ff5e61a898beee084b90 GIT binary patch literal 432632 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

ic#S#&>(njhR2 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/yagna.db-shm b/tests/e2e/whitelisted-provider-2/yagna.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..aec3193b521567da47b989197126b7f83c030a20 GIT binary patch literal 32768 zcmeI*yD~#j6b9gx1W6F$65`q`Jb+H)1=Jd)r_kyYYPHsQ6{Sw$5g4Oj9b?QHooW~R zTQe&=$+`Sze-E(E^!YHF>SuQ%#{0Q0Wk21YogP0NT;HC2TwdJWT)mvX9!=gK-=_aO zKX3J2JNfz9s-M4qm&}fCb}zgAeI|d;X3u3e&p5~)X3u9YWG`m7&uL#f%45x5{;ut7 z^ROa7fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNYH(8<{mYsJz96DTRr&B-e3B_BXGfnox^oGCOZ zmM)k;Nr8ThOUBD4P*7kHD+SX<6DTP#jMb9yvI!IvXr_NE0(A;BGjkPzIt7|((TYHw z0;AZibK`bRAm0SAM}a`40?X07*+UViQD7scv0dZF?U_Jq##S`%Us41J5FkK+009C7 T2oNAZfB*pk1PBlyP>;YD+jA`f literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/yagna.db-wal b/tests/e2e/whitelisted-provider-2/yagna.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..91883999cfcfb4403389d8e45f2c3cc990fbfdca GIT binary patch literal 123632 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 GKl~3mpE(f# literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/yagna.pid b/tests/e2e/whitelisted-provider-2/yagna.pid new file mode 100644 index 000000000..25bf17fc5 --- /dev/null +++ b/tests/e2e/whitelisted-provider-2/yagna.pid @@ -0,0 +1 @@ +18 \ No newline at end of file diff --git a/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log b/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log new file mode 100644 index 000000000..87a8b22d1 --- /dev/null +++ b/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log @@ -0,0 +1,74 @@ +[2023-10-04T09:04:34.996+0000 INFO yagna] Starting yagna service! Version: 0.12.2 (8efd8657 2023-06-06 build #296). +[2023-10-04T09:04:35.008+0000 INFO yagna] Data directory: /root/.local/share/yagna +[2023-10-04T09:04:35.016+0000 INFO actix_server::builder] starting 5 workers +[2023-10-04T09:04:35.017+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/yagna.db +[2023-10-04T09:04:35.054+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/activity.db +[2023-10-04T09:04:35.061+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/payment.db +[2023-10-04T09:04:35.069+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/market.db +[2023-10-04T09:04:35.076+0000 INFO ya_persistence::executor] using database at: file:market?mode=memory&cache=shared +[2023-10-04T09:04:35.082+0000 INFO yagna] Db GSB service successfully activated +[2023-10-04T09:04:35.117+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime +[2023-10-04T09:04:35.120+0000 INFO ya_identity::service::identity] generating new default identity +[2023-10-04T09:04:35.169+0000 INFO ya_identity::service::identity] using default identity: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d +[2023-10-04T09:04:35.210+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock +[2023-10-04T09:04:35.220+0000 INFO yagna] Identity GSB service successfully activated +[2023-10-04T09:04:35.223+0000 INFO ya_metrics::pusher] Metrics pusher started +[2023-10-04T09:04:35.223+0000 INFO yagna] Metrics GSB service successfully activated +[2023-10-04T09:04:35.237+0000 INFO ya_service_bus::connection] started connection to gsb +[2023-10-04T09:04:35.329+0000 INFO ya_metrics::pusher] Starting metrics pusher +[2023-10-04T09:04:35.659+0000 INFO ya_version::github] Stored currently running Yagna release Version 0.12.2 'v0.12.2 #295' released 2023-06-06 to DB +[2023-10-04T09:04:35.970+0000 WARN ya_version::github] New Yagna Version 0.12.3 'v0.12.3 #309' released 2023-08-01 is available! Update via `curl -sSf https://join.golem.network/as-provider | bash -` or `curl -sSf https://join.golem.network/as-requestor | bash -` +[2023-10-04T09:04:35.973+0000 INFO yagna] Version GSB service successfully activated +[2023-10-04T09:04:35.986+0000 INFO ya_net::hybrid::service] Hybrid NET - Using default identity as network id: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d +[2023-10-04T09:04:35.990+0000 INFO ya_net::hybrid::service] Starting network (hybrid) with identity: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d +[2023-10-04T09:04:36.034+0000 INFO ya_net::hybrid::service] Hybrid NET relay server configured on url: udp://yacn2.dev.golem.network:7477 +[2023-10-04T09:04:36.076+0000 INFO ya_relay_core::udp_stream] Server listening on: 0.0.0.0:11500 +[2023-10-04T09:04:36.080+0000 INFO ya_relay_client::session_manager] Initializing session with NET relay server at: 52.48.158.112:7477 +[2023-10-04T09:04:36.635+0000 INFO ya_relay_client::session_manager] Established session bf838774581228584b81030bf5271620 with NET relay server (52.48.158.112:7477) +[2023-10-04T09:04:36.638+0000 INFO ya_relay_client::session] [bf838774581228584b81030bf5271620] registering endpoints. +[2023-10-04T09:04:38.671+0000 INFO ya_relay_client::session] [bf838774581228584b81030bf5271620] endpoints registration finished. +[2023-10-04T09:04:38.680+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock +[2023-10-04T09:04:38.685+0000 INFO ya_service_bus::connection] started connection to gsb +[2023-10-04T09:04:38.688+0000 INFO yagna] Net GSB service successfully activated +[2023-10-04T09:04:38.749+0000 INFO ya_market::protocol::discovery] Discovery protocol version: mk1 +[2023-10-04T09:04:38.774+0000 INFO ya_market::protocol::negotiation::provider] Negotiation (Provider) protocol version: mk1 +[2023-10-04T09:04:38.788+0000 INFO ya_market::protocol::negotiation::requestor] Negotiation (Requestor) protocol version: mk1 +[2023-10-04T09:04:38.792+0000 INFO yagna] Market GSB service successfully activated +[2023-10-04T09:04:38.829+0000 INFO yagna] Activity GSB service successfully activated +[2023-10-04T09:04:38.891+0000 INFO yagna] Payment GSB service successfully activated +[2023-10-04T09:04:38.892+0000 INFO yagna] SgxDriver GSB service successfully activated +[2023-10-04T09:04:38.893+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/erc20-driver.db +[2023-10-04T09:04:38.942+0000 INFO ya_payment::processor] Checking for allocations to be released... +[2023-10-04T09:04:38.946+0000 INFO ya_payment::processor] No allocations to be released. +[2023-10-04T09:04:38.951+0000 INFO ya_erc20_driver::service] Successfully connected Erc20Service to gsb. +[2023-10-04T09:04:38.953+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/zksync-driver.db +[2023-10-04T09:04:39.030+0000 INFO ya_zksync_driver::service] Successfully connected ZksyncService to gsb. +[2023-10-04T09:04:39.236+0000 ERROR yagna] Initializing payment accounts failed: Api error: Transport error: Unexpected response status code: 502 Bad Gateway +[2023-10-04T09:04:39.259+0000 INFO yagna::extension] No extensions selected for autostart +[2023-10-04T09:04:39.260+0000 INFO actix_server::builder] starting 5 workers +[2023-10-04T09:04:39.261+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime +[2023-10-04T09:04:39.279+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 +[2023-10-04T09:04:39.331+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xc04863f26dab1bb0d9ec35c793b01c6cc5e7a399] failed +[2023-10-04T09:04:39.332+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xc04863f26dab1bb0d9ec35c793b01c6cc5e7a399] (slot 324) +[2023-10-04T09:04:39.335+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xd5b741d7933630750581229f3a8c614dfe9221b8] failed +[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xd5b741d7933630750581229f3a8c614dfe9221b8] (slot 1896) +[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x216795542a5a344599e3a44c7ff895a55665edb0] failed +[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x216795542a5a344599e3a44c7ff895a55665edb0] (slot 51) +[2023-10-04T09:04:39.337+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x4673efc2e1b79e0054e148572ee7e72922e727b9] failed +[2023-10-04T09:04:39.337+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x4673efc2e1b79e0054e148572ee7e72922e727b9] (slot 1395) +[2023-10-04T09:04:39.338+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x735b47006161d63cc11d14cbd9975941b23f7bd2], address: 124.168.28.61:11517 +[2023-10-04T09:04:39.339+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 +[2023-10-04T09:04:39.340+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x4f6942974319f6adf3a68d48de102ca19675660e] failed +[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x4f6942974319f6adf3a68d48de102ca19675660e] (slot 301) +[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x154949d1b93164d90cdb2eafd09df63b8179bf2f] failed +[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x154949d1b93164d90cdb2eafd09df63b8179bf2f] (slot 134) +[2023-10-04T09:04:39.342+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x518c1a92a0280ca4799b27038233c6f741eb4ad2], address: 51.83.236.130:23001 +[2023-10-04T09:04:39.342+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0xd1dc51756e6f2bb32cd6599ae2baa5fbe205ecdc], address: 82.78.191.26:11509 +[2023-10-04T09:04:39.343+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xdec281baa4777a996a7536be7628fa1d78ffe7a0] failed +[2023-10-04T09:04:39.343+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xdec281baa4777a996a7536be7628fa1d78ffe7a0] (slot 69) +[2023-10-04T09:04:39.359+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 +[2023-10-04T09:04:39.379+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 +[2023-10-04T09:04:39.399+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 +[2023-10-04T09:04:39.944+0000 INFO ya_relay_client::session_manager] Established P2P session 25bf22a1a3440e1d699bff55156868be with node [0x518c1a92a0280ca4799b27038233c6f741eb4ad2] (51.83.236.130:23001) +[2023-10-04T09:04:40.295+0000 INFO ya_relay_client::session_manager] Established P2P session e656a65f79ed8a90281863d916e8d1f2 with node [0xd1dc51756e6f2bb32cd6599ae2baa5fbe205ecdc] (82.78.191.26:11509) +[2023-10-04T09:04:40.332+0000 INFO ya_relay_client::session_manager] Established P2P session a2eb81471a723f38c8e48b277e9dd2c1 with node [0x735b47006161d63cc11d14cbd9975941b23f7bd2] (124.168.28.61:11517) diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db b/tests/e2e/whitelisted-provider-2/zksync-driver.db new file mode 100644 index 0000000000000000000000000000000000000000..bf99cb87915f0a3941ee6a80df26d55154d187be GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db-shm b/tests/e2e/whitelisted-provider-2/zksync-driver.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..58bc46041afe9b025dbe7b7446e57731772e68f8 GIT binary patch literal 32768 zcmeI*yG;X85QX962gcY2*5y>0u8mj5n`kjZB@~po(R-f zpy|yjg_g9c?Ha!&uZBPs0xj(L zHgp(vb_S0wu&JZy1k4{+V65Y?vom;ffs^O}%pX`F{pTu$00IagfB*srAb>zF@C|I2 BEb;&V literal 0 HcmV?d00001 diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db-wal b/tests/e2e/whitelisted-provider-2/zksync-driver.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..97380f15818104202d7ae2461b5f29d3fae938ad GIT binary patch literal 164832 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 f1e^3~qgW7t00bZa0SG_<0uX=z1Rwwbhrs^ Date: Wed, 4 Oct 2023 11:05:50 +0200 Subject: [PATCH 43/77] chore: uncomment providers --- tests/e2e/docker-compose.yml | 124 +++++++++++++++++------------------ 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 005eea0a5..1781a402d 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -1,49 +1,49 @@ version: "3.5" services: - # provider-1: - # build: - # context: . - # dockerfile: Provider.Dockerfile - # image: provider:latest - # restart: always - # deploy: - # replicas: 6 - # volumes: - # - /etc/localtime:/etc/localtime:ro - # - /root/.local/share/yagna/ - # devices: - # - /dev/kvm:/dev/kvm - # healthcheck: - # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - # interval: 10s - # timeout: 5s - # retries: 1 - # start_period: 40s - # environment: - # - NODE_NAME=provider-1 - # - SUBNET=${YAGNA_SUBNET:-golemjstest} - # provider-2: - # build: - # context: . - # dockerfile: Provider.Dockerfile - # image: provider:latest - # restart: always - # deploy: - # replicas: 6 - # volumes: - # - /etc/localtime:/etc/localtime:ro - # - /root/.local/share/yagna/ - # devices: - # - /dev/kvm:/dev/kvm - # healthcheck: - # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - # interval: 10s - # timeout: 5s - # retries: 1 - # start_period: 40s - # environment: - # - NODE_NAME=provider-2 - # - SUBNET=${YAGNA_SUBNET:-golemjstest} + provider-1: + build: + context: . + dockerfile: Provider.Dockerfile + image: provider:latest + restart: always + deploy: + replicas: 6 + volumes: + - /etc/localtime:/etc/localtime:ro + - /root/.local/share/yagna/ + devices: + - /dev/kvm:/dev/kvm + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s + environment: + - NODE_NAME=provider-1 + - SUBNET=${YAGNA_SUBNET:-golemjstest} + provider-2: + build: + context: . + dockerfile: Provider.Dockerfile + image: provider:latest + restart: always + deploy: + replicas: 6 + volumes: + - /etc/localtime:/etc/localtime:ro + - /root/.local/share/yagna/ + devices: + - /dev/kvm:/dev/kvm + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s + environment: + - NODE_NAME=provider-2 + - SUBNET=${YAGNA_SUBNET:-golemjstest} whitelisted-provider-2: build: context: . @@ -62,24 +62,24 @@ services: environment: - NODE_NAME=whitelisted-provider-2 - SUBNET=${YAGNA_SUBNET:-golemjstest} - # whitelisted-provider-1: - # build: - # context: . - # dockerfile: Provider.Dockerfile - # image: provider:latest - # restart: always - # volumes: - # - /etc/localtime:/etc/localtime:ro - # - ./whitelisted-provider-1:/root/.local/share/yagna/ - # healthcheck: - # test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - # interval: 10s - # timeout: 5s - # retries: 1 - # start_period: 40s - # environment: - # - NODE_NAME=whitelisted-provider-1 - # - SUBNET=${YAGNA_SUBNET:-golemjstest} + whitelisted-provider-1: + build: + context: . + dockerfile: Provider.Dockerfile + image: provider:latest + restart: always + volumes: + - /etc/localtime:/etc/localtime:ro + - ./whitelisted-provider-1:/root/.local/share/yagna/ + healthcheck: + test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] + interval: 10s + timeout: 5s + retries: 1 + start_period: 40s + environment: + - NODE_NAME=whitelisted-provider-1 + - SUBNET=${YAGNA_SUBNET:-golemjstest} requestor: build: context: . From 124cfd133d5e22a27797571008d19b34f2da477e Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 11:08:41 +0200 Subject: [PATCH 44/77] chore: add missing kvm device --- tests/e2e/docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 1781a402d..72eca6617 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -53,6 +53,8 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - ./whitelisted-provider-2:/root/.local/share/yagna/ + devices: + - /dev/kvm:/dev/kvm healthcheck: test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] interval: 10s @@ -68,6 +70,8 @@ services: dockerfile: Provider.Dockerfile image: provider:latest restart: always + devices: + - /dev/kvm:/dev/kvm volumes: - /etc/localtime:/etc/localtime:ro - ./whitelisted-provider-1:/root/.local/share/yagna/ From 4a8edb06f155e57b0c861ccf6c8c7edf5a6e3bcd Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 11:40:46 +0200 Subject: [PATCH 45/77] chore: continously fund the requestor --- tests/e2e/start-requestor.sh | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index bd5042a28..0f2a39520 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -5,33 +5,10 @@ get_funds_from_faucet() { yagna payment fund } -# echo "Starting Yagna in the background to get funds from the faucet" echo "Starting Yagna" -# yagna service run >/dev/null 2>&1 & -yagna service run --api-allow-origin="*" -# sleep 1 +yagna service run --api-allow-origin="*" & # start Yagna in the background -# PID=$(pgrep -f "yagna service run") -# echo "Yagna is running with PID: $PID" - -# sleep 4 - -# echo "I will now try to get funds from the faucet" -# FUNDING_STATUS="NO" - -# while [[ $FUNDING_STATUS == "NO" ]]; do -# if get_funds_from_faucet; then -# echo "Funds received from the faucet" -# FUNDING_STATUS="OK" -# else -# echo "Error receiving funds from the faucet. We're retrying..." -# fi -# done - -# stop_yagna=$(kill -9 $PID) - -# echo "Stopped Yagna" -# sleep 4 - -# echo "Starting Yagna again to run it in the foreground" -# yagna service run +while true; do + get_funds_from_faucet + sleep 30 +done From 7603f83d37906aae63c2d19dfc97be940f531ec9 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 11:56:19 +0200 Subject: [PATCH 46/77] chore: disable polygon test --- tests/e2e/start-requestor.sh | 2 +- tests/examples/examples.json | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 0f2a39520..329155cdf 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -7,7 +7,7 @@ get_funds_from_faucet() { echo "Starting Yagna" yagna service run --api-allow-origin="*" & # start Yagna in the background - +sleep 4 # wait for Yagna to start while true; do get_funds_from_faucet sleep 30 diff --git a/tests/examples/examples.json b/tests/examples/examples.json index c3238ab1b..39f7bc056 100644 --- a/tests/examples/examples.json +++ b/tests/examples/examples.json @@ -29,8 +29,6 @@ { "cmd": "node", "path": "examples/docs-examples/examples/sending-data/uploading-file.mjs" }, { "cmd": "node", "path": "examples/docs-examples/examples/sending-data/uploading-json.mjs" }, - { "cmd": "node", "path": "examples/docs-examples/examples/switching-to-mainnet/run-on-polygon.mjs", "noGoth": true }, - { "cmd": "node", "path": "examples/docs-examples/examples/transferring-data/download-file.mjs" }, { "cmd": "node", "path": "examples/docs-examples/examples/transferring-data/upload-file.mjs" }, { "cmd": "node", "path": "examples/docs-examples/examples/transferring-data/upload-json.mjs" }, From a26924df31a49f046c91643cbecdadd32d78bd60 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 12:56:30 +0200 Subject: [PATCH 47/77] chore: use marcins fix for invoices --- src/payment/service.ts | 5 +++++ tests/e2e/start-requestor.sh | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/payment/service.ts b/src/payment/service.ts index 331d64596..06f858aa0 100644 --- a/src/payment/service.ts +++ b/src/payment/service.ts @@ -131,6 +131,11 @@ export class PaymentService { this.agreementsToPay.delete(invoice.agreementId); } catch (error) { this.logger?.error(`Invoice failed from provider ${invoice.providerId}. ${error}`); + } finally { + // Until we implement a re-acceptance mechanism for unsuccessful acceptances, + // we no longer have to wait for the invoice during an unsuccessful attempt. + this.agreementsDebitNotes.delete(invoice.agreementId); + this.agreementsToPay.delete(invoice.agreementId); } } diff --git a/tests/e2e/start-requestor.sh b/tests/e2e/start-requestor.sh index 329155cdf..d77cf281f 100755 --- a/tests/e2e/start-requestor.sh +++ b/tests/e2e/start-requestor.sh @@ -4,11 +4,5 @@ get_funds_from_faucet() { echo "Sending request to the faucet" yagna payment fund } - echo "Starting Yagna" -yagna service run --api-allow-origin="*" & # start Yagna in the background -sleep 4 # wait for Yagna to start -while true; do - get_funds_from_faucet - sleep 30 -done +yagna service run --api-allow-origin="*" From 647cdb57357845efb225e33a64671abc4284f412 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 13:17:01 +0200 Subject: [PATCH 48/77] chore: enable all tests for a full run --- .github/workflows/release.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 91f752c0a..2773157b6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -66,19 +66,18 @@ jobs: run: | docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" - # - name: Start the e2e test - # run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + - name: Start the e2e test + run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server run: | docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - # - name: Run test suite - # env: - # GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: | - # docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" + - name: Run test suite + run: | + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" + - name: Run the Examples tests run: | docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" From 9a91ff76109a4f187eff97e763dc8b8f47dc2b4c Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 13:28:35 +0200 Subject: [PATCH 49/77] chore: retry funding 3 times before erroring out --- .github/workflows/release.yml | 3 ++- tests/e2e/fund-requestor.sh | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100755 tests/e2e/fund-requestor.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2773157b6..c663102b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,7 +60,8 @@ jobs: run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - name: Fund the requestor - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "yagna payment fund" + # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/tests/e2e/fund-requestor.sh b/tests/e2e/fund-requestor.sh new file mode 100755 index 000000000..e1c24e1fb --- /dev/null +++ b/tests/e2e/fund-requestor.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +for i in {1..3}; do + yagna payment fund && exit 0 +done + +echo "yagna payment fund failed" >&2 +exit 1 \ No newline at end of file From 883e5f1c34db4e9e8a9dc13c3b694c21bd10d9e3 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 13:42:20 +0200 Subject: [PATCH 50/77] chore: rename whitelisted provider to provider to fix test --- tests/e2e/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 72eca6617..8c9d01bb8 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -62,7 +62,7 @@ services: retries: 1 start_period: 40s environment: - - NODE_NAME=whitelisted-provider-2 + - NODE_NAME=provider-2 - SUBNET=${YAGNA_SUBNET:-golemjstest} whitelisted-provider-1: build: @@ -82,7 +82,7 @@ services: retries: 1 start_period: 40s environment: - - NODE_NAME=whitelisted-provider-1 + - NODE_NAME=provider-1 - SUBNET=${YAGNA_SUBNET:-golemjstest} requestor: build: From 4ba47e3fd982139e18571ea4113764ef6f6225df Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Wed, 4 Oct 2023 14:25:50 +0200 Subject: [PATCH 51/77] chore: double cypress timeout limit --- cypress.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.ts b/cypress.config.ts index f2e9e334c..4ce809e49 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ fixturesFolder: "tests/cypress/fixtures", videosFolder: ".cypress/video", screenshotsFolder: ".cypress/screenshots", - defaultCommandTimeout: 90000, + defaultCommandTimeout: 180000, experimentalInteractiveRunEvents: true, chromeWebSecurity: false, video: true, From 58419ee4a37a8920539aa6ba7804911eea7d9c2b Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 08:51:17 +0200 Subject: [PATCH 52/77] chore: finish up release workflow --- .github/workflows/release.yml | 90 +++++++++++++++++------------------ 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c663102b3..d1ba2d577 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - pull_request: + push: branches: # Regular release channels - master @@ -82,17 +82,13 @@ jobs: - name: Run the Examples tests run: | docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" - # - name: Upload test logs - # uses: actions/upload-artifact@v2 - # if: always() - # with: - # name: cypress-logs - # path: .cypress - - # # Only relevant for self-hosted runners - # - name: Remove test logs - # if: always() - # run: rm -rf .cypress + + - name: Upload test logs + uses: actions/upload-artifact@v2 + if: always() + with: + name: cypress-logs + path: .cypress #endregion #region Examples test execution @@ -116,38 +112,38 @@ jobs: docker system prune -af #endregion - # release: - # name: Release the SDK to NPM and GitHub - # needs: run-integration-and-e2e-tests - # runs-on: ubuntu-latest - # permissions: - # contents: write # to be able to publish a GitHub release - # issues: write # to be able to comment on released issues - # pull-requests: write # to be able to comment on released pull requests - # id-token: write # to enable use of OIDC for npm provenance - # steps: - # - name: Checkout - # uses: actions/checkout@v3 - # with: - # fetch-depth: 0 - - # - name: Setup NodeJS - # uses: actions/setup-node@v3 - # with: - # # Semantic release requires this as bare minimum - # node-version: 18 - - # - name: Install dependencies - # run: npm install - - # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - # run: npm audit signatures - - # - name: Build the SDK for release - # run: npm run build - - # - name: Release - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - # run: npx semantic-release + release: + name: Release the SDK to NPM and GitHub + needs: run-integration-and-e2e-tests + runs-on: ubuntu-latest + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup NodeJS + uses: actions/setup-node@v3 + with: + # Semantic release requires this as bare minimum + node-version: 18 + + - name: Install dependencies + run: npm install + + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + + - name: Build the SDK for release + run: npm run build + + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release From 0d407e3f051447b2652ff82912a36a7dd8b78837 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 08:53:33 +0200 Subject: [PATCH 53/77] chore: add back regular checks --- .github/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1ba2d577..c649a1e5c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,13 @@ jobs: - name: Perform regular checks run: | - echo test + npm install + npm run format:check + npm run lint + npm run test:unit + npm run build + npm install --prefix examples + npm run --prefix examples lint:ts run-integration-and-e2e-tests: name: Run integration and E2E tests From 856fa5aff026e3ad58addabf7c4d1ae37ecc2d01 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 08:54:58 +0200 Subject: [PATCH 54/77] chore: remove no-goth option from package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index ea610ae4c..621c16be1 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "test": "npm run test:unit && npm run test:e2e", "test:unit": "jest --config tests/unit/jest.config.json", "test:e2e": "jest --config tests/e2e/jest.config.json tests/e2e/**.spec.ts --runInBand --forceExit", - "test:e2e:no-goth": "jest tests/e2e/**.spec.ts --testTimeout=180000 --runInBand --forceExit", "test:cypress": "cypress run", "test:examples": "ts-node --project tsconfig.spec.json tests/examples/examples.test.ts", "lint": "npm run lint:ts && npm run lint:ts:tests && npm run lint:eslint", From 5acd5a236d0b7b1dff19e23b60dbc5fcf4465b47 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 09:19:16 +0200 Subject: [PATCH 55/77] chore: update README --- README.md | 76 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 2da5a0352..19c93c519 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ - [Testing](#testing) - [Running unit tests](#running-unit-tests) - [Running E2E tests](#running-e2e-tests) - - [NodeJS](#nodejs) - - [Cypress](#cypress) + - [NodeJS](#execute-the-e2e-tests) + - [Cypress](#execute-the-cypress-tests) - [Contributing](#contributing) - [Controlling interactions and costs](#controlling-interactions-and-costs) - [See also](#see-also) @@ -114,27 +114,69 @@ yarn test:unit ### Running E2E tests Both test cases for the NodeJS environment and the browser (cypress) require preparation of a test environment of the -Golem Network with Providers and all the necessary infrastructure. [Goth](https://github.com/golemfactory/goth) -framework is used for this purpose. +Golem Network with Providers and all the necessary infrastructure. -To enable E2E testing, you need to ensure that `python -m goth` is executable. Therefore, you must first -install [Goth](https://github.com/golemfactory/goth) according to the instructions described in the readme of the -project. +#### Prerequisites -#### NodeJS +1. Ensure you have `docker` and `docker-compose` installed in your system. +2. Your Linux environment should have nested virtualization enabled. -```bash -npm run test:e2e -# or -yarn test:e2e +#### Test Environment Preparation + +Follow these steps to prepare your test environment: + +##### Build Docker Containers + +First, build the Docker containers using the `docker-compose.yml` file located under `tests/e2e`. + +Execute this command to build the Docker containers: + + docker compose -f tests/e2e/docker-compose.yml build + +##### Start Docker Containers + +Then, launch the Docker containers you've just built using the same `docker-compose.yml` file. + +Execute this command to start the Docker containers: + + docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + +##### Fund the Requestor + +The next step is to fund the requestor. + + docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + +##### Install and Build the SDK + +Finally, install and build the golem-js SDK in the Docker container + +Run this chain of commands to install and build the SDK and prepare cypress. + +```docker +docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" ``` -#### Cypress +#### Execute the E2E Tests -```bash -npm run test:cypress -# or -yarn test:cypress +With your test environment set up, you can now initiate the E2E tests. Run the following command to start: + +```docker +docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" +``` + +#### Execute the cypress Tests + +First make sure that the webserver that's used for testing is running, by running the command + +```docker +docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" +``` + +Now you're ready to start the cypress tests by running the command + +```docker +docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" ``` ### Contributing From 6f831c759288955af7b109fedccb105ba3b09ca7 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 09:27:03 +0200 Subject: [PATCH 56/77] chore: remove provider logs --- .../whitelisted-provider-1/yagna_rCURRENT.log | 77 ------------------- .../whitelisted-provider-2/yagna_rCURRENT.log | 74 ------------------ 2 files changed, 151 deletions(-) delete mode 100644 tests/e2e/whitelisted-provider-1/yagna_rCURRENT.log delete mode 100644 tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log diff --git a/tests/e2e/whitelisted-provider-1/yagna_rCURRENT.log b/tests/e2e/whitelisted-provider-1/yagna_rCURRENT.log deleted file mode 100644 index 7181dd320..000000000 --- a/tests/e2e/whitelisted-provider-1/yagna_rCURRENT.log +++ /dev/null @@ -1,77 +0,0 @@ -[2023-10-04T09:01:47.313+0000 INFO yagna] Starting yagna service! Version: 0.12.2 (8efd8657 2023-06-06 build #296). -[2023-10-04T09:01:47.329+0000 INFO yagna] Data directory: /root/.local/share/yagna -[2023-10-04T09:01:47.341+0000 INFO actix_server::builder] starting 5 workers -[2023-10-04T09:01:47.343+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/yagna.db -[2023-10-04T09:01:47.377+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/activity.db -[2023-10-04T09:01:47.390+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/payment.db -[2023-10-04T09:01:47.401+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/market.db -[2023-10-04T09:01:47.409+0000 INFO ya_persistence::executor] using database at: file:market?mode=memory&cache=shared -[2023-10-04T09:01:47.417+0000 INFO yagna] Db GSB service successfully activated -[2023-10-04T09:01:47.453+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime -[2023-10-04T09:01:47.459+0000 INFO ya_identity::service::identity] generating new default identity -[2023-10-04T09:01:47.515+0000 INFO ya_identity::service::identity] using default identity: 0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563 -[2023-10-04T09:01:47.557+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock -[2023-10-04T09:01:47.566+0000 INFO yagna] Identity GSB service successfully activated -[2023-10-04T09:01:47.569+0000 INFO ya_metrics::pusher] Metrics pusher started -[2023-10-04T09:01:47.571+0000 INFO yagna] Metrics GSB service successfully activated -[2023-10-04T09:01:47.583+0000 INFO ya_service_bus::connection] started connection to gsb -[2023-10-04T09:01:47.705+0000 INFO ya_metrics::pusher] Starting metrics pusher -[2023-10-04T09:01:48.048+0000 INFO ya_version::github] Stored currently running Yagna release Version 0.12.2 'v0.12.2 #295' released 2023-06-06 to DB -[2023-10-04T09:01:48.382+0000 WARN ya_version::github] New Yagna Version 0.12.3 'v0.12.3 #309' released 2023-08-01 is available! Update via `curl -sSf https://join.golem.network/as-provider | bash -` or `curl -sSf https://join.golem.network/as-requestor | bash -` -[2023-10-04T09:01:48.385+0000 INFO yagna] Version GSB service successfully activated -[2023-10-04T09:01:48.397+0000 INFO ya_net::hybrid::service] Hybrid NET - Using default identity as network id: 0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563 -[2023-10-04T09:01:48.400+0000 INFO ya_net::hybrid::service] Starting network (hybrid) with identity: 0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563 -[2023-10-04T09:01:48.438+0000 INFO ya_net::hybrid::service] Hybrid NET relay server configured on url: udp://yacn2.dev.golem.network:7477 -[2023-10-04T09:01:48.478+0000 INFO ya_relay_core::udp_stream] Server listening on: 0.0.0.0:11500 -[2023-10-04T09:01:48.484+0000 INFO ya_relay_client::session_manager] Initializing session with NET relay server at: 52.48.158.112:7477 -[2023-10-04T09:01:48.616+0000 INFO ya_relay_client::session_manager] Established session 9a044b9d96850cebd4442ffca13ae565 with NET relay server (52.48.158.112:7477) -[2023-10-04T09:01:48.619+0000 INFO ya_relay_client::session] [9a044b9d96850cebd4442ffca13ae565] registering endpoints. -[2023-10-04T09:01:50.657+0000 INFO ya_relay_client::session] [9a044b9d96850cebd4442ffca13ae565] endpoints registration finished. -[2023-10-04T09:01:50.684+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock -[2023-10-04T09:01:50.689+0000 INFO ya_service_bus::connection] started connection to gsb -[2023-10-04T09:01:50.693+0000 INFO yagna] Net GSB service successfully activated -[2023-10-04T09:01:50.773+0000 INFO ya_market::protocol::discovery] Discovery protocol version: mk1 -[2023-10-04T09:01:50.801+0000 INFO ya_market::protocol::negotiation::provider] Negotiation (Provider) protocol version: mk1 -[2023-10-04T09:01:50.814+0000 INFO ya_market::protocol::negotiation::requestor] Negotiation (Requestor) protocol version: mk1 -[2023-10-04T09:01:50.818+0000 INFO yagna] Market GSB service successfully activated -[2023-10-04T09:01:50.848+0000 INFO yagna] Activity GSB service successfully activated -[2023-10-04T09:01:50.918+0000 INFO yagna] Payment GSB service successfully activated -[2023-10-04T09:01:50.919+0000 INFO yagna] SgxDriver GSB service successfully activated -[2023-10-04T09:01:50.919+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/erc20-driver.db -[2023-10-04T09:01:50.969+0000 INFO ya_payment::processor] Checking for allocations to be released... -[2023-10-04T09:01:50.970+0000 INFO ya_payment::processor] No allocations to be released. -[2023-10-04T09:01:50.975+0000 INFO ya_erc20_driver::service] Successfully connected Erc20Service to gsb. -[2023-10-04T09:01:50.975+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/zksync-driver.db -[2023-10-04T09:01:51.015+0000 INFO ya_zksync_driver::service] Successfully connected ZksyncService to gsb. -[2023-10-04T09:01:51.179+0000 INFO ya_erc20_driver::driver::cli] Initialised payment account. mode=RECV, address=0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563, driver=erc20, network=rinkeby, token=tGLM -[2023-10-04T09:01:51.182+0000 INFO ya_zksync_driver::driver] Initialised payment account. mode=RECV, address=0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563, driver=zksync, network=rinkeby, token=tGLM -[2023-10-04T09:01:51.210+0000 INFO yagna::extension] No extensions selected for autostart -[2023-10-04T09:01:51.211+0000 INFO actix_server::builder] starting 5 workers -[2023-10-04T09:01:51.211+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime -[2023-10-04T09:01:51.236+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:01:51.278+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x0d7b81ffcfe94cca04839dc24962b3ce78982d63] failed -[2023-10-04T09:01:51.279+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x0d7b81ffcfe94cca04839dc24962b3ce78982d63] (slot 1280) -[2023-10-04T09:01:51.284+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x35a132ebdd0fee670ce432a83f77c4ef58facebe], address: 82.78.191.26:11508 -[2023-10-04T09:01:51.295+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x3365c30b054c56d1c605c5a9ba90ef3c8f8f4393] failed -[2023-10-04T09:01:51.301+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x3365c30b054c56d1c605c5a9ba90ef3c8f8f4393] (slot 105) -[2023-10-04T09:01:51.301+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x190d6a40ceafdffd40b9956a215153ec7898afd3] failed -[2023-10-04T09:01:51.302+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x190d6a40ceafdffd40b9956a215153ec7898afd3] (slot 1412) -[2023-10-04T09:01:51.302+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x653bc8451669fb5762780a0cf664671a591a5132] failed -[2023-10-04T09:01:51.303+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x653bc8451669fb5762780a0cf664671a591a5132] (slot 1355) -[2023-10-04T09:01:51.303+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x23cd7a8e2e191e5f07ec60507be1866af8c9934d], address: 82.78.191.26:11549 -[2023-10-04T09:01:51.315+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x93739a434cbcdc092ee3d11caa62ddfec2997224] failed -[2023-10-04T09:01:51.316+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x93739a434cbcdc092ee3d11caa62ddfec2997224] (slot 398) -[2023-10-04T09:01:51.316+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xd1ddd368cf7edf3ba6ba77471905e323f64748e1] failed -[2023-10-04T09:01:51.317+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xd1ddd368cf7edf3ba6ba77471905e323f64748e1] (slot 937) -[2023-10-04T09:01:51.317+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x535f83f9cd640d6e2790aeab7e2956c7f3cea391], address: 82.78.191.26:11506 -[2023-10-04T09:01:51.318+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xf94c61f09fa9179aff2e07363f9f55e6d2c65463] failed -[2023-10-04T09:01:51.318+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xf94c61f09fa9179aff2e07363f9f55e6d2c65463] (slot 270) -[2023-10-04T09:01:51.327+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:01:51.347+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:01:51.374+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:01:51.400+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:01:51.594+0000 INFO ya_relay_client::session_manager] Established P2P session 8ab024b908ea60c4baa169005b5faedc with node [0x35a132ebdd0fee670ce432a83f77c4ef58facebe] (82.78.191.26:11508) -[2023-10-04T09:01:51.772+0000 INFO ya_relay_client::session_manager] Established P2P session 29b8522c49f1878748f9d6a83b34a197 with node [0x535f83f9cd640d6e2790aeab7e2956c7f3cea391] (82.78.191.26:11506) -[2023-10-04T09:01:51.778+0000 INFO ya_erc20_driver::driver::cli] Initialised payment account. mode=RECV, address=0x797ce3aa8dc255d13e48f31a6b23fe18b5924940, driver=erc20, network=rinkeby, token=tGLM -[2023-10-04T09:01:51.819+0000 INFO ya_relay_client::session_manager] Established P2P session 720493ac96ce1a3048aec098a0251dcd with node [0x23cd7a8e2e191e5f07ec60507be1866af8c9934d] (82.78.191.26:11549) -[2023-10-04T09:02:22.553+0000 INFO ya_erc20_driver::driver::cli] Initialised payment account. mode=RECV, address=0x797ce3aa8dc255d13e48f31a6b23fe18b5924940, driver=erc20, network=goerli, token=tGLM diff --git a/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log b/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log deleted file mode 100644 index 87a8b22d1..000000000 --- a/tests/e2e/whitelisted-provider-2/yagna_rCURRENT.log +++ /dev/null @@ -1,74 +0,0 @@ -[2023-10-04T09:04:34.996+0000 INFO yagna] Starting yagna service! Version: 0.12.2 (8efd8657 2023-06-06 build #296). -[2023-10-04T09:04:35.008+0000 INFO yagna] Data directory: /root/.local/share/yagna -[2023-10-04T09:04:35.016+0000 INFO actix_server::builder] starting 5 workers -[2023-10-04T09:04:35.017+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/yagna.db -[2023-10-04T09:04:35.054+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/activity.db -[2023-10-04T09:04:35.061+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/payment.db -[2023-10-04T09:04:35.069+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/market.db -[2023-10-04T09:04:35.076+0000 INFO ya_persistence::executor] using database at: file:market?mode=memory&cache=shared -[2023-10-04T09:04:35.082+0000 INFO yagna] Db GSB service successfully activated -[2023-10-04T09:04:35.117+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime -[2023-10-04T09:04:35.120+0000 INFO ya_identity::service::identity] generating new default identity -[2023-10-04T09:04:35.169+0000 INFO ya_identity::service::identity] using default identity: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d -[2023-10-04T09:04:35.210+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock -[2023-10-04T09:04:35.220+0000 INFO yagna] Identity GSB service successfully activated -[2023-10-04T09:04:35.223+0000 INFO ya_metrics::pusher] Metrics pusher started -[2023-10-04T09:04:35.223+0000 INFO yagna] Metrics GSB service successfully activated -[2023-10-04T09:04:35.237+0000 INFO ya_service_bus::connection] started connection to gsb -[2023-10-04T09:04:35.329+0000 INFO ya_metrics::pusher] Starting metrics pusher -[2023-10-04T09:04:35.659+0000 INFO ya_version::github] Stored currently running Yagna release Version 0.12.2 'v0.12.2 #295' released 2023-06-06 to DB -[2023-10-04T09:04:35.970+0000 WARN ya_version::github] New Yagna Version 0.12.3 'v0.12.3 #309' released 2023-08-01 is available! Update via `curl -sSf https://join.golem.network/as-provider | bash -` or `curl -sSf https://join.golem.network/as-requestor | bash -` -[2023-10-04T09:04:35.973+0000 INFO yagna] Version GSB service successfully activated -[2023-10-04T09:04:35.986+0000 INFO ya_net::hybrid::service] Hybrid NET - Using default identity as network id: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d -[2023-10-04T09:04:35.990+0000 INFO ya_net::hybrid::service] Starting network (hybrid) with identity: 0x51514593e3f21634e9c72597d2b9ad3d52f4e39d -[2023-10-04T09:04:36.034+0000 INFO ya_net::hybrid::service] Hybrid NET relay server configured on url: udp://yacn2.dev.golem.network:7477 -[2023-10-04T09:04:36.076+0000 INFO ya_relay_core::udp_stream] Server listening on: 0.0.0.0:11500 -[2023-10-04T09:04:36.080+0000 INFO ya_relay_client::session_manager] Initializing session with NET relay server at: 52.48.158.112:7477 -[2023-10-04T09:04:36.635+0000 INFO ya_relay_client::session_manager] Established session bf838774581228584b81030bf5271620 with NET relay server (52.48.158.112:7477) -[2023-10-04T09:04:36.638+0000 INFO ya_relay_client::session] [bf838774581228584b81030bf5271620] registering endpoints. -[2023-10-04T09:04:38.671+0000 INFO ya_relay_client::session] [bf838774581228584b81030bf5271620] endpoints registration finished. -[2023-10-04T09:04:38.680+0000 INFO ya_service_bus::remote_router] trying to connect to: /tmp/yagna.sock -[2023-10-04T09:04:38.685+0000 INFO ya_service_bus::connection] started connection to gsb -[2023-10-04T09:04:38.688+0000 INFO yagna] Net GSB service successfully activated -[2023-10-04T09:04:38.749+0000 INFO ya_market::protocol::discovery] Discovery protocol version: mk1 -[2023-10-04T09:04:38.774+0000 INFO ya_market::protocol::negotiation::provider] Negotiation (Provider) protocol version: mk1 -[2023-10-04T09:04:38.788+0000 INFO ya_market::protocol::negotiation::requestor] Negotiation (Requestor) protocol version: mk1 -[2023-10-04T09:04:38.792+0000 INFO yagna] Market GSB service successfully activated -[2023-10-04T09:04:38.829+0000 INFO yagna] Activity GSB service successfully activated -[2023-10-04T09:04:38.891+0000 INFO yagna] Payment GSB service successfully activated -[2023-10-04T09:04:38.892+0000 INFO yagna] SgxDriver GSB service successfully activated -[2023-10-04T09:04:38.893+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/erc20-driver.db -[2023-10-04T09:04:38.942+0000 INFO ya_payment::processor] Checking for allocations to be released... -[2023-10-04T09:04:38.946+0000 INFO ya_payment::processor] No allocations to be released. -[2023-10-04T09:04:38.951+0000 INFO ya_erc20_driver::service] Successfully connected Erc20Service to gsb. -[2023-10-04T09:04:38.953+0000 INFO ya_persistence::executor] using database at: /root/.local/share/yagna/zksync-driver.db -[2023-10-04T09:04:39.030+0000 INFO ya_zksync_driver::service] Successfully connected ZksyncService to gsb. -[2023-10-04T09:04:39.236+0000 ERROR yagna] Initializing payment accounts failed: Api error: Transport error: Unexpected response status code: 502 Bad Gateway -[2023-10-04T09:04:39.259+0000 INFO yagna::extension] No extensions selected for autostart -[2023-10-04T09:04:39.260+0000 INFO actix_server::builder] starting 5 workers -[2023-10-04T09:04:39.261+0000 INFO actix_server::server] Actix runtime found; starting in Actix runtime -[2023-10-04T09:04:39.279+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:04:39.331+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xc04863f26dab1bb0d9ec35c793b01c6cc5e7a399] failed -[2023-10-04T09:04:39.332+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xc04863f26dab1bb0d9ec35c793b01c6cc5e7a399] (slot 324) -[2023-10-04T09:04:39.335+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xd5b741d7933630750581229f3a8c614dfe9221b8] failed -[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xd5b741d7933630750581229f3a8c614dfe9221b8] (slot 1896) -[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x216795542a5a344599e3a44c7ff895a55665edb0] failed -[2023-10-04T09:04:39.336+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x216795542a5a344599e3a44c7ff895a55665edb0] (slot 51) -[2023-10-04T09:04:39.337+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x4673efc2e1b79e0054e148572ee7e72922e727b9] failed -[2023-10-04T09:04:39.337+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x4673efc2e1b79e0054e148572ee7e72922e727b9] (slot 1395) -[2023-10-04T09:04:39.338+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x735b47006161d63cc11d14cbd9975941b23f7bd2], address: 124.168.28.61:11517 -[2023-10-04T09:04:39.339+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:04:39.340+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x4f6942974319f6adf3a68d48de102ca19675660e] failed -[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x4f6942974319f6adf3a68d48de102ca19675660e] (slot 301) -[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0x154949d1b93164d90cdb2eafd09df63b8179bf2f] failed -[2023-10-04T09:04:39.341+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0x154949d1b93164d90cdb2eafd09df63b8179bf2f] (slot 134) -[2023-10-04T09:04:39.342+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0x518c1a92a0280ca4799b27038233c6f741eb4ad2], address: 51.83.236.130:23001 -[2023-10-04T09:04:39.342+0000 INFO ya_relay_client::session_manager] Initializing p2p session with Node: [0xd1dc51756e6f2bb32cd6599ae2baa5fbe205ecdc], address: 82.78.191.26:11509 -[2023-10-04T09:04:39.343+0000 INFO ya_relay_client::session_manager] All attempts to establish direct session with node [0xdec281baa4777a996a7536be7628fa1d78ffe7a0] failed -[2023-10-04T09:04:39.343+0000 INFO ya_relay_client::session_manager] Using relay Server to forward packets to [0xdec281baa4777a996a7536be7628fa1d78ffe7a0] (slot 69) -[2023-10-04T09:04:39.359+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:04:39.379+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:04:39.399+0000 INFO yagna] Http server thread started on: 127.0.0.1:7465 -[2023-10-04T09:04:39.944+0000 INFO ya_relay_client::session_manager] Established P2P session 25bf22a1a3440e1d699bff55156868be with node [0x518c1a92a0280ca4799b27038233c6f741eb4ad2] (51.83.236.130:23001) -[2023-10-04T09:04:40.295+0000 INFO ya_relay_client::session_manager] Established P2P session e656a65f79ed8a90281863d916e8d1f2 with node [0xd1dc51756e6f2bb32cd6599ae2baa5fbe205ecdc] (82.78.191.26:11509) -[2023-10-04T09:04:40.332+0000 INFO ya_relay_client::session_manager] Established P2P session a2eb81471a723f38c8e48b277e9dd2c1 with node [0x735b47006161d63cc11d14cbd9975941b23f7bd2] (124.168.28.61:11517) From c9dd1128905b0360976ef00be7e2a31557c29975 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 10:43:58 +0200 Subject: [PATCH 57/77] chore: refactor all goth test actions --- .github/workflows/cypress-nightly.yml | 63 ++++++----------------- .github/workflows/examples-nightly.yml | 65 ++++++------------------ .github/workflows/goth-nightly.yml | 69 ++++++-------------------- .github/workflows/release.yml | 16 ------ 4 files changed, 48 insertions(+), 165 deletions(-) diff --git a/.github/workflows/cypress-nightly.yml b/.github/workflows/cypress-nightly.yml index c2ed3acee..5175a6819 100644 --- a/.github/workflows/cypress-nightly.yml +++ b/.github/workflows/cypress-nightly.yml @@ -10,63 +10,37 @@ on: jobs: cypress-tests: - runs-on: [goth2, ubuntu-22.10] + runs-on: goth2 steps: - name: Checkout uses: actions/checkout@v3 - - name: Configure node.js - uses: actions/setup-node@v3 - with: - node-version: 18 + - name: Use random string for subnet + run: echo "YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '')" >> $GITHUB_ENV - - name: Install browsers and graphic environment - run: | - sudo apt-get update -y - sudo apt-get install -y build-essential - sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - sudo apt install --allow-downgrades -y ./google-chrome-stable_current_amd64.deb + - name: Build the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml build - - name: Build the SDK - run: | - npm install - npm run build + - name: Start the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - - name: Configure python - continue-on-error: true - uses: actions/setup-python@v4 - with: - python-version: "3.10" + - name: Fund the requestor + # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" - - name: Install goth + - name: Install and build the SDK in the docker container run: | - pip install goth - rm -rf ../goth/assets - python -m goth create-assets ../goth/assets - sed -Ezi 's/(use\-proxy:\s)(True)/\1False/mg' ../goth/assets/goth-config.yml - sed -Ezi 's/(use\-prerelease:\s)(false)/\1true\n release-tag: "0.13.0-rc10"/mg' ../goth/assets/goth-config.yml - sed -i '/^ENTRYPOINT/i ENV YAGNA_AUTOCONF_APPKEY=try_golem' ../goth/assets/docker/yagna-goth-deb.Dockerfile - - - name: Cleanup Docker - if: always() - run: | - c=$(docker ps -q) && [[ $c ]] && docker kill $c - docker system prune -af - - - name: Log in to GitHub Docker repository - run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{github.actor}} --password-stdin + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" - name: Run web server run: | - cd examples/web - node app.mjs & + docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - name: Run test suite - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - npm run test:cypress -- --browser chrome + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 @@ -75,11 +49,6 @@ jobs: name: cypress-logs path: .cypress - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf .cypress - - name: Cleanup Docker if: always() run: | diff --git a/.github/workflows/examples-nightly.yml b/.github/workflows/examples-nightly.yml index 4833088ca..e09408aab 100644 --- a/.github/workflows/examples-nightly.yml +++ b/.github/workflows/examples-nightly.yml @@ -21,7 +21,7 @@ jobs: run: echo "::set-output name=matrix::{\"include\":[{\"branch\":\"master\"}]}" goth-tests: - runs-on: [goth2, ubuntu-22.10] + runs-on: goth2 needs: prepare-matrix-master-only strategy: matrix: ${{ fromJson(needs.prepare-matrix-master-only.outputs.matrix-json) }} @@ -31,61 +31,28 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Configure node.js - uses: actions/setup-node@v3 - with: - node-version: 18 + - name: Use random string for subnet + run: echo "YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '')" >> $GITHUB_ENV - - name: Build golem-js - run: | - sudo apt-get update -y - sudo apt-get install -y build-essential - npm install - npm run build - npm install --prefix examples - npm install ts-node + - name: Build the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml build - - name: Configure python - continue-on-error: true - uses: actions/setup-python@v4 - with: - python-version: "3.10" + - name: Start the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - - name: Install goth - run: | - pip install goth>=0.15.3 - rm -rf ../goth/assets - python -m goth create-assets ../goth/assets - sed -Ezi 's/(use\-proxy:\s)(True)/\1False/mg' ../goth/assets/goth-config.yml - sed -Ezi 's/(use\-prerelease:\s)(false)/\1true\n release-tag: "0.13.0-rc21"/mg' ../goth/assets/goth-config.yml - sed -i '/^ENTRYPOINT/i ENV YAGNA_AUTOCONF_APPKEY=try_golem' ../goth/assets/docker/yagna-goth-deb.Dockerfile + - name: Fund the requestor + # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" - - name: Cleanup Docker - if: always() + - name: Install and build the SDK in the docker container run: | - c=$(docker ps -q) && [[ $c ]] && docker kill $c - docker system prune -af + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" - - name: Log in to GitHub Docker repository - run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{github.actor}} --password-stdin - - - name: Run test suite - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Run the Examples tests run: | - npm run test:examples - - - name: Upload test logs - uses: actions/upload-artifact@v2 - if: always() - with: - name: goth-logs - path: /tmp/goth-tests - - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf /tmp/goth-tests + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" - name: Cleanup Docker if: always() diff --git a/.github/workflows/goth-nightly.yml b/.github/workflows/goth-nightly.yml index 1106a7b26..f8821a8f0 100644 --- a/.github/workflows/goth-nightly.yml +++ b/.github/workflows/goth-nightly.yml @@ -21,7 +21,7 @@ jobs: run: echo "::set-output name=matrix::{\"include\":[{\"branch\":\"master\"}]}" goth-tests: - runs-on: [goth2, ubuntu-22.10] + runs-on: goth2 needs: prepare-matrix-master-only strategy: matrix: ${{ fromJson(needs.prepare-matrix-master-only.outputs.matrix-json) }} @@ -31,64 +31,27 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Configure node.js - uses: actions/setup-node@v3 - with: - node-version: 18 + - name: Use random string for subnet + run: echo "YAGNA_SUBNET=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8 ; echo '')" >> $GITHUB_ENV - - name: Build golem-js - run: | - sudo apt-get update -y - sudo apt-get install -y build-essential - npm install - npm run build - - - name: Configure python - continue-on-error: true - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Install goth - run: | - pip install goth - rm -rf ../goth/assets - python -m goth create-assets ../goth/assets - sed -Ezi 's/(use\-proxy:\s)(True)/\1False/mg' ../goth/assets/goth-config.yml - sed -Ezi 's/(use\-prerelease:\s)(false)/\1true\n release-tag: "0.13.0-rc10"/mg' ../goth/assets/goth-config.yml + - name: Build the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml build - - name: Install websocat and sshpass - run: | - sudo wget https://github.com/vi/websocat/releases/download/v1.9.0/websocat_linux64 -O /usr/local/bin/websocat - sudo chmod +x /usr/local/bin/websocat - sudo apt-get install sshpass - - - name: Cleanup Docker - if: always() - run: | - c=$(docker ps -q) && [[ $c ]] && docker kill $c - docker system prune -af + - name: Start the docker containers + # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 + run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d - - name: Log in to GitHub Docker repository - run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{github.actor}} --password-stdin + - name: Fund the requestor + # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" - - name: Run test suite - env: - GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install and build the SDK in the docker container run: | - npm run test:e2e + docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" - - name: Upload test logs - uses: actions/upload-artifact@v2 - if: always() - with: - name: goth-logs - path: /tmp/goth-tests - - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf /tmp/goth-tests + - name: Start the e2e test + run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" - name: Cleanup Docker if: always() diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c649a1e5c..33cced3d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -95,28 +95,12 @@ jobs: with: name: cypress-logs path: .cypress - #endregion - - #region Examples test execution - - - name: Upload test logs - uses: actions/upload-artifact@v2 - if: always() - with: - name: goth-logs - path: /tmp/goth-tests - - # Only relevant for self-hosted runners - - name: Remove test logs - if: always() - run: rm -rf /tmp/goth-tests - name: Cleanup Docker if: always() run: | c=$(docker ps -q) && [[ $c ]] && docker kill $c docker system prune -af - #endregion release: name: Release the SDK to NPM and GitHub From 1a9dca5b89128631ed866f12cb4a2624c7143a65 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:15:19 +0200 Subject: [PATCH 58/77] chore: update whitelist to use names instead of ids --- .../selecting-providers/whitelist.mjs | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/examples/docs-examples/examples/selecting-providers/whitelist.mjs b/examples/docs-examples/examples/selecting-providers/whitelist.mjs index 51b68fdf6..77341b755 100644 --- a/examples/docs-examples/examples/selecting-providers/whitelist.mjs +++ b/examples/docs-examples/examples/selecting-providers/whitelist.mjs @@ -1,31 +1,24 @@ import { TaskExecutor, ProposalFilters } from "@golem-sdk/golem-js"; /** - * Example demonstrating how to use the predefined filter `whiteListProposalIdsFilter`, - * which only allows offers from a provider whose ID is in the array + * Example demonstrating how to use the predefined filter `whiteListProposalNamesFilter`, + * which only allows offers from a provider whose name is in the array */ -const whiteListIds = [ - "0x3a21c608925ddbc745afab6375d1f5e77283538e", - "0xd79f83f1108d1fcbe0cf57e13b452305eb38a325", - "0x677c5476f3b0e1f03d5c3abd2e2e2231e36fddde", - "0x06c03165aaa676680b9d02c1f3ee846c3806fec7", - "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", // whitelisted-provider-1: - "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", // whitelisted-provider-2: -]; +const whiteListNames = ["provider-2"]; console.log("Will accept only proposals from:"); -for (let i = 0; i < whiteListIds.length; i++) { - console.log(whiteListIds[i]); +for (let i = 0; i < whiteListNames.length; i++) { + console.log(whiteListNames[i]); } (async function main() { const executor = await TaskExecutor.create({ package: "9a3b5d67b0b27746283cb5f287c13eab1beaa12d92a9f536b747c7ae", - proposalFilter: ProposalFilters.whiteListProposalIdsFilter(whiteListIds), + proposalFilter: ProposalFilters.whiteListProposalNamesFilter(whiteListNames), yagnaOptions: { apiKey: "try_golem" }, }); await executor.run(async (ctx) => - console.log((await ctx.run(`echo "This task is run on ${ctx.provider.id}"`)).stdout, ctx.provider.id), + console.log((await ctx.run(`echo "This task is run on ${ctx.provider.name}"`)).stdout, ctx.provider.name), ); await executor.end(); })(); From 53321a7d6b196f1304a3a0d65eb1c772f0fa21a3 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:16:42 +0200 Subject: [PATCH 59/77] chore: bump provider version --- tests/e2e/Provider.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/Provider.Dockerfile b/tests/e2e/Provider.Dockerfile index 31213731e..20d4f55a6 100644 --- a/tests/e2e/Provider.Dockerfile +++ b/tests/e2e/Provider.Dockerfile @@ -1,5 +1,5 @@ ARG UBUNTU_VERSION=22.04 -ARG YA_CORE_VERSION=0.12.2 +ARG YA_CORE_VERSION=0.12.3 ARG YA_WASI_VERSION=0.2.2 ARG YA_VM_VERSION=0.3.0 From 63fb27c8ce54c52dd73baa30d78841f8ae1bd17c Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:17:33 +0200 Subject: [PATCH 60/77] chore: delete test file --- .../docs-examples/examples/executing-tasks/output_provider-1.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 examples/docs-examples/examples/executing-tasks/output_provider-1.txt diff --git a/examples/docs-examples/examples/executing-tasks/output_provider-1.txt b/examples/docs-examples/examples/executing-tasks/output_provider-1.txt deleted file mode 100644 index 22ccdd328..000000000 --- a/examples/docs-examples/examples/executing-tasks/output_provider-1.txt +++ /dev/null @@ -1 +0,0 @@ -some action logprocessing item: 2 From 2aaff6edb14542b1ce4c1de945e698429dc2368f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:19:53 +0200 Subject: [PATCH 61/77] chore: remove whitelisted providers --- tests/e2e/docker-compose.yml | 40 ------------------ .../e2e/whitelisted-provider-1/accounts.json | 4 -- tests/e2e/whitelisted-provider-1/activity.db | Bin 4096 -> 0 bytes .../whitelisted-provider-1/activity.db-shm | Bin 32768 -> 0 bytes .../whitelisted-provider-1/activity.db-wal | Bin 160712 -> 0 bytes .../whitelisted-provider-1/erc20-driver.db | Bin 4096 -> 0 bytes .../erc20-driver.db-shm | Bin 32768 -> 0 bytes .../erc20-driver.db-wal | Bin 164832 -> 0 bytes tests/e2e/whitelisted-provider-1/market.db | Bin 4096 -> 0 bytes .../e2e/whitelisted-provider-1/market.db-shm | Bin 32768 -> 0 bytes .../e2e/whitelisted-provider-1/market.db-wal | Bin 276072 -> 0 bytes tests/e2e/whitelisted-provider-1/payment.db | Bin 4096 -> 0 bytes .../e2e/whitelisted-provider-1/payment.db-shm | Bin 32768 -> 0 bytes .../e2e/whitelisted-provider-1/payment.db-wal | Bin 432632 -> 0 bytes tests/e2e/whitelisted-provider-1/yagna.db | Bin 4096 -> 0 bytes tests/e2e/whitelisted-provider-1/yagna.db-shm | Bin 32768 -> 0 bytes tests/e2e/whitelisted-provider-1/yagna.db-wal | Bin 123632 -> 0 bytes tests/e2e/whitelisted-provider-1/yagna.pid | 1 - .../whitelisted-provider-1/zksync-driver.db | Bin 4096 -> 0 bytes .../zksync-driver.db-shm | Bin 32768 -> 0 bytes .../zksync-driver.db-wal | Bin 164832 -> 0 bytes .../e2e/whitelisted-provider-2/accounts.json | 4 -- tests/e2e/whitelisted-provider-2/activity.db | Bin 4096 -> 0 bytes .../whitelisted-provider-2/activity.db-shm | Bin 32768 -> 0 bytes .../whitelisted-provider-2/activity.db-wal | Bin 160712 -> 0 bytes .../whitelisted-provider-2/erc20-driver.db | Bin 4096 -> 0 bytes .../erc20-driver.db-shm | Bin 32768 -> 0 bytes .../erc20-driver.db-wal | Bin 164832 -> 0 bytes tests/e2e/whitelisted-provider-2/market.db | Bin 4096 -> 0 bytes .../e2e/whitelisted-provider-2/market.db-shm | Bin 32768 -> 0 bytes .../e2e/whitelisted-provider-2/market.db-wal | Bin 276072 -> 0 bytes tests/e2e/whitelisted-provider-2/payment.db | Bin 4096 -> 0 bytes .../e2e/whitelisted-provider-2/payment.db-shm | Bin 32768 -> 0 bytes .../e2e/whitelisted-provider-2/payment.db-wal | Bin 432632 -> 0 bytes tests/e2e/whitelisted-provider-2/yagna.db | Bin 4096 -> 0 bytes tests/e2e/whitelisted-provider-2/yagna.db-shm | Bin 32768 -> 0 bytes tests/e2e/whitelisted-provider-2/yagna.db-wal | Bin 123632 -> 0 bytes tests/e2e/whitelisted-provider-2/yagna.pid | 1 - .../whitelisted-provider-2/zksync-driver.db | Bin 4096 -> 0 bytes .../zksync-driver.db-shm | Bin 32768 -> 0 bytes .../zksync-driver.db-wal | Bin 164832 -> 0 bytes 41 files changed, 50 deletions(-) delete mode 100644 tests/e2e/whitelisted-provider-1/accounts.json delete mode 100644 tests/e2e/whitelisted-provider-1/activity.db delete mode 100644 tests/e2e/whitelisted-provider-1/activity.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/activity.db-wal delete mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db delete mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/erc20-driver.db-wal delete mode 100644 tests/e2e/whitelisted-provider-1/market.db delete mode 100644 tests/e2e/whitelisted-provider-1/market.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/market.db-wal delete mode 100644 tests/e2e/whitelisted-provider-1/payment.db delete mode 100644 tests/e2e/whitelisted-provider-1/payment.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/payment.db-wal delete mode 100644 tests/e2e/whitelisted-provider-1/yagna.db delete mode 100644 tests/e2e/whitelisted-provider-1/yagna.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/yagna.db-wal delete mode 100644 tests/e2e/whitelisted-provider-1/yagna.pid delete mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db delete mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db-shm delete mode 100644 tests/e2e/whitelisted-provider-1/zksync-driver.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/accounts.json delete mode 100644 tests/e2e/whitelisted-provider-2/activity.db delete mode 100644 tests/e2e/whitelisted-provider-2/activity.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/activity.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db delete mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/erc20-driver.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/market.db delete mode 100644 tests/e2e/whitelisted-provider-2/market.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/market.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/payment.db delete mode 100644 tests/e2e/whitelisted-provider-2/payment.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/payment.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/yagna.db delete mode 100644 tests/e2e/whitelisted-provider-2/yagna.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/yagna.db-wal delete mode 100644 tests/e2e/whitelisted-provider-2/yagna.pid delete mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db delete mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db-shm delete mode 100644 tests/e2e/whitelisted-provider-2/zksync-driver.db-wal diff --git a/tests/e2e/docker-compose.yml b/tests/e2e/docker-compose.yml index 8c9d01bb8..aa38e11f1 100644 --- a/tests/e2e/docker-compose.yml +++ b/tests/e2e/docker-compose.yml @@ -44,46 +44,6 @@ services: environment: - NODE_NAME=provider-2 - SUBNET=${YAGNA_SUBNET:-golemjstest} - whitelisted-provider-2: - build: - context: . - dockerfile: Provider.Dockerfile - image: provider:latest - restart: always - volumes: - - /etc/localtime:/etc/localtime:ro - - ./whitelisted-provider-2:/root/.local/share/yagna/ - devices: - - /dev/kvm:/dev/kvm - healthcheck: - test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - interval: 10s - timeout: 5s - retries: 1 - start_period: 40s - environment: - - NODE_NAME=provider-2 - - SUBNET=${YAGNA_SUBNET:-golemjstest} - whitelisted-provider-1: - build: - context: . - dockerfile: Provider.Dockerfile - image: provider:latest - restart: always - devices: - - /dev/kvm:/dev/kvm - volumes: - - /etc/localtime:/etc/localtime:ro - - ./whitelisted-provider-1:/root/.local/share/yagna/ - healthcheck: - test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:7465 | grep -q 401"] - interval: 10s - timeout: 5s - retries: 1 - start_period: 40s - environment: - - NODE_NAME=provider-1 - - SUBNET=${YAGNA_SUBNET:-golemjstest} requestor: build: context: . diff --git a/tests/e2e/whitelisted-provider-1/accounts.json b/tests/e2e/whitelisted-provider-1/accounts.json deleted file mode 100644 index d91ecccb9..000000000 --- a/tests/e2e/whitelisted-provider-1/accounts.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - { "driver": "erc20", "address": "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", "send": false, "receive": true }, - { "driver": "zksync", "address": "0x33fdd9e94c6d48eb66a85b282fd0c7e8d8de4563", "send": false, "receive": true } -] diff --git a/tests/e2e/whitelisted-provider-1/activity.db b/tests/e2e/whitelisted-provider-1/activity.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-1/activity.db-shm b/tests/e2e/whitelisted-provider-1/activity.db-shm deleted file mode 100644 index 070f9e7c7155054cf95947c999c7e0cb28fdd6bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/tests/e2e/whitelisted-provider-1/erc20-driver.db-shm b/tests/e2e/whitelisted-provider-1/erc20-driver.db-shm deleted file mode 100644 index bf7820e108044c6d3195492611ad36cad92c8b11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*J#G_W5C-6}9UvqI9ET9wK*Dd5#w9JvdAI@GA~Z;DQqtuJ93~RCKr-`LDB30k z#Y&du8R^xo?N75i&jH4>+hw$Rm>EP&F7i6f%-27EoO~UQeyy&SH{U*e`M&t``*L;t zdG?>@v(=_r-*u<{eSLSyXU8xz%5?8{^7DgCd%s7S-OS_6US>bjJ$v8%IL|%FJk31I zOfucGt$(+7_uN7L);tse0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!89W0)yDejS$l~ir0O#*OR~& z3k-9!$|MfsMVxH$TY5DDeF%(lr_ez>kK;J)qrIL4wpgI;yHW&d3hc(4nuD8~z-E6U z1_Ct&_Tp{L!A(sdcjmsMK%l6=INleX+}H%#4s=DJra;^3uL#r>nAIHH)C5vsPJuvK zfkk{MJG;TF3%rbv)d|dBR^U~fm7U$-)dkM01DLN>CMSuVS0t5&UAV8oi@E0+j BDS7|^ diff --git a/tests/e2e/whitelisted-provider-1/erc20-driver.db-wal b/tests/e2e/whitelisted-provider-1/erc20-driver.db-wal deleted file mode 100644 index 1dfdb53bd002907effd45213d2eab5a8742bdca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164832 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 YfB*y_009U<00Izz00bZa0Yl*b0PGxV6aWAK diff --git a/tests/e2e/whitelisted-provider-1/market.db b/tests/e2e/whitelisted-provider-1/market.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-1/market.db-shm b/tests/e2e/whitelisted-provider-1/market.db-shm deleted file mode 100644 index 9d70df285a958f053a4ee0d2197bcaaa59cc5e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*xl&X?6vpubgDA=}$TlFG3xlEvZiwtkmAQ%UqKTma1U!|2kq=;GNEz`0@SR%} z+=8ho2>Mdp{XbP-F>|@or_b*Jx*Pu%&FhxZVOHPO-^a?g+QHw?&BMLvufON*SM$%$ z{r^Ybd%pZ=T=RV`Rg|xLT&mN@XMfb&I+dDI{@kVSzPE1WwsJ@5QSK`DlwPGz=~o7n zx-zKTSB8{fWkeZO#+35ft=4Gw+lGEWeqjyYga5|+c#rb>zK3%E34MQ{Oe#~#v@)a2 zDi4)MirZ5NAblL4z_~}f1^h-K>M8<*#mz!jd6Rb#NKL?R;i3@8 zQ^4=QqY%hbU|9DlF6TKqQ)e$QVoz)(dj$aU6d1L+JO^iL1a#MR(_YzoBoN3@pked2 Kn&I5nANd68{xYoq diff --git a/tests/e2e/whitelisted-provider-1/market.db-wal b/tests/e2e/whitelisted-provider-1/market.db-wal deleted file mode 100644 index 45ef269616ed2c7b1062b28fe37d950f4bfb3800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276072 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 R1V8`;KmY_l00dY9{~y$zC0+mk diff --git a/tests/e2e/whitelisted-provider-1/payment.db b/tests/e2e/whitelisted-provider-1/payment.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-1/payment.db-shm b/tests/e2e/whitelisted-provider-1/payment.db-shm deleted file mode 100644 index e1c992e9d78de6d001aa4fd3556ee48adf95bf8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI5S5lNw5JoRSiOPry113;WL7a0+wqV^omeYWd6JH$@0OY9b7VqEMId&NGnUmOqzMeP~ZXTN{# zHOpt$DGXo$0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO z0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7nKuX7v;55*q|NcLmE<3yb z=eD}ksA&sh>2!LSo)sBtdm8j zD=D1Kw4po(8Z=XAR5NiV)8q8Q^M!0Z6WLCVcCbxzqC5tgGzsdgr!jlasq6`&1h6?~ zl*d4`W}uz(G-mI)mOVj~05-vo@)&5*^uP0-#_T=UvnPlWz-Cuc9s{kKdwIdrn7!vl z_5@J^^hF7pJ!hLHzFy3p!V}=8r->dJ=*NQ7K)YreUvl>5ZM&8C_&}%Iq;AS%z~-dK zsM|4O7Ld|r)KeY~N+sH$C4A?%T7jT87g&- eu-(ZvK~oFKz_Eq&F!TB>)!7~B^LoSrx%m$+s6~hX diff --git a/tests/e2e/whitelisted-provider-1/payment.db-wal b/tests/e2e/whitelisted-provider-1/payment.db-wal deleted file mode 100644 index c629c392b4cf3b59aab6393f5a8abc03a5e8e020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432632 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 AEC2ui diff --git a/tests/e2e/whitelisted-provider-1/yagna.db b/tests/e2e/whitelisted-provider-1/yagna.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-1/yagna.db-shm b/tests/e2e/whitelisted-provider-1/yagna.db-shm deleted file mode 100644 index 48a430b8f80fa8eec5fe5d8c4b53bf1816256438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/tests/e2e/whitelisted-provider-1/zksync-driver.db-shm b/tests/e2e/whitelisted-provider-1/zksync-driver.db-shm deleted file mode 100644 index c267ad1cda4444c33c41638b8bcb28167cc57c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*J#G_W5C-5$;sj$%u+2{#LgIk=Ybdz|hshl%H~L_W2RAi= z+x>|c2-Fl9#p{}bo0>rG%zZ;|tca1igR6PUlOz^iy)c6NhT7x+*e!2E>;+JCMp0t5&UAV7cs0Rmlt E8&lmbssI20 diff --git a/tests/e2e/whitelisted-provider-1/zksync-driver.db-wal b/tests/e2e/whitelisted-provider-1/zksync-driver.db-wal deleted file mode 100644 index c112469144ce602d223470b777f65559832b10ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164832 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 diff --git a/tests/e2e/whitelisted-provider-2/accounts.json b/tests/e2e/whitelisted-provider-2/accounts.json deleted file mode 100644 index 990f65e46..000000000 --- a/tests/e2e/whitelisted-provider-2/accounts.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - { "driver": "erc20", "address": "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", "send": false, "receive": true }, - { "driver": "zksync", "address": "0x51514593e3f21634e9c72597d2b9ad3d52f4e39d", "send": false, "receive": true } -] diff --git a/tests/e2e/whitelisted-provider-2/activity.db b/tests/e2e/whitelisted-provider-2/activity.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-2/activity.db-shm b/tests/e2e/whitelisted-provider-2/activity.db-shm deleted file mode 100644 index a66857babcb3f1dc39d8e6ab04a4689361f65b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*%Si-55CG8f@A_T;>;Lbb^zO+BOuz&@Yc{5#W}#pLUKGR#JZrUxEDIhyEG+aZ zsF~@Wp}Xq^P}6!njuK;;0};)3-sdvg`zId{*LN??oBQ{t%g3qPi|5m`xAUvkKflkV zzGFA9pB?ct{d>#3V=!|lv-5d4$0M1endOY*nT^be%+Bx1`^n6yuKDR4&vebrc8!}k zE;awPUcM3p2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C$5g3T!><+OQtFak-J=wvc1o~BAFgvTv z#!{@sR_yodA)SjrPXvatr%*GNV?DOxpeH+6lt8}}OOO#Aesg<-ATbrE7OwGB@kGHA&~@_Q%dncUih?y{<`j z>+DI0qMXTBl7jpfQ#p~(rS^@B zyn8u*@R*`i$g=qRQ`wONsqA1fCh$|)^h7E<%O4bH`OIXF&&-UEZ_}zJiImHwC&cMo zYGTTo!tWPHQ#0c^eq<(_6*D=>Dk4mK{E@j7%c!M-a=dbMfqY+=ja-b?P)lH%^u z==b{0x-I>lZ=Emr$7DbE=I=h<+ii@jm%uLwKmY;|fB*y_009U<00Izz00h>n06j(NvQn_ z($q|DGMypInIIR3ZX=OHn>29wsAsGDNG31zA@L68#zF_mk^a>6N6` zLPNr`(rMItrNde8icaRRs%E?ky42g4*k-*;a*@=_exa;&aV%+-rpUGi1*3|lkwzAk z3Prubb`Asrkwk)Bt~%SP98*fVq%SQt8rvAv>C)mxiL2i1kgyW=8$I&ap%yi@dc>$g zV6FPKSv6}7tu{issi_4bMmKF*z^&(MLM~e!T}p${SkCILy|(#|PG-gQScYCSJ=oY! z$a)1nD~^if%IFbsnzyDz`9Zqt2rXuIuCDd$QlpT$q>wPx;g4+H%FY^nQNP@}q8zO% zrM$B0t>4ibt0oT8EqxoAQ&utE&KgQ4 z1?vz%J42q+6s1Ua1bd%06*G2pm+lHijU%1QRC+9Obf&c^m#(NCQ{4O0TA9oI#&ok6 zYum$2CVgl|B>iB52qEDvpFc9v?{+c0*(FlkeAR*b2->=j;O}1h&cS!{BcG-B5wP5O zhWw8K0uX=z1Rwwb2tWV=5P$##AOL}zPGAe`6%s?Sp;#&P8k7afj9KmY;|fB*y_009U<00Izz z00b^4&_N5B=LP=w>oa$qX8v45?%?IvFdYIAfB*y_009U<00Izz00bbgE(B<9pmkp0 z(ZA~a&4Cj?%hd7(E->7Mb_RXR-iKg3>##n; zSe`l2<+q2~vE@_U+^?Cif0pSv$9=i`j-F?`UJdUJJsEti^H%{s8I1t~5P$##)|0^U zhr@wLJkBnk(B&fwidHS@YEiL8-ZYQt8p(>OoXF==`^H5++FT$y7~;tgRSQu*oymz~ zVwTTL=J?Fa_&7h6O;4nvj`UZMreW(*~hjds*asilH) zycwuImG(kKmy3&0em}v^r6)uS!Ys11s2FQmZCsz8FBgk)iPRz|9yWC~MXzclDPJxS zChLd20%hrF|~c7U-B+uh-Q% zqodCxTE<*NNLWq=0}(-BPu^+twYBytt)%l^$l2S@iDY98Uh$R~j2=_+dRdbmu9Qo5 zk!W?XKrZhrNc3lmt|9eSI*od-bU5oxI#X}d+jtjrskbq)&3e1d$5(##>>TIWSOeyI`Ut0ap7}e?0;zo(9-fVKz2>Xp5dF)V&nmQ{P zSgU?*R?S*N>mvr;IEk35FFB4F_5&a7xtfs6R@W$C?q}w{z3Q0Z*eC53bMBYs6mxHE zu|qd{j8?n#?6yx4b4ej#s>2`Ix|N+Z`l51lfqbozD$3ESQpzi<-ufNAv1;NV-O{&_ zIfa#=HxTLXXCG4>{cASD=U9sUVAa-vp(K+dsJ!6ltW}5iU{s#d6s1Uagf%_|f>C2f zH;ObL!h=!cNar$@e!e<7(^`~ESJaLv?gwaVWiIm@)6HJ2Z4Wb<^r0D%^n(c^goL|% z{>Vr_%NQSS^&XR}df9j{nO!2q%~u`EV{9OjO0g$58J#Cd1y!ji3sNONuM}mesLpA! zu9iy`_bDDn2fLT!2ahRQg)GbZSf)Ff{qGU;kCbiXgGnOg=%?;=X^%fLmvU>md$pvv`!p~4Q`5*5AiwGNeCxcxtnZJ$d&#FpYxx4F z8SXrHnoh?60SG_<0uX=z1Rwwb2tWV=5P-mqA+W{c6%s?Sp;&BpJQ*9_nN02`?-JYN zvF)*)eC+N$v7LJo!&_LhRB~und{=xpM&@WLMOsA95m@I1{{8$L7r*=LBQm|Yz{9=C zaK9u!FhBqT5P$##AOHafKmY;|fB*y_aI*>A;uTou*#l3XR|p!TtWyP~QGVJm^FD$H zz7T$E--mwhmfH0KXBqASclKs$IO+=l2tWV=5P$##AOHafKmY;|*q{Qpdc1MA`7SzN zg!Lv^^BxP^Z8-EEf-to*&kNkP>yCGSYsbI7joiTvx&@)x5P$##AOHafKmY;|fB*y_ zu+ao)hG3U@Uf`WqH~nYo(M`kjynv5;gW)ccD+Yc{USNO#1Rwwb2tWV=5P$##AOHaf zK;Xs~2>QItrfIz(YFf}+dpTLv!yYfwKdP40%Dhqtv0mo(X<9P%xfBfZV z7QgznQ2%qU%vaJO#ApijgxC^XouEjt< z&N^a(Ygb1(ua#QIG0?n5vz99~+kCNlMEaz%#P1uQ+}9%E*&=bxcXq}BJK~7jj)%tc z2(IjL3HDxc3H^@Zc?3;y*=A05lqyQ4qLxb%iG;d8l^r=i zQnBK(n1I~DgW@con#oP3GbCGULd@i9BvJR^w2-i(h60g+0rrVLV|#PN);ZpU9eG_* z$21ac7oxd%QIhZ2l=sBjlDb+}&)TY6&0TK-atDz+$gXrakBLUcn6>p7?}E;))HxBk zgSq#d2pU}Ts6lcEKeRe`u+$TX#07SlQ%eQqxLPBnzPWU0 zGQ&IP7<4X9K<*%N2M33eNx{m5MDE}*RbT2@9%BQMREj;h$v9j}QbAQJ%7RqM&m(ux zJ$LYuC-WDto!I_1r;jenWp9LE|9+0SG_<0uX=z1Rwwb2tWV=?^9rlubwDK zf&>$>yN43-M5{!>4?K79cmDE)mw)it&zvzHKFGaL&mAN$FhBqT5P$##AOHafKmY;| zfB*y_aAOFViGq!D3_f#I?8tR9g* zsVwpP#wYiYZb81lmEXXRd;uf;Kv#=olah;zQGS0aC+5-Nte6=Qr+I4%Np7H_4Xwg6^m<*LGdgk~BwEH?L`Yap1_Si2@RN5s@6)f+N?LU> z-i2K5(>Erzd7u6OvTaE2Oz5wzCtPR83M365~k>c*53SROZqqF{1%R_&g z*9(-EGWY(+_x|l3nlI47?X&U)$V&_mfB*y_009U<00Izz00bZa0SGh+Z0V>a2gGB$ zWAxvySh7`ez|E2`@Eb#ax_Iu+=jeR|9o(0!d;#(j0|X!d0SG_<0uX=z1Rwwb2tWV= z*Il5V9AG=`&|!uNT%CM@UfLw{dVxRt;pB%u7VnrszQA?wXsi$d5P$##AOHafKmY;| zfB*y_@IeUBtbjiAyui1=|J%2I{qXS&&I^1HU4eB%00Izz00bZa0SG_<0uX=z1g^V) zBX{tbqv4fm==pEHhupz1sVU7Spw}C;mpka6WqMlX4u;QkErq9O<{o3hr>I(#iiLeOZ;lD=f5v)!M{jvPp32a_?u z7Pu6Q)-tbLa>PhlQ@wzhoYs`2cXQ_shWC0-MdERG`GnDh%}H?0W4fGO*<65hrxA?T zs$2M}YrwvG88@oyfod`$S)JWgXQBuTe!3ZTCK^ zcbRR@X!j9W&(AxyxuImzzR}fmN(JS(75-=2Bx|99$Q?xPAWd;>I^L|c2L+?~vxAwD(ox?0lVa83Js7nIL9bDa1j~{b z$5wTqJF5|!>N1snMmSPotwlMLU9C;Sm~N)J){Ijyt=TtTVut`ki zT|R$gr2n!pmB<||s&ksGtL0LAxr6@`nm_kXzc}?Y%^mb}ci3_V$r}t1fB*y_009U< z00Izz00bZafej?E#cw4F4v|~= zxbxAt^U4=ty$RO3_oH$D70m~rIRVyrfp4CF?!V4_<9k!}8qw^5uKH{If&c^{009U< z00Izz00bZa0SG`~{RzfCYxH^nnkdL!Bv%aln0sUWH5)C000bZa z0SG_<0uX=z1Rwwb2&_YapwG)}n$`=VrUkvVmy=aJ?C~=FqiRX5%qxWu>t$}A)@4ms G3jYslNl)ki diff --git a/tests/e2e/whitelisted-provider-2/erc20-driver.db b/tests/e2e/whitelisted-provider-2/erc20-driver.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-2/erc20-driver.db-shm b/tests/e2e/whitelisted-provider-2/erc20-driver.db-shm deleted file mode 100644 index efb163d28ffad30e97bfc84ec8b545b87906ef6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/tests/e2e/whitelisted-provider-2/market.db-shm b/tests/e2e/whitelisted-provider-2/market.db-shm deleted file mode 100644 index b57e2c958b1e1a73151d7f76d329052daa3d0777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*$xc*36vpwxATkKujeyN4Dj}@ikboaN*9EVC&k~@C|g~Qy8|cNni!v zxiNABoenJOlB)Wjxx4@M_{;qFKYQO6 zj%uImZ~e#b!{!y=*HT6Kx+kUj_xS%G^|nr>ODTWu)_31qk8)G#Rr-{EWk9*53@SrP zO{pslWmvhbj3}eZm~uxcuia{mcE4@v_v7c*@ICl%ypQ)NukU*(_n*-BNo7izR%VpD z%B*rvxv#iAg#ZEwAb z&#R@<5_p%^I02{e)1s-g1h&%}C*U-L#fjqq8?bcc0`DvD7;D2JowdIf>*m>aOMwq9 zpYrgcK&`lC;^K3j#4GSI-mO=>^LlZ=O2tiS7gWG+6rwI8&?s&ey3CurgFtEmehU|c zK%N4A2Ofn$o&qDfPjNlZ(V04Xfl-^YXW1(Nkf*?y&F48dQzM|et{3cyJx2n83ey{*D|&eirJ*Y=|DSfxm~1_B@e0w4eaAOHd&00JNY z0w4ea7foR95bqVEQGR}dnmRTmCzBaPF3MBMV){-wn@VPt$wEq1^0{L55LaJ37EQ#Y zMD*r?m{dKU6q=O_MUt0vOElhhI2sRicZH?lc>iEDJ}w=JjY~sE6VlMwz(7Y~CYL1f z68(d*(L{7`*b0#j#12Ns1`<-=SUesZN+hi);Zc`IoQ(3ElFP^^ipQtO^LjEhqvo~q zWc6YtBh|y`bA6M+mOkfO_JWxYe0%VHfALRWYNZ!-Qv&^l0|Y<-1V8`;KmY_l00ck) z1V8`;KwxDOpf&=xxsKr0zx;zU5B%!UppVuSc7c`I;;0n}fB*=900@8p2!H?xfB*=9 z00@)_*xn;}|Laqe>SOPCZ;kf|#8Pt3PrhH&djyRnAuqf^v${%nqwP`ulP$0K*7{F1 zU*~-+uQlG`?R$_M)-6gKb-Qp2%ENq=lx*N+z|CQgUipuohlaQ{*+D%7sW5WW59=?E$jji7q{IWG|nXR`m5! z$;y$mn;bkEkM$oKqD!7a+6}`}Ja#Zf)-(0RMkNR8q+XgWo-aG&52Z;jMw9fqCN&6#Vf=DJ(FVowi0-^{j=*@U`8RTQ(K_@4`NI9J9`TNz8kM&f$Ev^ma@(-q zLsi|l2EbSiSfq`ZOUsVa7F(qqfuUR~D|e8T;rVHwR}2LBGuv6H@+{G{221U`-MGcI}b6diQqi*}MCCQY~!{LGwKV@%8kY=9|y1q3;p!!jCxe4+jW< z00@8p2!H?xfB*=900@8p2!OzfAh6mUZnm2WNVT+g08G2U&L{4C{QP@wSFrEkifC|D z0t7$+1V8`;KmY_l00ck)1V8`;Y7wBX`CI-7-aPQ0;m`fIkG5mq!CKf54gw$m0w4ea zAOHd&00JNY0w4eaD}sQB*1}vb@aTXi-toEra4psgtcbQnB|rcKKmY_l00ck)1V8`; zKmY_lpcVlyjbPdZ*1Xnv-B&)d`X8}gpcXcSg8&GC00@8p2!H?xfB*=900@AiZ^hz%hnN>1!Vg1>=8n~^Sqmu<$ z&dNE}yuR+NLh{nm(7epcq&j|DCDSfYeEd_&ySC(igZBs)xuKCA2!H?xfB*=900@8p z2!H?xfB*NMO9K$gi0GFW7-8quDSY_|GMjMKSwtm zXcV5~gl`G23(pBZ7rskl;Q#>;009sH0T2KI5C8!X009sH0T5Vv1pMwzykQtjjoxL!m?<00JNY0w4eaAOHd&00JNY0w8c12&|!b zns$NT-yV#&{OFD&STArHNFz%S009sH0T2KI5C8!X009sH0T5Vv1lH0bnRbCk&-p&^ zgL{85i}eCauc1&P5C8!X009sH0T2KI5C8!X009uV3 za2ZG=OAr775C8!X009sH0T2KI5C8!XSb7B3(;}I6f%`xI?ae1oe`$5AaGvvf6|U_? z;jz}w!Gq7>p#_eo%boP;+gPnY50m~o9k4=eXbi^H!QtMp+r}XfN;LCbF`D^ zlw3wWQ9M4SsB$tjqvo~qWHwc}TUL{)$$~6r<(!&~IIpY|&NsX+wzuWEc>FU0CESiW(iRjG(G071a@=4@SGSV&4c;De@JQV5b3QI#r6VlMwz<@Ly z?;niD$E72&@eVEKbU~g?nm0;1(&-*IcI7n zrg5wMv|LaXxhN%Kw~+!Fh0-%h=W|81kWzALS+JJ6sHRl8N+Hq(SuX)edw`%x^bf`y z*~`?c=|YjTn;bkEkM$oKqIg2u4Z~7Ab}$x?4fVxFov4#~kwQu)tXF|eZRb)c8zzQC z^YDfDt@el`?KQ;6YAaKU%nNIT^R7P;BN6^|niV4EHioD$SA|1! zXpg1kR_dgVuHXyz2_Es*NR8HE*je42xwc9;&%4E*9)7-=Z6mV@b%}EHX#HYqrIxa% zvl`3UQ`ufGMaL3H`-ezwgR!B6&PJExlENspl{7ZgKQb2ch5K7Q;vGFTDsL~2Re$^C zwqd`As=9FvfT1jlv=MV@*>T!ptF$99luKph4w5oFKkf61fdGGII}25wCA!vNseSj` za$`d-o}5G8o#b`Cs*)uVn#xX>D<|nd>|k_kAQ2i(#1B%n6$%E%I|JFyKt>82-WwR) z8<+@oNWr0_w+6$8n$aqgR8LM*{WG7N-mF+pUVZi8utiCE`T1i)xLJd_lcdXef z?%c`GlX{f~tWq?Vu2xiERrp$PT`i!~EZxK!pLQavCT4K+bv`@-{+UauGo@@HDvO6pq4sGxq*RH<@$kYv@&>|d;&V|%8hr!H=g zqzW^a&&X_}S5R_w>`|`SwPy zxPL!?pUgIrKDx~0i~;GGoG}`#Jit?_@yerJXhYV~7FPiDh{q$!`)hzMue_zp%Y(f0 z8Mm%|{bdcnGHytV>Qkl;=N)t%Fl1m+9#RJ zkQulKlubd3PddMG23(JmO@u8iMM@N=B-Oxye&wlkwzu75y~r0^fUjgYt|GFlR_gQiY2MB-w2!H?xfB;Kiu63Q4KIG4hXmgH| zRYfy3I8H^|?7|UfJw7=ft=VaX{^&&Q0k(;UX<+n)_pkMcmt>&5-@nEyc6Rdb?`J2u zR#}aSu64fFRwZYsRVVY2(Dra{ub5_)GM;=Ep72d1IiLsNhPquoK z7-gy&hp`0G5>aC}`}}I-V#~3P*jnBsUJbJ!eJH5IhN$IM$HVh%YD&o@)qJ_BM=!r_ zYjX;-9+sM>#g#M33^jF|hHS%Fqt}=O7M00dN}ValnibuVvQl6=pUo<&S|urK1kws; zv;SBU%^15c*-(Ajy-L##__gD=`PYs`v8T`9-sZ(`9@-Cmc4Hq^Yqgc1rqxP)oYB)% z^)9N}f3Ca5yBvS{Ak!L={+V`xt>QC_80I9pW=j{39kw-3SSeR7Cui-aex2_ zfB*=900@8p2!H?xfB*=900_Lr1X?|AZd*bwWEEmDl{3CZH@7K9*CNRoe}kLb95oEC zem6OZ%Xi6X6061K=C<~w$ZEu?DUyaKX@=!oM#)Y3ITCHyuv3$&@U%LnUErnmjgNls z$3KaWjtr3H-_k_BkWH!5Zf+Ila&b3F5{c>}e;ddj-It(&{L%Li=%;yT`I#qGK3&{( zJML{HfxPerjdGRn2HsVu!fM%FzT}^&U|E-H{c5$)4={E7zVln~9sz9X*00Ey!=}C{ zzk4iKYdYQ|7_ayS2HqoJ*Hx63_!~;2?^^f}+M3&@TCry(3Z)JoqYa0!od!gt93 zaDV^^fB*=900@8p2!H?xfB*=900=A@0y|vp@a|n*ySm8R5PKrMw#;vJKRh!l}rVsQkqLb^F4xp z_s#e18GPpVJLq}=^6~&Dye528ctUtYxR+kQ0RkWZ0w4eaAOHd&00JNY0w4eaAh4JO zHa-+@;DTG}>;A;q#K{rj0_~*bDrWsdBMsbUEs*Y6YhB-P_HL3$+athAL~_u!pk06V zt_E)F=BVig&b+?vtU~g#_7yNMle*A%39R)3KmE6N{O&J*{lPa(yTD@B6?uUG2!H?x zfB*=900@8p2!H?xfB*Z>rCPRrB8SD~Ny zDzqFIHW62a;(KR6je!0kpi~SLYj7gFTC=rxBc}!Yj{?fz|YOrd{Bf&+uQr`w#BfXs#Ey;G!S_2!H?xfB*=9 z00@8p2!H?xfB*=9z;Yt6h8EVe3w(L!wHv$t_~W{h0<^00ck)1V8`;KmY_l00ck)1VF$f zu#SE)?E)Y9bARUSDgQf-KsWiM>j~()2GpOSw(S7?a0sKw$C5Y9Jtj&|~#lFP^^ipQrERZga6)Vy|{H2h+uCJVBh zm2+w`;=Hm>IN$KP*xt^c-KVCGP00>V8jjP|eeqZ{5t9$ohM`Gh0TFmK!Je#y!b~w`MQIukFMlMMGLy6d- zSlr4>56sDvd9t0Ss^oJ?M`|XfajX2aTu>FcC?#UIkpdZo(lbiub49g~QgUipu$Ef$ zCQ_vk>4L16fTTS@&?Nc?V~*@)x*5qrk+ho}JQ|Pn9~z=~LfQ?(QapAr7LN_}#YUZ| zlX{UtN+zsVflY1aQYjlIhD7u5h4-!Yh$HPa#K>wZQ;N(BYlQQzKM^Al{&boZBIY)R zs4!QAN}|MsU#K({XO0!q1!dYP4!u1k8SLoDxBZq8g=C7kEoVowi0 z-^{j=*@U`8IeN5yv9(f5+0$8#zb!X5E8V7xPs?F?k3z~Q}t!M%ZrV22bOI(lm`Y^WKnGD-F1v|L3UrihZANTpS_=h%h; zqYJY7s+4IZT~!J-RMp(EX0Nz&CqGZ>RT{8L(O9}#QGHe6Yr%E3fKIb?6Kjm?F6-`v z{FH13N0?x#?{KW|h!oNyC^;z2Vlc>`X=N*^YbB$C`bkrz z%IQIpRWq}Hv3ic}nU5yk9MIASw~x3 z0nj5Jk0|f20lK{MmM$+3^3G@6UQPS@%Nl@X-cS|ug_5P?$wkd0mvtBEY4C_g0(G^V z*+aC(YMeX7d&Ov!pWmRhPcoSyGjMq-Sxnza=2ywAGO5pti`7G1wzjJtPYTV-g(A@$ zmg=RNnR(_YP09;1xg?24hrH25ba2=TG4+eoHx?)J?nKgx5*~GV#K~wi1l5a`j8qS! z>j0XJr@*V|r)d{B{U1H6UP_&awR$_bX6`W8daiZ6;p3i{y(!;UUE{4Axx>D%dR{hC z*70$=ZIf5rw~s%&lkFzV+%TyPY(|$UyIyhpEQ@6gHqMENtr03s0UZ+=bFgwu8)y%@ ze6tzzruJcr-m{Jw4UI+~1B+Cs$kU}U#W6;EX3n6E`NN$<^1I1cKbyab zr_`@T&4>0#_ZUVHm8r$^d9HZW6elx>8rAGoi3s&+RPfAu#HkyD|;iA;F_CQws*+ef$9rKwB zfAqK4uF`~w?jf@SrIJ~2BaS6i7phB2`4Gu)Ce~Yx z>5ry}v6FN?(jqGwgQRsor%2nB2W^3(GMP)MGXcDVe02 zFSoJiwX+W-6{Z+QcVZuUnGq~slru@EMxYf;ndvG8rt{gXqLL01S{zXnhTwA?7!M0UdqoDV%wW8&1cso8mc*t zOyu!v$8!I*W8cP0`MIKPQS9mSx3_umn}_y8U%5)Ft)Vq7R2rR`!Gw+vzA(q}?nN^D zld=BE<@n17DYr=HDW+ZE>7U%V;R~-ve_{D4{F(5o@S^ZF;c4OX!l!6V93TJ!AOHd& z00JNY0w4eaAOHd&00M6%fmV;3+g7rO`WoHbCgW!|e}kLbY+6wLZgOH;R$E+dZmVT- z_3Q!L$p={XhKM|NFap_M7Vku2`vXV-NrV5C8!X009sH0T2KI5C8!X z0D-rH08ejX+64l~o@xH8cQ?N}Ix;}Ei<2hug=|Wdc5|yZmy5eel1Nk+`J=W3>c@b7 zr|%&&kU#U#@-t7We7d;ncHG-Y0(s#L8s#eCjndwR&DVLK!rq2e$Ss4*``2FD3w`TO zyH{!N>0;kO>^oTF6>#!0nf_X^xx0*cVGZ8Fv$ngr9Pi*Q%6pP?-7Vhb`1akB-gj_* z+NbY)g?$J07fG@2Aod-kdk)*xpe7r2?BH+(w!_1|gXP<0m>aNN(3YgNHh9FogUfYm zPV75)+4dbIPnhee??L)(Z`lQszZrk{flvPB9DR?#Eqss@z9T$NK5&2l2!H?xfB*=9 z00@8p2!H?xfB*FP zJ6w9KF0y;#o=9)kt}gPgJQi=n>gtYkclGY>j?kQ)d66nn-vpLj;8)K)rrh**fA}(e zkH9TF&j~*g{(*ep009sH0T2KI5C8!X009sH0T2KI5Lm(l*0{sG-Jsw$E-}^v*J^jT znZ)WUnF>gi=$Zk`F7UG#Tff-y;E$if{sK$5u~9S-009sH0T2KI5C8!X009sH0T5U` z0;_3O=KcbA-t*dvFZ{198Q29D4={290T2KI5C8!X009sH0T2KI5CDNCOn~kmXxRlm z=vw#lo1g#KfKgt$hu|9WM{NgmU4dpUAfGru00ck)1V8`;KmY_l00ck)1V8`;RtABq zNHr`!g&$5AAN=d9U-(3;x04tG4s)&NTE`nc?s?gp@_p4c-nx-H-13nBr}bC-blWDc zxNjeScBh&;HYI0Mg}Y@nnUg2;s*+Nbd@d=^$~m>#bzfgR7EQ#YMD*r?m{cuRNZVUh z$w>V}iP)i7TpBu>kcP$v2BhJ5|6nveE**)DOVP2!(f%Ql;b3ei(V-NAOD{@h57$%rD zSvsF9s)bYycLSx0ISW$9KFadKoADZwa`0$8)_-V-c94+0c3~+VI~a?{hWcWo6?&c& zQZivy*huFf4ooyT>(42qcTZ7CIZ#MVXi~%qSTvoMrww6?(P9$0BeFrk7?Nu=gqGV_ zk!F;*Q_j*z;nRKVy<%@K|G+j@fKsN!+VqLz>eZFR$q~nrsteU6rF<$VB3-B%AV}El^Y@b18MEAhQaE6%)3im4w6!*F;3G`PfkZ$XG071(EL8A(e30 z+P-vIm!^bV$SR~rx^jw6lb$uJfA34>((=@leqsq&bx9i5beASYN3QaS$=({yE=tAK z%Vheza9rQuZ{haPA#tvCou=F7Ml{hZMbr9*e(Kre(MHevCq=K=*~vf1R}^DI5n5TS zT~Kr_p)H9OGl1Duq1MeZWF*dIG;LU2Ng0u9>8kw1gj}eRl^&3lY; zsHDS|CDkfz=y+zp7`Eml!C^UPjv&*!gI4G62$mE;&>TBDf|Yax&4msa`>(z< z_ef&fo7^k3&+c385l7l<=nS12kvdaZm>0;;Yc7x2-p(&kFH3V9H+#h+?fl#kC6|#; zIA&tDDZ7$!2Cp{MQ~%I`*lp%)!K}G6twbiPj_k=?m7T71NRGM4T+`dUVm~QdxMJa$ z#N}o4FIYBv(%MA}@7s7OQqZ<2eth6-$(o~=t282ZH8ixQg{+~~seFB5;wI01M^C*S zUDIP_-94#YZX;^r$>r#AiIm&sr|?AfpLfm-ywq32PvLf|Cyj%Cho3@|20l6XDXd{< z()1D?HLK6bYfYi`NtN^2Ri6viF`Z;aLuNwA%$T(zvQLBB4J$ncTBE;SBx)|ui@~OL z4D!CWV>t))mWSgp_@=Bq)bu>J8tl2B>+{w=q9a#GHqZG|}3MyTw z_l^NlBpU^ zvP9IhIk7gpaxu--c8GTc974iRVeMwAV>WpOS`K~+FRPzIkvzuQ{1it2(=R`C&0qYF zk5NB`4Z@v64^zp4t4t}r27h5`wsripY}Yv{)NB09sUTGMpL5{AOHd&00JNY z0w4eaAOHd&00JOznF-kZ5h%a2<=O8%(6ffI3&0=2Wo`gu4+0{2?Spf#fAY`2)areTYvaGjwY?}j*4o?lsQ<~9SA1*z zr@Ttj<4yU-?M>J4U-WEqoocwxb%X1MD_DBm+D-ubT;E1~Q5gOxjGdMB-F28fpV>Wf z^qrZo&vl6z-OdX8T+?0d7u@F>ju8@}(M0@UqJJ8yMUhn4o+A z4;{UgYzeOSFgQlge4XfyVM>k>7JuJC;XF4f1_Jz)5^+~K5!a>rJpoa+PY2;y3pG;*WJ?GRIRtkBMt^@?1yg5SWLGE`f2lgd!tv}zn{NPW*ez|d%>z33S!^E88xpt zJxEq%WNkiQ&ec1gaeFoG>o02nHot~SeMHL+U4(Sq8vA1V!q|84vh6$AWIRw(KZTZE zVBIHv=VbiTfA#U!rX;t9+sQR;X?&^ioclqy%O&$K@KNpwZl`dn?bmJhwl%iKTORTM z)c-D$e9pbiE5WldSikvT|%(xE!{$l}o}#3D0@9dc{MeEP={I7;hS7MOn9SQP`xF zOTxqm&t1L6D~^(a?5kW5UANHz*l^QSR-82p7pFXf%7rS67lvyb;#G%%Wj2DtYfl)? zJ}Wir7d2c%MWwA?MT@s?{z#=)R^8Z zTVJ7Tp9|wY1ynE3GrTg$wM69iHpD)+^qzpPw6H3$0Iz zS%(lwX3!`RE{`WwDs*`?M|Mn^%i}udohJicF&g0KHk6mRU_3TzqdV6`OTSda`#i)$=!pFyBmhMQZY+4*Ml}! zx_zZo%7lCe#1g-4A~qc7c`I z*r*i?`ez{+fF)CvSZ00ck)1V8`;KmY_l z00ck)1RMmm&~wu+@bo8QANzjiou7qWz(EP8AOHd&00JNY0w4eaAOHd&00JPeG6`&@ z)iUh@>n3mi^gZ0rEwBr$%*IBoKmY_l00ck)1V8`;KmY_l00cn5K|rGCrd{BVKKY*a z;fyZ zu~91!009sH0T2KI5C8!X009sH0T6HyxQ3pac7e5{#V@-4=l4GfyMTidPC)7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-2/payment.db-shm b/tests/e2e/whitelisted-provider-2/payment.db-shm deleted file mode 100644 index 93a7037efdebb6b04a56b6614a02493bb8e22258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI5w{DbC5Js;9I06QYy*9}v2V;|LOwKvyXmWBzNkz*W@D_+?;3eolNKhit(jYD0 zn4pyeuBzFFHHbiw05qccb3V5Hp2kY!)q|RkVqAF-y!A zb3})jE9Qy$qEjpoU7}l5M33kd3&kR_SS%4sMW5&w%fxcALaY?4#A>ldtQEBxC!aC- z^S?dA?@ZRePOKLL!hVrKF(hiw@!V&lzOzYe7F)ztF)T*JHZdx;iydO8*d=Puus-|! zYp+>8yG~&M0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO z0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00vSzfCQ(39{u>zX^tjNBKVuy# zI$cTOY^Dw6G0>oyLPMH~b3ENoPds19)^j-9$Uk^L6iVC z$BgnAXx0q0lb*)xJr}blh!Vgi_)#7MEt>v!%F~#==Ti0rQ3BZPO3GuPRdX*-dm6L% zT+W^#N`Ss7L9^#<)5O;^*;9A|T=6u~BLn?da2jaWY~!=e-n?yB^By1Qbeq&oc?{T` z^cZz5M$7_I+KhV2W56~9#Hj1(K^l({HFHYa&Omt#*lvs%bt6X10#e#u63S!1w!*}y zn=xV*kkU5tP#y!e4=G07iV?Gbl(vhC@))p9U@>YeM$7_I+7>p-W59Oc#i-jcViu6n z_VH031GbqlM%{@Kvw)PgDUS2tS1*Ehcv6RO^m#2xIPzDCH&v;+Dke-H0 gog-{_vQ5y`bTY7iIz7ykK1*d{2l|vAF->m%16!U>umAu6 diff --git a/tests/e2e/whitelisted-provider-2/payment.db-wal b/tests/e2e/whitelisted-provider-2/payment.db-wal deleted file mode 100644 index 69b303ff392019841908ff5e61a898beee084b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432632 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

ic#S#&>(njhR2 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 diff --git a/tests/e2e/whitelisted-provider-2/yagna.db-shm b/tests/e2e/whitelisted-provider-2/yagna.db-shm deleted file mode 100644 index aec3193b521567da47b989197126b7f83c030a20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*yD~#j6b9gx1W6F$65`q`Jb+H)1=Jd)r_kyYYPHsQ6{Sw$5g4Oj9b?QHooW~R zTQe&=$+`Sze-E(E^!YHF>SuQ%#{0Q0Wk21YogP0NT;HC2TwdJWT)mvX9!=gK-=_aO zKX3J2JNfz9s-M4qm&}fCb}zgAeI|d;X3u3e&p5~)X3u9YWG`m7&uL#f%45x5{;ut7 z^ROa7fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNYH(8<{mYsJz96DTRr&B-e3B_BXGfnox^oGCOZ zmM)k;Nr8ThOUBD4P*7kHD+SX<6DTP#jMb9yvI!IvXr_NE0(A;BGjkPzIt7|((TYHw z0;AZibK`bRAm0SAM}a`40?X07*+UViQD7scv0dZF?U_Jq##S`%Us41J5FkK+009C7 T2oNAZfB*pk1PBlyP>;YD+jA`f diff --git a/tests/e2e/whitelisted-provider-2/yagna.db-wal b/tests/e2e/whitelisted-provider-2/yagna.db-wal deleted file mode 100644 index 91883999cfcfb4403389d8e45f2c3cc990fbfdca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123632 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 GKl~3mpE(f# diff --git a/tests/e2e/whitelisted-provider-2/yagna.pid b/tests/e2e/whitelisted-provider-2/yagna.pid deleted file mode 100644 index 25bf17fc5..000000000 --- a/tests/e2e/whitelisted-provider-2/yagna.pid +++ /dev/null @@ -1 +0,0 @@ -18 \ No newline at end of file diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db b/tests/e2e/whitelisted-provider-2/zksync-driver.db deleted file mode 100644 index bf99cb87915f0a3941ee6a80df26d55154d187be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYAM-;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo*$>9dI diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db-shm b/tests/e2e/whitelisted-provider-2/zksync-driver.db-shm deleted file mode 100644 index 58bc46041afe9b025dbe7b7446e57731772e68f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*yG;X85QX962gcY2*5y>0u8mj5n`kjZB@~po(R-f zpy|yjg_g9c?Ha!&uZBPs0xj(L zHgp(vb_S0wu&JZy1k4{+V65Y?vom;ffs^O}%pX`F{pTu$00IagfB*srAb>zF@C|I2 BEb;&V diff --git a/tests/e2e/whitelisted-provider-2/zksync-driver.db-wal b/tests/e2e/whitelisted-provider-2/zksync-driver.db-wal deleted file mode 100644 index 97380f15818104202d7ae2461b5f29d3fae938ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164832 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 f1e^3~qgW7t00bZa0SG_<0uX=z1Rwwbhrs^ Date: Thu, 5 Oct 2023 14:21:29 +0200 Subject: [PATCH 62/77] chore: revert jest timeout --- tests/e2e/jest.config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/jest.config.json b/tests/e2e/jest.config.json index 64a53fa97..8eb5939a8 100644 --- a/tests/e2e/jest.config.json +++ b/tests/e2e/jest.config.json @@ -2,5 +2,5 @@ "preset": "ts-jest", "testEnvironment": "node", "setupFilesAfterEnv": ["/_setupLogging.ts"], - "testTimeout": 540000 + "testTimeout": 180000 } From c21158cc61a2190baac4c40cec4b1431d15c1669 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:26:23 +0200 Subject: [PATCH 63/77] chore: move everything docker related to its own directory --- .github/workflows/cypress-nightly.yml | 6 +++--- .github/workflows/examples-nightly.yml | 6 +++--- .github/workflows/goth-nightly.yml | 6 +++--- .github/workflows/release.yml | 6 +++--- README.md | 6 +++--- tests/{e2e => docker}/Provider.Dockerfile | 0 tests/{e2e => docker}/Requestor.Dockerfile | 8 ++++---- tests/{e2e => docker}/configure-provider.py | 0 tests/{e2e => docker}/data-node/ya-provider/globals.json | 0 tests/{e2e => docker}/data-node/ya-provider/hardware.json | 0 tests/{e2e => docker}/data-node/ya-provider/presets.json | 0 tests/{e2e => docker}/docker-compose.yml | 0 tests/{e2e => docker}/fund-requestor.sh | 0 tests/{e2e => docker}/start-requestor.sh | 0 tests/{e2e => docker}/start_provider.sh | 0 15 files changed, 19 insertions(+), 19 deletions(-) rename tests/{e2e => docker}/Provider.Dockerfile (100%) rename tests/{e2e => docker}/Requestor.Dockerfile (72%) rename tests/{e2e => docker}/configure-provider.py (100%) rename tests/{e2e => docker}/data-node/ya-provider/globals.json (100%) rename tests/{e2e => docker}/data-node/ya-provider/hardware.json (100%) rename tests/{e2e => docker}/data-node/ya-provider/presets.json (100%) rename tests/{e2e => docker}/docker-compose.yml (100%) rename tests/{e2e => docker}/fund-requestor.sh (100%) rename tests/{e2e => docker}/start-requestor.sh (100%) rename tests/{e2e => docker}/start_provider.sh (100%) diff --git a/.github/workflows/cypress-nightly.yml b/.github/workflows/cypress-nightly.yml index 5175a6819..97306c29f 100644 --- a/.github/workflows/cypress-nightly.yml +++ b/.github/workflows/cypress-nightly.yml @@ -20,15 +20,15 @@ jobs: - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml build + run: docker compose -f tests/docker/docker-compose.yml build - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/docker/docker-compose.yml down && docker compose -f tests/docker/docker-compose.yml up -d - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/examples-nightly.yml b/.github/workflows/examples-nightly.yml index e09408aab..1ab8f6fe8 100644 --- a/.github/workflows/examples-nightly.yml +++ b/.github/workflows/examples-nightly.yml @@ -36,15 +36,15 @@ jobs: - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml build + run: docker compose -f tests/docker/docker-compose.yml build - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/docker/docker-compose.yml down && docker compose -f tests/docker/docker-compose.yml up -d - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/goth-nightly.yml b/.github/workflows/goth-nightly.yml index f8821a8f0..32dc3ff3d 100644 --- a/.github/workflows/goth-nightly.yml +++ b/.github/workflows/goth-nightly.yml @@ -36,15 +36,15 @@ jobs: - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml build + run: docker compose -f tests/docker/docker-compose.yml build - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/docker/docker-compose.yml down && docker compose -f tests/docker/docker-compose.yml up -d - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 33cced3d4..77f99531d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,15 +59,15 @@ jobs: - name: Build the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml build + run: docker compose -f tests/docker/docker-compose.yml build - name: Start the docker containers # Use a random string to avoid other providers on the same subnet which might cause tests to fail because it expects only providers named provider-1 and provider-2 - run: docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + run: docker compose -f tests/docker/docker-compose.yml down && docker compose -f tests/docker/docker-compose.yml up -d - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/README.md b/README.md index 19c93c519..0038a2a7e 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ First, build the Docker containers using the `docker-compose.yml` file located u Execute this command to build the Docker containers: - docker compose -f tests/e2e/docker-compose.yml build + docker compose -f tests/docker/docker-compose.yml build ##### Start Docker Containers @@ -139,13 +139,13 @@ Then, launch the Docker containers you've just built using the same `docker-comp Execute this command to start the Docker containers: - docker compose -f tests/e2e/docker-compose.yml down && docker compose -f tests/e2e/docker-compose.yml up -d + docker compose -f tests/docker/docker-compose.yml down && docker compose -f tests/docker/docker-compose.yml up -d ##### Fund the Requestor The next step is to fund the requestor. - docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/e2e/fund-requestor.sh" + docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" ##### Install and Build the SDK diff --git a/tests/e2e/Provider.Dockerfile b/tests/docker/Provider.Dockerfile similarity index 100% rename from tests/e2e/Provider.Dockerfile rename to tests/docker/Provider.Dockerfile diff --git a/tests/e2e/Requestor.Dockerfile b/tests/docker/Requestor.Dockerfile similarity index 72% rename from tests/e2e/Requestor.Dockerfile rename to tests/docker/Requestor.Dockerfile index 9dd41b223..bfe53cee6 100644 --- a/tests/e2e/Requestor.Dockerfile +++ b/tests/docker/Requestor.Dockerfile @@ -31,11 +31,11 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ - && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ + && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.aarch64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat diff --git a/tests/e2e/configure-provider.py b/tests/docker/configure-provider.py similarity index 100% rename from tests/e2e/configure-provider.py rename to tests/docker/configure-provider.py diff --git a/tests/e2e/data-node/ya-provider/globals.json b/tests/docker/data-node/ya-provider/globals.json similarity index 100% rename from tests/e2e/data-node/ya-provider/globals.json rename to tests/docker/data-node/ya-provider/globals.json diff --git a/tests/e2e/data-node/ya-provider/hardware.json b/tests/docker/data-node/ya-provider/hardware.json similarity index 100% rename from tests/e2e/data-node/ya-provider/hardware.json rename to tests/docker/data-node/ya-provider/hardware.json diff --git a/tests/e2e/data-node/ya-provider/presets.json b/tests/docker/data-node/ya-provider/presets.json similarity index 100% rename from tests/e2e/data-node/ya-provider/presets.json rename to tests/docker/data-node/ya-provider/presets.json diff --git a/tests/e2e/docker-compose.yml b/tests/docker/docker-compose.yml similarity index 100% rename from tests/e2e/docker-compose.yml rename to tests/docker/docker-compose.yml diff --git a/tests/e2e/fund-requestor.sh b/tests/docker/fund-requestor.sh similarity index 100% rename from tests/e2e/fund-requestor.sh rename to tests/docker/fund-requestor.sh diff --git a/tests/e2e/start-requestor.sh b/tests/docker/start-requestor.sh similarity index 100% rename from tests/e2e/start-requestor.sh rename to tests/docker/start-requestor.sh diff --git a/tests/e2e/start_provider.sh b/tests/docker/start_provider.sh similarity index 100% rename from tests/e2e/start_provider.sh rename to tests/docker/start_provider.sh From 1a222d525e91bdc7e34b7c02b208622eacc8449a Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:29:14 +0200 Subject: [PATCH 64/77] chore: test changes --- .github/workflows/release.yml | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 77f99531d..502aea431 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - push: + pull_request: branches: # Regular release channels - master @@ -102,38 +102,38 @@ jobs: c=$(docker ps -q) && [[ $c ]] && docker kill $c docker system prune -af - release: - name: Release the SDK to NPM and GitHub - needs: run-integration-and-e2e-tests - runs-on: ubuntu-latest - permissions: - contents: write # to be able to publish a GitHub release - issues: write # to be able to comment on released issues - pull-requests: write # to be able to comment on released pull requests - id-token: write # to enable use of OIDC for npm provenance - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup NodeJS - uses: actions/setup-node@v3 - with: - # Semantic release requires this as bare minimum - node-version: 18 - - - name: Install dependencies - run: npm install - - - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - run: npm audit signatures - - - name: Build the SDK for release - run: npm run build - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npx semantic-release + # release: + # name: Release the SDK to NPM and GitHub + # needs: run-integration-and-e2e-tests + # runs-on: ubuntu-latest + # permissions: + # contents: write # to be able to publish a GitHub release + # issues: write # to be able to comment on released issues + # pull-requests: write # to be able to comment on released pull requests + # id-token: write # to enable use of OIDC for npm provenance + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 + + # - name: Setup NodeJS + # uses: actions/setup-node@v3 + # with: + # # Semantic release requires this as bare minimum + # node-version: 18 + + # - name: Install dependencies + # run: npm install + + # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + # run: npm audit signatures + + # - name: Build the SDK for release + # run: npm run build + + # - name: Release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + # run: npx semantic-release From e6e202b2d0681d1c77f9c8311a872f9b62645145 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:47:25 +0200 Subject: [PATCH 65/77] chore: use new requestor name --- .github/workflows/cypress-nightly.yml | 8 ++++---- .github/workflows/examples-nightly.yml | 6 +++--- .github/workflows/goth-nightly.yml | 6 +++--- .github/workflows/release.yml | 12 ++++++------ README.md | 10 +++++----- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/cypress-nightly.yml b/.github/workflows/cypress-nightly.yml index 97306c29f..1ba017550 100644 --- a/.github/workflows/cypress-nightly.yml +++ b/.github/workflows/cypress-nightly.yml @@ -28,19 +28,19 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" - name: Run web server run: | - docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" + docker exec -t -d docker-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - name: Run test suite run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Upload test logs uses: actions/upload-artifact@v2 diff --git a/.github/workflows/examples-nightly.yml b/.github/workflows/examples-nightly.yml index 1ab8f6fe8..aaea58ecb 100644 --- a/.github/workflows/examples-nightly.yml +++ b/.github/workflows/examples-nightly.yml @@ -44,15 +44,15 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" - name: Cleanup Docker if: always() diff --git a/.github/workflows/goth-nightly.yml b/.github/workflows/goth-nightly.yml index 32dc3ff3d..5db18720d 100644 --- a/.github/workflows/goth-nightly.yml +++ b/.github/workflows/goth-nightly.yml @@ -44,14 +44,14 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build" - name: Start the e2e test - run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + run: docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" - name: Cleanup Docker if: always() diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 502aea431..ae45eda1c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,27 +67,27 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" - name: Install and build the SDK in the docker container run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" - name: Start the e2e test - run: docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + run: docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" #region Cypress test execution - name: Run web server run: | - docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" + docker exec -t -d docker-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" - name: Run test suite run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" - name: Run the Examples tests run: | - docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" - name: Upload test logs uses: actions/upload-artifact@v2 diff --git a/README.md b/README.md index 0038a2a7e..d25bed6c9 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ Execute this command to start the Docker containers: The next step is to fund the requestor. - docker exec -t e2e-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" ##### Install and Build the SDK @@ -154,7 +154,7 @@ Finally, install and build the golem-js SDK in the Docker container Run this chain of commands to install and build the SDK and prepare cypress. ```docker -docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" +docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" ``` #### Execute the E2E Tests @@ -162,7 +162,7 @@ docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run buil With your test environment set up, you can now initiate the E2E tests. Run the following command to start: ```docker -docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" +docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" ``` #### Execute the cypress Tests @@ -170,13 +170,13 @@ docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" First make sure that the webserver that's used for testing is running, by running the command ```docker -docker exec -t -d e2e-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" +docker exec -t -d docker-requestor-1 /bin/sh -c "cd /golem-js/examples/web && node app.mjs" ``` Now you're ready to start the cypress tests by running the command ```docker -docker exec -t e2e-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" +docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:cypress -- --browser chromium" ``` ### Contributing From c86a60d83896eab2cda62e34825af70eb1f3d01f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 14:58:24 +0200 Subject: [PATCH 66/77] chore: use correct architecture for docker image --- tests/docker/Requestor.Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/docker/Requestor.Dockerfile b/tests/docker/Requestor.Dockerfile index bfe53cee6..9dd41b223 100644 --- a/tests/docker/Requestor.Dockerfile +++ b/tests/docker/Requestor.Dockerfile @@ -31,11 +31,11 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux_aarch64-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ - && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.aarch64-unknown-linux-musl" \ + && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat From 68c8cc0cd7ce8f0af67c5b2ece823559c31c5901 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Thu, 5 Oct 2023 15:54:33 +0200 Subject: [PATCH 67/77] chore: test complete reverting ci --- .github/workflows/release.yml | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae45eda1c..918c279c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - pull_request: + push: branches: # Regular release channels - master @@ -102,38 +102,38 @@ jobs: c=$(docker ps -q) && [[ $c ]] && docker kill $c docker system prune -af - # release: - # name: Release the SDK to NPM and GitHub - # needs: run-integration-and-e2e-tests - # runs-on: ubuntu-latest - # permissions: - # contents: write # to be able to publish a GitHub release - # issues: write # to be able to comment on released issues - # pull-requests: write # to be able to comment on released pull requests - # id-token: write # to enable use of OIDC for npm provenance - # steps: - # - name: Checkout - # uses: actions/checkout@v3 - # with: - # fetch-depth: 0 - - # - name: Setup NodeJS - # uses: actions/setup-node@v3 - # with: - # # Semantic release requires this as bare minimum - # node-version: 18 - - # - name: Install dependencies - # run: npm install - - # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - # run: npm audit signatures - - # - name: Build the SDK for release - # run: npm run build - - # - name: Release - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - # run: npx semantic-release + release: + name: Release the SDK to NPM and GitHub + needs: run-integration-and-e2e-tests + runs-on: ubuntu-latest + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup NodeJS + uses: actions/setup-node@v3 + with: + # Semantic release requires this as bare minimum + node-version: 18 + + - name: Install dependencies + run: npm install + + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + + - name: Build the SDK for release + run: npm run build + + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release From 682aa7b1dc6f66adb120c7884525c682a7672591 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 10:23:33 +0200 Subject: [PATCH 68/77] chore: use 0.12.3 --- tests/docker/Requestor.Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/docker/Requestor.Dockerfile b/tests/docker/Requestor.Dockerfile index 9dd41b223..465ec758b 100644 --- a/tests/docker/Requestor.Dockerfile +++ b/tests/docker/Requestor.Dockerfile @@ -1,5 +1,5 @@ ARG UBUNTU_VERSION=22.04 -ARG YA_CORE_VERSION=0.13.0-rc10 +ARG YA_CORE_VERSION=0.12.3 FROM node:18 ARG YA_CORE_VERSION @@ -31,9 +31,9 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat From 2eb0da8af26676b06404e9f9d43745568dab01ee Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 10:52:21 +0200 Subject: [PATCH 69/77] chore: increase cypress timeout due to failure --- cypress.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.ts b/cypress.config.ts index 4ce809e49..792330247 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ fixturesFolder: "tests/cypress/fixtures", videosFolder: ".cypress/video", screenshotsFolder: ".cypress/screenshots", - defaultCommandTimeout: 180000, + defaultCommandTimeout: 230000, experimentalInteractiveRunEvents: true, chromeWebSecurity: false, video: true, From 98e645ab72ec9182a8608dbc659e4b570a3efc54 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 11:22:14 +0200 Subject: [PATCH 70/77] chore: increase timeouts in cypress even further --- cypress.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.ts b/cypress.config.ts index 792330247..780c4ed91 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ fixturesFolder: "tests/cypress/fixtures", videosFolder: ".cypress/video", screenshotsFolder: ".cypress/screenshots", - defaultCommandTimeout: 230000, + defaultCommandTimeout: 300000, experimentalInteractiveRunEvents: true, chromeWebSecurity: false, video: true, From f17591914ab256e233b141d3ce12a4bd751e8cec Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 11:31:09 +0200 Subject: [PATCH 71/77] chore: test rc-10 as cypress keeps timing out --- tests/docker/Requestor.Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/docker/Requestor.Dockerfile b/tests/docker/Requestor.Dockerfile index 465ec758b..9dd41b223 100644 --- a/tests/docker/Requestor.Dockerfile +++ b/tests/docker/Requestor.Dockerfile @@ -1,5 +1,5 @@ ARG UBUNTU_VERSION=22.04 -ARG YA_CORE_VERSION=0.12.3 +ARG YA_CORE_VERSION=0.13.0-rc10 FROM node:18 ARG YA_CORE_VERSION @@ -31,9 +31,9 @@ RUN apt-get update -q \ && rm -rf /var/lib/apt/lists/* \ && mkdir ${YA_DIR_INSTALLER} \ && cd ${YA_DIR_INSTALLER} \ - && wget -q "https://github.com/golemfactory/yagna/releases/download/v${YA_CORE_VERSION}/golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz" \ - && tar -zxvf golem-requestor-linux-v${YA_CORE_VERSION}.tar.gz \ - && find golem-requestor-linux-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ + && wget -q "https://github.com/golemfactory/yagna/releases/download/pre-rel-v${YA_CORE_VERSION}/golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz" \ + && tar -zxvf golem-requestor-linux-pre-rel-v${YA_CORE_VERSION}.tar.gz \ + && find golem-requestor-linux-pre-rel-v${YA_CORE_VERSION} -executable -type f -exec cp {} ${YA_DIR_BIN} \; \ && rm -Rf ${YA_DIR_INSTALLER} \ && wget -O ${YA_DIR_BIN}/websocat "https://github.com/vi/websocat/releases/download/v1.12.0/websocat_max.x86_64-unknown-linux-musl" \ && chmod +x ${YA_DIR_BIN}/websocat From 242073e8428cab318116e744341eb4924897d680 Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 12:06:33 +0200 Subject: [PATCH 72/77] chore: reduce cypress timeouts again --- cypress.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.ts b/cypress.config.ts index 780c4ed91..4ce809e49 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ fixturesFolder: "tests/cypress/fixtures", videosFolder: ".cypress/video", screenshotsFolder: ".cypress/screenshots", - defaultCommandTimeout: 300000, + defaultCommandTimeout: 180000, experimentalInteractiveRunEvents: true, chromeWebSecurity: false, video: true, From 05a3cb559b3f674cbc49a0e9239e38d9c3a7471f Mon Sep 17 00:00:00 2001 From: Phillip Jensen <33448819+cryptobench@users.noreply.github.com> Date: Fri, 6 Oct 2023 13:33:05 +0200 Subject: [PATCH 73/77] Update README.md Co-authored-by: Marcin Gordel --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d25bed6c9..a029b646a 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ Follow these steps to prepare your test environment: ##### Build Docker Containers -First, build the Docker containers using the `docker-compose.yml` file located under `tests/e2e`. +First, build the Docker containers using the `docker-compose.yml` file located under `tests/docker`. Execute this command to build the Docker containers: From 4ced3096dcfd632b41d7d7e0211d164a81a0db0d Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 13:41:33 +0200 Subject: [PATCH 74/77] chore: address marcins comments --- .github/workflows/cypress-nightly.yml | 2 +- .github/workflows/examples-nightly.yml | 2 +- .github/workflows/goth-nightly.yml | 2 +- .github/workflows/release.yml | 80 +++++++++---------- README.md | 2 +- .../selecting-providers/whitelist.mjs | 2 +- tests/docker/Provider.Dockerfile | 4 +- tests/docker/Requestor.Dockerfile | 4 +- ...igure-provider.py => configureProvider.py} | 0 .../{fund-requestor.sh => fundRequestor.sh} | 0 .../{start-requestor.sh => startRequestor.sh} | 0 tests/docker/start_provider.sh | 2 - tests/goth/goth.ts | 76 ------------------ 13 files changed, 49 insertions(+), 127 deletions(-) rename tests/docker/{configure-provider.py => configureProvider.py} (100%) rename tests/docker/{fund-requestor.sh => fundRequestor.sh} (100%) rename tests/docker/{start-requestor.sh => startRequestor.sh} (100%) delete mode 100644 tests/docker/start_provider.sh delete mode 100644 tests/goth/goth.ts diff --git a/.github/workflows/cypress-nightly.yml b/.github/workflows/cypress-nightly.yml index 1ba017550..ca7253bf4 100644 --- a/.github/workflows/cypress-nightly.yml +++ b/.github/workflows/cypress-nightly.yml @@ -28,7 +28,7 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fundRequestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/examples-nightly.yml b/.github/workflows/examples-nightly.yml index aaea58ecb..fc3245694 100644 --- a/.github/workflows/examples-nightly.yml +++ b/.github/workflows/examples-nightly.yml @@ -44,7 +44,7 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fundRequestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/goth-nightly.yml b/.github/workflows/goth-nightly.yml index 5db18720d..daae76ed9 100644 --- a/.github/workflows/goth-nightly.yml +++ b/.github/workflows/goth-nightly.yml @@ -44,7 +44,7 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fundRequestor.sh" - name: Install and build the SDK in the docker container run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 918c279c6..28947b61d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - push: + pull_request: branches: # Regular release channels - master @@ -67,14 +67,14 @@ jobs: - name: Fund the requestor # Use a funding script which will retry funding the requestor 3 times, else it exits with error. The faucet is not reliable and sometimes fails to fund the requestor, thus the retry. - run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + run: sleep 4 && docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fundRequestor.sh" - name: Install and build the SDK in the docker container run: | - docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run build && ./node_modules/.bin/cypress install && npm install --prefix examples && npm install ts-node" - name: Start the e2e test - run: docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm i && npm run test:e2e" + run: docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:e2e" #region Cypress test execution - name: Run web server @@ -87,7 +87,7 @@ jobs: - name: Run the Examples tests run: | - docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm install --prefix examples && npm install ts-node && npm run test:examples -- --exitOnError" + docker exec -t docker-requestor-1 /bin/sh -c "cd /golem-js && npm run test:examples -- --exitOnError" - name: Upload test logs uses: actions/upload-artifact@v2 @@ -102,38 +102,38 @@ jobs: c=$(docker ps -q) && [[ $c ]] && docker kill $c docker system prune -af - release: - name: Release the SDK to NPM and GitHub - needs: run-integration-and-e2e-tests - runs-on: ubuntu-latest - permissions: - contents: write # to be able to publish a GitHub release - issues: write # to be able to comment on released issues - pull-requests: write # to be able to comment on released pull requests - id-token: write # to enable use of OIDC for npm provenance - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup NodeJS - uses: actions/setup-node@v3 - with: - # Semantic release requires this as bare minimum - node-version: 18 - - - name: Install dependencies - run: npm install - - - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - run: npm audit signatures - - - name: Build the SDK for release - run: npm run build - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npx semantic-release + # release: + # name: Release the SDK to NPM and GitHub + # needs: run-integration-and-e2e-tests + # runs-on: ubuntu-latest + # permissions: + # contents: write # to be able to publish a GitHub release + # issues: write # to be able to comment on released issues + # pull-requests: write # to be able to comment on released pull requests + # id-token: write # to enable use of OIDC for npm provenance + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 + + # - name: Setup NodeJS + # uses: actions/setup-node@v3 + # with: + # # Semantic release requires this as bare minimum + # node-version: 18 + + # - name: Install dependencies + # run: npm install + + # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + # run: npm audit signatures + + # - name: Build the SDK for release + # run: npm run build + + # - name: Release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + # run: npx semantic-release diff --git a/README.md b/README.md index d25bed6c9..aa81912a1 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ Execute this command to start the Docker containers: The next step is to fund the requestor. - docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fund-requestor.sh" + docker exec -t docker-requestor-1 /bin/sh -c "/golem-js/tests/docker/fundRequestor.sh" ##### Install and Build the SDK diff --git a/examples/docs-examples/examples/selecting-providers/whitelist.mjs b/examples/docs-examples/examples/selecting-providers/whitelist.mjs index 77341b755..120ad157a 100644 --- a/examples/docs-examples/examples/selecting-providers/whitelist.mjs +++ b/examples/docs-examples/examples/selecting-providers/whitelist.mjs @@ -5,7 +5,7 @@ import { TaskExecutor, ProposalFilters } from "@golem-sdk/golem-js"; * which only allows offers from a provider whose name is in the array */ -const whiteListNames = ["provider-2"]; +const whiteListNames = ["provider-2", "fractal_01_3.h", "sharkoon_379_0.h", "fractal_01_1.h", "sharkoon_379_1.h"]; console.log("Will accept only proposals from:"); for (let i = 0; i < whiteListNames.length; i++) { console.log(whiteListNames[i]); diff --git a/tests/docker/Provider.Dockerfile b/tests/docker/Provider.Dockerfile index 20d4f55a6..81ee1c94d 100644 --- a/tests/docker/Provider.Dockerfile +++ b/tests/docker/Provider.Dockerfile @@ -36,6 +36,6 @@ RUN apt-get update -q \ && cp -R ya-runtime-wasi-linux-v${YA_WASI_VERSION}/* ${YA_DIR_PLUGINS} \ && cp -R ya-runtime-vm-linux-v${YA_VM_VERSION}/* ${YA_DIR_PLUGINS} \ && rm -Rf ${YA_DIR_INSTALLER} -COPY ./configure-provider.py /configure-provider.py +COPY ./configureProvider.py /configureProvider.py -CMD ["bash", "-c", "python3 /configure-provider.py && golemsp run --payment-network testnet"] +CMD ["bash", "-c", "python3 /configureProvider.py && golemsp run --payment-network testnet"] diff --git a/tests/docker/Requestor.Dockerfile b/tests/docker/Requestor.Dockerfile index 9dd41b223..b64167fdd 100644 --- a/tests/docker/Requestor.Dockerfile +++ b/tests/docker/Requestor.Dockerfile @@ -39,6 +39,6 @@ RUN apt-get update -q \ && chmod +x ${YA_DIR_BIN}/websocat -COPY ./start-requestor.sh /start-requestor.sh +COPY ./startRequestor.sh /startRequestor.sh -CMD ["bash", "-c", "/start-requestor.sh"] +CMD ["bash", "-c", "/startRequestor.sh"] diff --git a/tests/docker/configure-provider.py b/tests/docker/configureProvider.py similarity index 100% rename from tests/docker/configure-provider.py rename to tests/docker/configureProvider.py diff --git a/tests/docker/fund-requestor.sh b/tests/docker/fundRequestor.sh similarity index 100% rename from tests/docker/fund-requestor.sh rename to tests/docker/fundRequestor.sh diff --git a/tests/docker/start-requestor.sh b/tests/docker/startRequestor.sh similarity index 100% rename from tests/docker/start-requestor.sh rename to tests/docker/startRequestor.sh diff --git a/tests/docker/start_provider.sh b/tests/docker/start_provider.sh deleted file mode 100644 index 18171ce71..000000000 --- a/tests/docker/start_provider.sh +++ /dev/null @@ -1,2 +0,0 @@ -python /configure-provider.py -golemsp run --payment-network testnet diff --git a/tests/goth/goth.ts b/tests/goth/goth.ts deleted file mode 100644 index 8fea42ca4..000000000 --- a/tests/goth/goth.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { ChildProcess, spawn } from "child_process"; - -type EnvironmentSettings = { apiKey: string; basePath: string; subnetTag: string; gsbUrl: string; path: string }; - -export class Goth { - private gothProcess?: ChildProcess; - - constructor(private readonly gothConfig) {} - - async start(): Promise { - return new Promise((resolve, reject) => { - const startTime = Date.now(); - console.log("\x1b[33mStarting goth process..."); - console.log("\x1b[33mRun command:\x1b[0m \x1b[36m", `python -m goth start ${this.gothConfig}`); - this.gothProcess = spawn("python", ["-m", "goth", "start", this.gothConfig], { - env: { ...process.env, PYTHONUNBUFFERED: "1" }, - }); - this.gothProcess.on("spawn", () => console.log("Goth spawned successfully")); - this.gothProcess?.stdout?.setEncoding("utf-8"); - this.gothProcess?.stderr?.setEncoding("utf-8"); - - this.gothProcess?.stdout?.on("data", (data) => { - const regexp = - /YAGNA_APPKEY=(\w+) YAGNA_API_URL=(http:\/\/127\.0{0,3}\.0{0,3}.0{0,2}1:\d+) GSB_URL=(tcp:\/\/\d+\.\d+\.\d+\.\d+:\d+) PATH=(.*) YAGNA_SUBNET=(\w+)/g; - const results = Array.from(data?.toString()?.matchAll(regexp) || [])?.pop(); - const apiKey = results?.[1]; - const basePath = results?.[2]; - const gsbUrl = results?.[3]; - const path = results?.[4]?.split(":")?.shift(); - const subnetTag = results?.[5]; - if (apiKey) { - process.env["YAGNA_APPKEY"] = apiKey; - process.env["YAGNA_API_URL"] = basePath; - process.env["GSB_URL"] = gsbUrl; - process.env["PATH"] = `${path}:${process.env["PATH"]}`; - process.env["YAGNA_SUBNET"] = subnetTag; - - const settings = { apiKey, basePath, subnetTag, gsbUrl, path }; - - console.log( - `\x1b[33mGoth has been successfully started in ${((Date.now() - startTime) / 1000).toFixed( - 0, - )}s. Resulting settings:`, - settings, - ); - - resolve(settings); - } - }); - this.gothProcess?.stderr?.on("data", (data) => { - if (data.toString().match(/error/)) reject(data); - const regexp = /\[requestor] Gftp volume ([a-zA-Z0-9/_]*)/g; - const results = Array.from(data?.toString()?.matchAll(regexp) || [])?.pop(); - const gftpVolume = results?.[1]; - if (gftpVolume) process.env["GOTH_GFTP_VOLUME"] = gftpVolume + "/out/"; - console.log("\x1b[33m[goth]\x1b[0m " + data.replace(/[\n\t\r]/g, "")); - }); - this.gothProcess.on("error", (error) => reject("Failed to spawn Goth" + error.toString())); - this.gothProcess.on("close", (code) => console.info(`Goth process exit with code ${code}`)); - this.gothProcess.on("exit", (code) => console.info(`Goth process exit with code ${code}`)); - }); - } - - async end() { - this.gothProcess?.kill("SIGINT"); - return new Promise((resolve) => { - this.gothProcess?.on("close", () => { - this.gothProcess?.stdout?.removeAllListeners(); - this.gothProcess?.stderr?.removeAllListeners(); - this.gothProcess?.removeAllListeners(); - console.log(`\x1b[33mGoth has been terminated`); - resolve(); - }); - }); - } -} From af500429aa0935651c0fb9899aa25d28dd0a26fa Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 14:14:44 +0200 Subject: [PATCH 75/77] chore: enable full workflow after green test --- .github/workflows/release.yml | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 28947b61d..a73e85f4f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - pull_request: + push: branches: # Regular release channels - master @@ -102,38 +102,38 @@ jobs: c=$(docker ps -q) && [[ $c ]] && docker kill $c docker system prune -af - # release: - # name: Release the SDK to NPM and GitHub - # needs: run-integration-and-e2e-tests - # runs-on: ubuntu-latest - # permissions: - # contents: write # to be able to publish a GitHub release - # issues: write # to be able to comment on released issues - # pull-requests: write # to be able to comment on released pull requests - # id-token: write # to enable use of OIDC for npm provenance - # steps: - # - name: Checkout - # uses: actions/checkout@v3 - # with: - # fetch-depth: 0 - - # - name: Setup NodeJS - # uses: actions/setup-node@v3 - # with: - # # Semantic release requires this as bare minimum - # node-version: 18 - - # - name: Install dependencies - # run: npm install - - # - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies - # run: npm audit signatures - - # - name: Build the SDK for release - # run: npm run build - - # - name: Release - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - # run: npx semantic-release + release: + name: Release the SDK to NPM and GitHub + needs: run-integration-and-e2e-tests + runs-on: ubuntu-latest + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup NodeJS + uses: actions/setup-node@v3 + with: + # Semantic release requires this as bare minimum + node-version: 18 + + - name: Install dependencies + run: npm install + + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + + - name: Build the SDK for release + run: npm run build + + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release From 85f36b9bb8adbec6c4f903cdad14d854212fb77f Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 15:42:06 +0200 Subject: [PATCH 76/77] chore: run on PR --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a73e85f4f..ffe83e829 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - push: + pull_request: branches: # Regular release channels - master From 7507252c61f5163b2f6fa7385c95b6d2780d9fba Mon Sep 17 00:00:00 2001 From: Phillip Jensen Date: Fri, 6 Oct 2023 15:43:03 +0200 Subject: [PATCH 77/77] chore: release pipeline on push and ci on pull request --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a22482742..2fa4664dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ name: Regular CI Pipeline on: - push: + pull_request: branches: # Regular release channels - master diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ffe83e829..a73e85f4f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release Pipeline on: - pull_request: + push: branches: # Regular release channels - master