Skip to content

Merge pull request #3663 from osmosis-labs/stage #3691

Merge pull request #3663 from osmosis-labs/stage

Merge pull request #3663 from osmosis-labs/stage #3691

name: Production frontend E2E tests
on:
push:
branches:
- master
workflow_dispatch:
jobs:
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 }}
VERCEL_TARGET: "production"
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"
prod-e2e-tests:
runs-on: macos-latest
needs: wait-for-deployment
environment:
name: prod_swap_test
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 Pair tests on Master
env:
BASE_URL: "https://app.osmosis.zone"
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
run: |
cd packages/web
npx playwright test -g "Test Swap feature"
- name: upload test results
if: always()
id: e2e-test-results
uses: actions/upload-artifact@v4
with:
name: main-e2e-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