forked from osmosis-labs/osmosis-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'osmosis-labs:stage' into stage
- Loading branch information
Showing
1,010 changed files
with
631,737 additions
and
10,528 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import time | ||
import requests | ||
import os | ||
|
||
|
||
def wait_for_deployment(timeout): | ||
branch_name = os.getenv('BRANCH_NAME') | ||
print(f"Wait for a deployment for a branch name: {branch_name}") | ||
time.sleep(30) | ||
bearer_token = os.getenv('VERCEL_TOKEN') | ||
project_id = os.getenv('VERCEL_PROJECT') | ||
target = os.getenv('VERCEL_TARGET', 'preview') | ||
headers = { | ||
"Authorization": f"Bearer {bearer_token}" | ||
} | ||
url = f"https://api.vercel.com/v6/deployments?projectId={project_id}&target={target}&state=BUILDING" | ||
response = requests.get(url, headers=headers) | ||
deployments = response.json()['deployments'] | ||
print(f"Found {len(deployments)} deployments.") | ||
if len(deployments) == 0: | ||
raise Exception(f"No Vercel deployments in state=BUILDING for {branch_name}!") | ||
vercel_uid = "" | ||
vercel_url = "" | ||
for deployment in deployments: | ||
if deployment['meta']['githubCommitRef'] == branch_name: | ||
vercel_uid = deployment['uid'] | ||
vercel_url = deployment['url'] | ||
gh_out = f"environment_url={vercel_url}" | ||
os.system(f'echo "{gh_out}" >> $GITHUB_OUTPUT') | ||
os.system(f'echo "{gh_out}" >> $GITHUB_ENV') | ||
os.system(f'echo Vercel deployment: "{gh_out}" >> $GITHUB_STEP_SUMMARY') | ||
for i in range(1, timeout): | ||
print(f"Sleep for 30 seconds and get deployment uid {vercel_uid} and url: {vercel_url}") | ||
time.sleep(30) | ||
current_url = f"https://api.vercel.com/v13/deployments/{vercel_uid}" | ||
current_response = requests.get(current_url, headers=headers) | ||
status = current_response.json()['status'] | ||
print(f"Status of deployment uid {vercel_uid} is {status}") | ||
if status == "READY": | ||
break | ||
if status == "ERROR": | ||
raise Exception(f"Vercel deployment {current_url} has failed!") | ||
|
||
return f"environment_url={vercel_url}" | ||
|
||
|
||
wait_for_deployment(40) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,47 @@ | ||
name: Frontend E2E tests Workflow | ||
name: Preview frontend E2E tests | ||
|
||
on: | ||
deployment_status: | ||
push: | ||
branches-ignore: | ||
- master | ||
|
||
jobs: | ||
master-e2e-tests: | ||
if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Production – osmosis-frontend' | ||
wait-for-deployment: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
environment_url: ${{steps.vercel.outputs.environment_url}} | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
- id: vercel | ||
env: | ||
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | ||
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | ||
VERCEL_PROJECT: ${{ secrets.VERCEL_PROJECT }} | ||
run: | | ||
echo "$BRANCH_NAME" | ||
python -m pip install requests | ||
cd .github && python await_deployment.py | ||
- name: Echo GITHUB_OUTPUT environment_url | ||
env: | ||
environment_url: ${{ steps.vercel.outputs.environment_url }} | ||
run: echo "$environment_url" | ||
|
||
preview-swap-tests: | ||
runs-on: macos-latest | ||
needs: wait-for-deployment | ||
environment: | ||
name: prod_swap_test | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
- name: print environment_url and BRANCH_NAME | ||
env: | ||
BASE_URL: "https://${{ needs.wait-for-deployment.outputs.environment_url }}" | ||
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | ||
run: | | ||
echo "$BASE_URL" | ||
echo "$BRANCH_NAME" | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
|
@@ -25,59 +55,25 @@ jobs: | |
${{ runner.OS }}-20.x- | ||
- name: Install Playwright | ||
run: | | ||
echo "$GITHUB_OUTPUT" | ||
yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium | ||
- name: Run Swap Pair tests on Master | ||
- name: Run Swap Pair tests | ||
env: | ||
BASE_URL: "https://app.osmosis.zone" | ||
BASE_URL: "https://${{ needs.wait-for-deployment.outputs.environment_url }}" | ||
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
run: | | ||
cd packages/web | ||
npx playwright test -g "Test Swap feature" | ||
- name: upload test results | ||
- name: upload Swap test results | ||
if: always() | ||
id: e2e-test-results | ||
id: swap-test-results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: main-e2e-test-results | ||
name: preview-swap-test-results | ||
path: packages/web/playwright-report | ||
- name: Send Slack alert if test fails | ||
id: slack | ||
if: failure() | ||
uses: slackapi/[email protected] | ||
with: | ||
payload: | | ||
{ | ||
"text": "🚨 FE E2E Tests Failure Alert 🚨", | ||
"blocks": [ | ||
{ | ||
"type": "header", | ||
"text": { | ||
"type": "plain_text", | ||
"text": "FE E2E Tests Failure" | ||
} | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*Environment:* production\n*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 | ||
|
||
preview-e2e-tests: | ||
if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Preview – osmosis-frontend' | ||
preview-portfolio-tests: | ||
needs: wait-for-deployment | ||
runs-on: macos-latest | ||
environment: | ||
name: prod_swap_test | ||
|
@@ -98,59 +94,89 @@ jobs: | |
- name: Install Playwright | ||
run: | | ||
yarn --cwd packages/web install --frozen-lockfile && npx playwright install --with-deps chromium | ||
- name: Run Swap Pair tests on Stage | ||
- name: Run Portfolio tests | ||
env: | ||
BASE_URL: ${{ github.event.deployment_status.environment_url }} | ||
BASE_URL: "https://${{ needs.wait-for-deployment.outputs.environment_url }}" | ||
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
run: | | ||
cd packages/web | ||
npx playwright test -g "Test Swap feature" | ||
- name: upload test results | ||
npx playwright test -g "Test Portfolio feature" | ||
- name: upload Portfolio test results | ||
if: always() | ||
id: e2e-test-results | ||
id: portfolio-test-results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: preview-e2e-test-results | ||
name: preview-portfolio-test-results | ||
path: packages/web/playwright-report | ||
- name: Run Portfolio tests on Stage | ||
|
||
preview-pools-and-select-pair-tests: | ||
needs: wait-for-deployment | ||
runs-on: ubuntu-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 Pools tests | ||
env: | ||
BASE_URL: ${{ github.event.deployment_status.environment_url }} | ||
BASE_URL: "https://${{ needs.wait-for-deployment.outputs.environment_url }}" | ||
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
run: | | ||
cd packages/web | ||
npx playwright test -g "Test Portfolio feature" | ||
- name: Send Slack alert if test fails | ||
id: slack | ||
if: failure() | ||
uses: slackapi/[email protected] | ||
npx playwright test pools select | ||
- name: upload pools test results | ||
if: always() | ||
id: pools-test-results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: preview-pools-test-results | ||
path: packages/web/playwright-report | ||
|
||
preview-transactions-tests: | ||
needs: wait-for-deployment | ||
runs-on: macos-latest | ||
environment: | ||
name: prod_swap_test | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
payload: | | ||
{ | ||
"text": "🚨 FE E2E Tests Failure Alert 🚨", | ||
"blocks": [ | ||
{ | ||
"type": "header", | ||
"text": { | ||
"type": "plain_text", | ||
"text": "FE E2E Tests Failure" | ||
} | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*Environment:* preview\n*App URL:* ${{ github.event.deployment_status.environment_url }}" | ||
} | ||
}, | ||
{ | ||
"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>" | ||
} | ||
} | ||
] | ||
} | ||
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 Transactions tests | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} | ||
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | ||
BASE_URL: "https://${{ needs.wait-for-deployment.outputs.environment_url }}" | ||
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
run: | | ||
cd packages/web | ||
npx playwright test -g "Test Transactions feature" | ||
- name: upload transactions test results | ||
if: always() | ||
id: transactions-test-results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: preview-transactions-test-results | ||
path: packages/web/playwright-report |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.