From 814ea80fc5dca816399805422ef07e79cbb54dfd Mon Sep 17 00:00:00 2001 From: Bogdan Crisan Date: Fri, 1 Nov 2024 16:12:22 +0100 Subject: [PATCH] [ECO-2351] Clean up package.json commands (#316) --- .github/actions/ts-run-tests/action.yaml | 37 --------------------- .github/workflows/frontend-tests.yaml | 31 ++++-------------- .github/workflows/sdk-tests.yaml | 29 +++++++++++------ cfg/cspell-dictionary.txt | 2 ++ package.json | 28 ++++++++++++---- src/typescript/frontend/package.json | 9 ++---- src/typescript/package.json | 41 +++++++++++------------- src/typescript/sdk/package.json | 5 +-- 8 files changed, 73 insertions(+), 109 deletions(-) delete mode 100644 .github/actions/ts-run-tests/action.yaml diff --git a/.github/actions/ts-run-tests/action.yaml b/.github/actions/ts-run-tests/action.yaml deleted file mode 100644 index 9e4bc682b..000000000 --- a/.github/actions/ts-run-tests/action.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# cspell:word TMPDIR ---- -description: | - Run the emojicoin dot fun TypeScript E2E and unit tests on a local network -name: 'Run Typescript E2E tests' -runs: - steps: - # Install node and pnpm. - - uses: 'actions/setup-node@v4' - with: - node-version-file: '${{ env.TS_DIR }}/.node-version' - registry-url: 'https://registry.npmjs.org' - - uses: 'pnpm/action-setup@v4' - with: - package_json_file: '${{ env.TS_DIR }}/package.json' - # Run package install. If install fails, it probably means the updated - # lockfile was not included in the commit. - - run: | - cd ${{ env.TS_DIR }} && pnpm install --frozen-lockfile - shell: 'bash' - - env: - # This is important for ensuring that any temporary directories are - # created in a location that actually supports mounting. - # See here: https://stackoverflow.com/a/76523941/3846032. - TMPDIR: '${{ runner.temp }}' - name: 'pnpm-test' - uses: 'nick-fields/retry@7f8f3d9f0f62fe5925341be21c2e8314fd4f7c7c' - with: - command: 'cd ${{ env.TS_DIR }} && pnpm run test' - max_attempts: 1 - timeout_minutes: 10 - - if: 'failure()' - name: 'Print local testnet logs on failure' - run: 'cat ${{ runner.temp }}/local-testnet-logs.txt' - shell: 'bash' - using: 'composite' -... diff --git a/.github/workflows/frontend-tests.yaml b/.github/workflows/frontend-tests.yaml index f5124ca58..694523d49 100644 --- a/.github/workflows/frontend-tests.yaml +++ b/.github/workflows/frontend-tests.yaml @@ -7,46 +7,29 @@ jobs: runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v4' + with: + submodules: 'false' - uses: 'actions/setup-node@v4' with: - node-version: 'lts/*' + node-version-file: 'src/typescript/.node-version' - name: 'Install dependencies' run: 'npm install -g pnpm && pnpm install' - - env: - GITHUB_ACCESS_TOKEN: '${{ secrets.TRADING_VIEW_REPO_ACCESS_TOKEN }}' - TRADING_VIEW_REPO_OWNER: '${{ secrets.TRADING_VIEW_REPO_OWNER }}' - name: 'Test' - run: 'echo -n $TRADING_VIEW_REPO_OWNER | wc -c' - env: GITHUB_ACCESS_TOKEN: '${{ secrets.TRADING_VIEW_REPO_ACCESS_TOKEN }}' TRADING_VIEW_REPO_OWNER: '${{ secrets.TRADING_VIEW_REPO_OWNER }}' name: 'Clone submodule' run: 'pnpm run submodule' - - name: 'Run pnpm i' - run: 'pnpm i' - name: 'Install Playwright Browsers' run: 'pnpm run playwright:install' - - name: 'Copy env file' - run: 'cp ci.env .env' - - name: 'Copy docker env file' - run: 'cp ../docker/example.local.env ../docker/.env' - name: 'Run Playwright tests' - run: 'pnpm run e2e:frontend' - - if: 'always()' - uses: 'actions/upload-artifact@v4' - with: - name: 'playwright-report' - path: 'playwright-report/' - retention-days: 30 - timeout-minutes: 60 + run: 'pnpm run test:frontend' + timeout-minutes: 15 name: 'Run the frontend tests' "on": - pull_request: - branches: - - 'main' - - 'production' + pull_request: null push: branches: - 'main' - 'production' + workflow_dispatch: null ... diff --git a/.github/workflows/sdk-tests.yaml b/.github/workflows/sdk-tests.yaml index ee37dddad..b4107a4ba 100644 --- a/.github/workflows/sdk-tests.yaml +++ b/.github/workflows/sdk-tests.yaml @@ -1,25 +1,36 @@ --- -env: - NEXT_PUBLIC_MODULE_ADDRESS: >- - 0xf000d910b99722d201c6cf88eb7d1112b43475b9765b118f289b5d65d919000d - PUBLISHER_PRIVATE_KEY: >- - 0xeaa964d1353b075ac63b0c5a0c1e92aa93355be1402f6077581e37e2a846105e - TS_DIR: 'src/typescript' jobs: sdk-tests: - permissions: - contents: 'write' + defaults: + run: + working-directory: 'src/typescript' runs-on: 'ubuntu-latest' steps: - uses: 'actions/checkout@v4' with: submodules: 'false' + - uses: 'actions/setup-node@v4' + with: + node-version-file: 'src/typescript/.node-version' + - name: 'Install dependencies' + run: 'npm install -g pnpm && pnpm install' - name: 'Install the latest Aptos CLI' # yamllint disable-line rule:line-length uses: 'aptos-labs/aptos-core/.github/actions/get-latest-cli@8792eefecd537c33fb879984635a0762838e2329' with: destination_directory: '/usr/local/bin' - - uses: './.github/actions/ts-run-tests' + - env: + NEXT_PUBLIC_MODULE_ADDRESS: >- + 0xf000d910b99722d201c6cf88eb7d1112b43475b9765b118f289b5d65d919000d + PUBLISHER_PRIVATE_KEY: >- + 0xeaa964d1353b075ac63b0c5a0c1e92aa93355be1402f6077581e37e2a846105e + name: 'Run Playwright tests' + run: 'pnpm run test:sdk' + - if: 'failure()' + name: 'Print local testnet logs on failure' + run: 'cat ${{ runner.temp }}/local-testnet-logs.txt' + shell: 'bash' + timeout-minutes: 15 name: 'Run the SDK tests' 'on': pull_request: null diff --git a/cfg/cspell-dictionary.txt b/cfg/cspell-dictionary.txt index 2d5955e42..1f7bbae7f 100644 --- a/cfg/cspell-dictionary.txt +++ b/cfg/cspell-dictionary.txt @@ -1,3 +1,4 @@ +ADBEEF aland allowlister aptn @@ -11,6 +12,7 @@ bouvet buildtime buildx burkina +bytea caicos clamm clipperton diff --git a/package.json b/package.json index a9d0f23bf..fd6d96bb7 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,33 @@ { "packageManager": "pnpm@9.4.0+sha512.f549b8a52c9d2b8536762f99c0722205efc5af913e77835dbccc3b0b0b2ca9e7dc8022b78062c17291c48e88749c70ce88eb5a74f1fa8c4bf5e18bb46c8bd83a", "scripts": { + "build": "pnpm --prefix src/typescript run build", + "build:debug": "pnpm --prefix src/typescript run build:debug", + "check": "pnpm --prefix src/typescript run check", + "clean": "pnpm --prefix src/typescript run clean", + "clean:full": "pnpm --prefix src/typescript run clean:full", "dev": "pnpm --prefix src/typescript run dev", - "down": "pnpm --prefix src/typescript run down", - "e2e:testnet": "pnpm --prefix src/typescript run e2e:testnet", + "dev:debug": "pnpm --prefix src/typescript run dev:debug", + "dev:debug-verbose": "pnpm --prefix src/typescript run dev:debug-verbose", + "docker:prune": "pnpm --prefix src/typescript run docker:prune", + "docker:restart": "pnpm --prefix src/typescript run docker:restart", + "docker:up": "pnpm --prefix src/typescript run docker:up", "format": "pnpm --prefix src/typescript run format", + "format:check": "pnpm --prefix src/typescript run format:check", "lint": "pnpm --prefix src/typescript run lint", "lint:fix": "pnpm --prefix src/typescript run lint:fix", - "prune": "pnpm --prefix src/typescript run prune", - "restart": "pnpm --prefix src/typescript run restart", + "load-env": "pnpm --prefix src/typescript run load-env", + "load-env:test": "pnpm --prefix src/typescript run load-env:test", + "playwright:install": "pnpm --prefix src/typescript run playwright:install", "start": "pnpm --prefix src/typescript run start", + "submodule": "pnpm --prefix src/typescript run submodule", "test": "pnpm --prefix src/typescript run test", "test:debug": "pnpm --prefix src/typescript run test:debug", - "test:verbose": "pnpm --prefix src/typescript run test:verbose", - "unit-test": "pnpm --prefix src/typescript run unit-test", - "up": "pnpm --prefix src/typescript run up" + "test:frontend": "pnpm --prefix src/typescript run test:frontend", + "test:frontend:e2e": "pnpm --prefix src/typescript run test:frontend:e2e", + "test:sdk": "pnpm --prefix src/typescript run test:sdk", + "test:sdk:e2e": "pnpm --prefix src/typescript run test:sdk:e2e", + "test:sdk:unit": "pnpm --prefix src/typescript run test:sdk:unit", + "test:verbose": "pnpm --prefix src/typescript run test:verbose" } } diff --git a/src/typescript/frontend/package.json b/src/typescript/frontend/package.json index ab91ee419..f0156999d 100644 --- a/src/typescript/frontend/package.json +++ b/src/typescript/frontend/package.json @@ -93,20 +93,15 @@ "build:debug": "BUILD_DEBUG=true next build --no-lint --no-mangling --debug", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next", "dev": "NODE_OPTIONS='--inspect' next dev --turbo --port 3001", - "e2e-chromium": "playwright test --project=chromium", - "e2e-firefox": "playwright test --project=firefox", - "e2e-webkit": "playwright test --project=webkit", - "e2e:frontend": "playwright test --project=firefox", "format": "pnpm _format --write", "format:check": "pnpm _format --check", "lint": "eslint --max-warnings=0 -c .eslintrc.js --ext .js,.jsx,.ts,.tsx .", "lint:fix": "pnpm run lint --fix", "playwright:install": "playwright install --with-deps", - "pre-commit": "pnpm run pre-commit:install && pnpm run pre-commit:run", - "pre-commit:install": "pre-commit install -c ../../../cfg/pre-commit-config.yaml", - "pre-commit:run": "pre-commit run --all-files -c ../../../cfg/pre-commit-config.yaml", "start": "next start --port 3001", "submodule": "./submodule.sh", + "test": "pnpm run test:e2e", + "test:e2e": "playwright test --project=firefox", "vercel-install": "./submodule.sh && pnpm i" }, "version": "0.0.1-alpha" diff --git a/src/typescript/package.json b/src/typescript/package.json index 105641293..f8b5e2e3c 100644 --- a/src/typescript/package.json +++ b/src/typescript/package.json @@ -17,39 +17,34 @@ "keyv": "npm:@keyvhq/core@2.1.1" }, "scripts": { - "build": "pnpm i && pnpm load-env -- turbo run build", - "build:debug": "pnpm i && pnpm load-env -- turbo run build:debug", + "build": "pnpm i && pnpm load-env:test -- turbo run build", + "build:debug": "pnpm i && pnpm load-env:test -- turbo run build:debug", "check": "turbo run check", - "clean": "turbo run clean --no-cache --force && rm -rf .turbo && rm -rf sdk/.turbo && rm -rf frontend/.turbo && rm -rf frontend/.next", + "clean": "turbo run clean --no-cache --force && rm -rf .turbo", + "clean:full": "pnpm run clean && rm -rf node_modules && rm -rf sdk/node_modules && rm -rf frontend/node_modules", "dev": "pnpm load-env -- turbo run dev --force --parallel --continue", - "dev:debug": "pnpm dotenv -v FETCH_DEBUG=true -- pnpm run dev", - "dev:debug-verbose": "pnpm dotenv -v FETCH_DEBUG_VERBOSE=true -- pnpm run dev", - "down": "pnpm run prune", - "e2e:frontend": "pnpm run load-env:e2e-frontend -- turbo run e2e:frontend --filter @econia-labs/emojicoin-frontend --log-prefix none", + "dev:debug": "FETCH_DEBUG=true pnpm load-env -- pnpm run dev", + "dev:debug-verbose": "FETCH_DEBUG_VERBOSE=true pnpm load-env -- pnpm run dev", + "docker:prune": "../docker/utils/prune.sh --reset-localnet --yes", + "docker:restart": "pnpm run docker:prune && pnpm run docker:up", + "docker:up": "docker compose -f ../docker/compose.local.yaml --env-file ../docker/compose.local.yaml up -d", "format": "turbo run format -- --write", "format:check": "turbo run format -- --check", - "full-clean": "pnpm run clean && rm -rf node_modules && rm -rf sdk/node_modules && rm -rf frontend/node_modules", "lint": "turbo run lint", "lint:fix": "turbo run lint -- --fix", - "load-env": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env", - "load-env:e2e-frontend": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env -e ci.env -v NODE_ENV=test", - "load-env:test": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env -e ci.env", - "load-env:test-debug": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env -e ci.env -v FETCH_DEBUG=true", - "load-env:test-verbose": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env -e ci.env -v FETCH_DEBUG=true VERBOSE_TEST_LOGS=true", - "load-env:unit-test": "dotenv -e .env.local -e .env -e .env.example -e ../docker/example.local.env -e ../docker/.env -e ci.env -v NO_TEST_SETUP=true", + "load-env": "dotenv -e .env", + "load-env:test": "dotenv -e ci.env", "playwright:install": "turbo run playwright:install", - "prune": "../docker/utils/prune.sh --reset-localnet --yes", - "restart": "pnpm run down && pnpm run up", - "start": "dotenv -e .env.local -e .env -- turbo run start", + "start": "pnpm load-env -- turbo run start", "submodule": "turbo run submodule", "test": "pnpm run load-env:test -- turbo run test --force", - "test:debug": "pnpm run load-env:test-debug -- turbo run test --force", + "test:debug": "FETCH_DEBUG=true pnpm run load-env:test -- turbo run test --force", "test:frontend": "pnpm run load-env:test -- turbo run test --filter @econia-labs/emojicoin-frontend --log-prefix none", - "test:parallel": "pnpm run load-env:test -- turbo run test:parallel --force --log-prefix none", - "test:sequential": "pnpm run load-env:test -- turbo run test:sequential --force --log-prefix none", - "test:verbose": "pnpm run load-env:test-verbose -- turbo run test --force", - "unit-test": "pnpm run load-env:unit-test -- turbo run unit-test --force --log-prefix none --log-order grouped", - "up": "docker compose -f ../docker/compose.local.yaml up -d" + "test:frontend:e2e": "pnpm run load-env:test -- turbo run test:e2e --filter @econia-labs/emojicoin-frontend --log-prefix none", + "test:sdk": "pnpm run load-env:test -- turbo run test --filter @econia-labs/emojicoin-sdk --log-prefix none", + "test:sdk:e2e": "pnpm run load-env:unit-test -- turbo run test:e2e --filter @econia-labs/emojicoin-sdk --force --log-prefix none --log-order grouped", + "test:sdk:unit": "NO_TEST_SETUP=true pnpm run load-env:test -- turbo run test:unit --force --log-prefix none --log-order grouped", + "test:verbose": "FETCH_DEBUG=true VERBOSE_TEST_LOGS=true pnpm run load-env:test -- turbo run test --force" }, "version": "0.0.0", "workspaces": [ diff --git a/src/typescript/sdk/package.json b/src/typescript/sdk/package.json index 1fc23d47a..1fc590b2e 100644 --- a/src/typescript/sdk/package.json +++ b/src/typescript/sdk/package.json @@ -66,10 +66,11 @@ "pre-commit": "pnpm run pre-commit:install && pnpm run pre-commit:run", "pre-commit:install": "pre-commit install -c ../../../cfg/pre-commit-config.yaml", "pre-commit:run": "pre-commit run --all-files -c ../../../cfg/pre-commit-config.yaml", - "test": "pnpm run test:parallel && pnpm run test:sequential", + "test": "pnpm run test:parallel && pnpm run test:sequential && pnpm run test:unit", + "test:e2e": "pnpm run test:parallel && pnpm run test:sequential", "test:parallel": "pnpm jest --testPathIgnorePatterns=tests/e2e/broker", "test:sequential": "pnpm jest --runInBand tests/e2e/broker", - "unit-test": "pnpm jest tests/unit" + "test:unit": "pnpm jest tests/unit" }, "typings": "dist/src/index.d.ts", "version": "0.0.1"