-
Notifications
You must be signed in to change notification settings - Fork 27
131 lines (114 loc) · 3.61 KB
/
cypress.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
125
126
127
128
129
130
131
name: 'E2E Smoke'
# concurrency:
# group: pr-workflow-${{ github.ref }}
# cancel-in-progress: true
on:
pull_request:
types:
- opened
- reopened
- synchronize
env:
SERVICE: kyberswap-interface
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
current_branch: ${{ steps.current_branch.outputs.value }}
head_sha: ${{ github.event.pull_request.head.sha }}
image_name: 'asia.gcr.io/kyber-operation/core/${{ env.SERVICE }}'
image_tag: ${{ steps.get_tag.outputs.image_tag }}
repository: ${{ github.repository }}
pr_number: ${{github.event.number}}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Extract branch
shell: bash
id: current_branch
run: |
if [[ ! "${{ github.ref }}" = "refs/tags/"* ]]; then
if [[ "${{ github.event_name }}" = "pull_request" ]]; then
HEAD_REF=$(printf "%q" "${{ github.head_ref }}")
HEAD_REF=${HEAD_REF/refs\/heads\//}
BRANCH=$HEAD_REF
else
REF=$(printf "%q" "${{ github.ref }}")
REF_BRANCH=${REF/refs\/pull\//}
REF_BRANCH=${REF_BRANCH/refs\/heads\//}
BRANCH=$REF_BRANCH
fi
else
REF=$(printf "%q" "${{ github.ref }}")
REF_BRANCH=${REF/refs\/tags\//}
BRANCH=$REF_BRANCH
fi
echo "value=$BRANCH" >> $GITHUB_OUTPUT
- name: Extract GitHub HEAD SHA
id: head_sha
run: echo "value=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Get Docker image tag
id: get_tag
env:
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
short_sha="$(echo $HEAD_SHA | head -c7)"
echo "image_tag=adpr-$short_sha" >> $GITHUB_OUTPUT
cypress-test:
runs-on: ubuntu-latest
needs:
- prepare
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 20.9.0
registry-url: 'https://npm.pkg.github.com'
scope: '@kybernetwork'
- name: Install dependences
uses: bahmutov/npm-install@HEAD
env:
NODE_AUTH_TOKEN: ${{ secrets.GH_PAT }} ### authen npm
- name: Install linux deps
run: |
sudo apt-get install --no-install-recommends -y \
fluxbox \
xvfb
- name: Yarn Build
env:
CI: false
VITE_TAG: ${{ needs.prepare.outputs.image_tag }}
CURRENT_BRANCH: ${{ needs.prepare.outputs.current_branch }}
NODE_OPTIONS: '--max_old_space_size=4096'
run: yarn build-dev
- name: Install cypress
run: yarn cypress install --force
- name: Run xvfb and fluxbox
run: |
Xvfb :0 -screen 0 1024x768x24 -listen tcp -ac &
fluxbox &
env:
DISPLAY: :0.0
- name: Create env file
run: |
touch .env
echo ENV=${ENV} > .env
echo CYPRESS_BASE_URL='http://127.0.0.1:4173/' > .env
- name: Run Cypress Test
run: |+
#!/bin/bash
yarn preview &
yarn test:e2e -c baseUrl='http://127.0.0.1:4173/' -e grepTags=smoke,NETWORK=Ethereum
env:
DISPLAY: :0.0
- name: Archive e2e artifacts
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8
if: always()
with:
name: e2e-artifacts
path: |
cypress/videos
cypress/screenshots
continue-on-error: true