-
Notifications
You must be signed in to change notification settings - Fork 423
124 lines (119 loc) · 4.18 KB
/
monitoring-quote-geo-e2e-tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
name: Synthetic Quote Geo Monitoring Frontend tests
on:
workflow_dispatch:
schedule:
- cron: "*/30 * * * *"
jobs:
setup-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "matrix={\"include\":[{\"test-proxy\":\"use\", \"server-url\":\"http://138.68.112.16:8888\", \"env\": \"prod-fra1\"}, {\"test-proxy\":\"use\", \"server-url\":\"http://139.59.218.19:8888\", \"env\": \"prod-sgp1\"}, {\"test-proxy\":\"no\", \"server-url\":\"http://139.59.218.19:8888\", \"env\": \"prod-usa1\"}]}" >> "$GITHUB_OUTPUT"
fe-quote-tests:
timeout-minutes: 15
name: ${{ matrix.env }}-fe-quote-tests
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{fromJson(needs.setup-matrix.outputs.matrix)}}
steps:
- name: Echo IP
run: curl -L "https://ipinfo.io" -s
- 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/e2e install --frozen-lockfile && npx playwright install --with-deps chromium
- name: Run Swap tests on ${{ matrix.env }}
env:
BASE_URL: "https://app.osmosis.zone"
TEST_PROXY: ${{ matrix.server-url }}
TEST_PROXY_USERNAME: ${{secrets.TEST_PROXY_USERNAME}}
TEST_PROXY_PASSWORD: ${{secrets.TEST_PROXY_PASSWORD}}
USE_TEST_PROXY: ${{ matrix.test-proxy }}
run: |
cd packages/e2e
npx playwright test select pools
- name: upload test results
if: failure()
id: e2e-test-results
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.env }}-quote-test-results
path: packages/e2e/playwright-report
fe-bot-alert:
runs-on: ubuntu-latest
needs: [fe-quote-tests]
if: failure()
steps:
- name: Send Slack alert if test fails
id: slack
uses: slackapi/[email protected]
with:
payload: |
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "🚨 Synthetic Prod Swap 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-quote-tests, fe-bot-alert]
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
});
})
);