Frontend E2E tests Workflow #34
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
name: Frontend E2E tests Workflow | |
on: | |
deployment_status: | |
jobs: | |
master-e2e-tests: | |
if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Production – osmosis-frontend' | |
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: | |
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 | |
preview-e2e-tests: | |
if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Preview – osmosis-frontend' | |
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: | |
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 Stage | |
env: | |
BASE_URL: ${{ github.event.deployment_status.environment_url }} | |
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: preview-e2e-test-results | |
path: packages/web/playwright-report | |
- name: Run Portfolio tests on Stage | |
env: | |
BASE_URL: ${{ github.event.deployment_status.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] | |
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>" | |
} | |
} | |
] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SERVER_E2E_TESTS_SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK |