From dea7c2124e4e6e3e50c4abcd63f5329ef907a6d1 Mon Sep 17 00:00:00 2001 From: yakuramori <62520712+yury-dubinin@users.noreply.github.com> Date: Mon, 2 Sep 2024 20:23:14 +0200 Subject: [PATCH] Split Limit orders and swaps (#3817) * Split Limit orders and swaps --- .../monitoring-limit-geo-e2e-tests.yml | 236 ++++++++++++++++++ ....yml => monitoring-swap-geo-e2e-tests.yml} | 125 +--------- 2 files changed, 239 insertions(+), 122 deletions(-) create mode 100644 .github/workflows/monitoring-limit-geo-e2e-tests.yml rename .github/workflows/{monitoring-geo-e2e-tests.yml => monitoring-swap-geo-e2e-tests.yml} (67%) diff --git a/.github/workflows/monitoring-limit-geo-e2e-tests.yml b/.github/workflows/monitoring-limit-geo-e2e-tests.yml new file mode 100644 index 0000000000..dccab1a206 --- /dev/null +++ b/.github/workflows/monitoring-limit-geo-e2e-tests.yml @@ -0,0 +1,236 @@ +name: Synthetic Limit Orders Geo Monitoring Frontend tests + +on: + workflow_dispatch: + schedule: + - cron: "0 * * * *" + +jobs: + fe-trade-eu-tests: + timeout-minutes: 10 + name: prod-fe-trade-eu-tests + runs-on: macos-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.OS }}-20.x- + - name: Install Playwright + run: | + yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium + - name: Run Swap tests in EU + env: + BASE_URL: "https://app.osmosis.zone" + TEST_PROXY: "http://138.68.112.16:8888" + TEST_PROXY_USERNAME: ${{ secrets.TEST_PROXY_USERNAME }} + TEST_PROXY_PASSWORD: ${{ secrets.TEST_PROXY_PASSWORD }} + PRIVATE_KEY: ${{ secrets.TEST_PRIVATE_KEY_2 }} + USE_TEST_PROXY: "use" + run: | + cd packages/web + npx playwright test monitoring --timeout 180000 + - name: upload monitoring test results + if: failure() + id: monitoring-test-results + uses: actions/upload-artifact@v4 + with: + name: eu-trade-test-results + path: packages/web/playwright-report + - name: Send Slack alert if test fails + id: slack + if: failure() + uses: slackapi/slack-github-action@v1.26.0 + with: + payload: | + { + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "🚨 Synthetic EU Prod Trade Monitoring Tests Failure Alert 🚨" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "Click here to view the run: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|GitHub Actions Run>" + } + } + ] + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + fe-trade-sg-tests: + timeout-minutes: 10 + name: prod-fe-trade-sg-tests + runs-on: macos-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.OS }}-20.x- + - name: Install Playwright + run: | + yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium + - name: Run Swap tests in SG + env: + BASE_URL: "https://app.osmosis.zone" + TEST_PROXY: "http://139.59.218.19:8888" + TEST_PROXY_USERNAME: ${{ secrets.TEST_PROXY_USERNAME }} + TEST_PROXY_PASSWORD: ${{ secrets.TEST_PROXY_PASSWORD }} + PRIVATE_KEY: ${{ secrets.TEST_PRIVATE_KEY_2 }} + USE_TEST_PROXY: "use" + run: | + cd packages/web + npx playwright test monitoring --timeout 180000 + - name: upload monitoring test results + if: failure() + id: monitoring-test-results + uses: actions/upload-artifact@v4 + with: + name: sg-trade-test-results + path: packages/web/playwright-report + - name: Send Slack alert if test fails + id: slack + if: failure() + uses: slackapi/slack-github-action@v1.26.0 + with: + payload: | + { + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "🚨 Synthetic SG Prod Trade Monitoring Tests Failure Alert 🚨" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "Click here to view the run: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|GitHub Actions Run>" + } + } + ] + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + fe-trade-us-tests: + timeout-minutes: 10 + name: prod-fe-trade-us-tests + needs: fe-trade-eu-tests + runs-on: macos-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.OS }}-20.x- + - name: Install Playwright + run: | + yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium + - name: Run Swap tests in US + env: + BASE_URL: "https://app.osmosis.zone" + PRIVATE_KEY: ${{ secrets.TEST_PRIVATE_KEY_1 }} + run: | + cd packages/web + npx playwright test monitoring --timeout 180000 + - name: upload monitoring test results + if: failure() + id: monitoring-test-results + uses: actions/upload-artifact@v4 + with: + name: us-trade-test-results + path: packages/web/playwright-report + - name: Send Slack alert if test fails + id: slack + if: failure() + uses: slackapi/slack-github-action@v1.26.0 + with: + payload: | + { + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "🚨 Synthetic SG Prod Trade Monitoring Tests Failure Alert 🚨" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "Click here to view the run: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|GitHub Actions Run>" + } + } + ] + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + delete-deployments: + runs-on: ubuntu-latest + if: always() + needs: [fe-trade-eu-tests, fe-trade-us-tests, fe-trade-sg-tests] + steps: + - name: Delete Previous deployments + uses: actions/github-script@v7 + with: + debug: true + script: | + const deployments = await github.rest.repos.listDeployments({ + owner: context.repo.owner, + repo: context.repo.repo, + sha: context.sha + }); + await Promise.all( + deployments.data.map(async (deployment) => { + await github.rest.repos.createDeploymentStatus({ + owner: context.repo.owner, + repo: context.repo.repo, + deployment_id: deployment.id, + state: 'inactive' + }); + return github.rest.repos.deleteDeployment({ + owner: context.repo.owner, + repo: context.repo.repo, + deployment_id: deployment.id + }); + }) + ); diff --git a/.github/workflows/monitoring-geo-e2e-tests.yml b/.github/workflows/monitoring-swap-geo-e2e-tests.yml similarity index 67% rename from .github/workflows/monitoring-geo-e2e-tests.yml rename to .github/workflows/monitoring-swap-geo-e2e-tests.yml index 5b3dd651fd..4939dee841 100644 --- a/.github/workflows/monitoring-geo-e2e-tests.yml +++ b/.github/workflows/monitoring-swap-geo-e2e-tests.yml @@ -1,9 +1,9 @@ -name: Synthetic Geo Monitoring Frontend tests +name: Synthetic Swaps Geo Monitoring Frontend tests on: workflow_dispatch: schedule: - - cron: "*/20 * * * *" + - cron: "*/25 * * * *" jobs: setup-matrix: @@ -217,130 +217,11 @@ jobs: name: sg-swap-test-results path: packages/web/playwright-report - fe-trade-eu-tests: - timeout-minutes: 10 - needs: fe-swap-sg-tests - name: prod-fe-trade-eu-tests - runs-on: macos-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20.x - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: "**/node_modules" - key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.OS }}-20.x- - - name: Install Playwright - run: | - yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium - - name: Run Swap tests in EU - env: - BASE_URL: "https://app.osmosis.zone" - TEST_PROXY: "http://138.68.112.16:8888" - TEST_PROXY_USERNAME: ${{ secrets.TEST_PROXY_USERNAME }} - TEST_PROXY_PASSWORD: ${{ secrets.TEST_PROXY_PASSWORD }} - PRIVATE_KEY: ${{ secrets.TEST_PRIVATE_KEY_2 }} - USE_TEST_PROXY: "use" - run: | - cd packages/web - npx playwright test monitoring --timeout 180000 - - name: upload monitoring test results - if: failure() - id: monitoring-test-results - uses: actions/upload-artifact@v4 - with: - name: eu-trade-test-results - path: packages/web/playwright-report - - name: Send Slack alert if test fails - id: slack - if: failure() - uses: slackapi/slack-github-action@v1.26.0 - with: - payload: | - { - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "🚨 Synthetic EU Trade Monitoring Tests Failure Alert 🚨" - } - }, - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "*Production App URL:* https://app.osmosis.zone" - } - }, - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "Click here to view the run: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|GitHub Actions Run>" - } - } - ] - } - env: - SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} - SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK - - fe-trade-us-tests: - timeout-minutes: 10 - needs: fe-swap-us-tests - name: prod-fe-trade-us-tests - runs-on: macos-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20.x - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: "**/node_modules" - key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.OS }}-20.x- - - name: Install Playwright - run: | - yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium - - name: Run Swap tests in US - env: - BASE_URL: "https://app.osmosis.zone" - PRIVATE_KEY: ${{ secrets.TEST_PRIVATE_KEY_1 }} - run: | - cd packages/web - npx playwright test monitoring --timeout 180000 - - name: upload monitoring test results - if: failure() - id: monitoring-test-results - uses: actions/upload-artifact@v4 - with: - name: us-trade-test-results - path: packages/web/playwright-report - delete-deployments: runs-on: ubuntu-latest if: always() needs: - [ - fe-quote-tests, - fe-swap-us-tests, - fe-swap-sg-tests, - fe-swap-eu-tests, - fe-trade-eu-tests, - fe-trade-us-tests, - ] + [fe-quote-tests, fe-swap-us-tests, fe-swap-sg-tests, fe-swap-eu-tests] steps: - name: Delete Previous deployments uses: actions/github-script@v7