-
Notifications
You must be signed in to change notification settings - Fork 1
151 lines (129 loc) Β· 4.79 KB
/
functional_testing.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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: End To End Testing
on:
pull_request:
branches: [ main ]
jobs:
functional_test:
name: Functional Testing
runs-on: ubuntu-latest
steps:
- name: Checkout ποΈ
uses: actions/checkout@v4
- name: Setup env file β
run: |
echo "# tool hosting information" > .env
echo "HTTP_PORT=70" >> .env
echo "DOMAIN=localhost" >> .env
echo "WS_PROTOCOL=ws" >> .env
echo "WS_PORT=70" >> .env
echo "" >> .env
echo "# database information" >> .env
echo "MYSQL_ROOT_PASSWORD=xFRcwhHSF4aHxpGv7n5DuzSz" >> .env
echo "MYSQL_PORT=3206" >> .env
echo "MYSQL_DATABASE=snnap" >> .env
echo "MYSQL_USER=snnap" >> .env
echo "MYSQL_PASSWORD=vGvmKAcPLeQpQ7gEKckN89dB" >> .env
echo "" >> .env
echo "# api information" >> .env
echo "API_PORT=3001" >> .env
echo "API_LIMIT=10000" >> .env
echo "" >> .env
echo "# third party information" >> .env
echo "GA_TRACKING_CODE=UA-000000-01" >> .env
echo "GEOAPIFY_API_KEY=${{ secrets.GEOAPIFY_API_KEY }}" >> .env
echo "" >> .env
echo "# email info" >> .env
echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env
echo "EMAIL_PASS=${{ secrets.EMAIL_PASS }}" >> .env
- name: Setup key files β
run: |
mkdir -p api/certs
echo "${{ secrets.KEY }}" > api/certs/key-rsa.pem
echo "${{ secrets.CERT }}" > api/certs/cert.pem
- name: Build Dockerfile π
run: docker-compose -f docker-compose.yml up -d --build
- name: Setup Node β
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install π§
run: |
npm ci
cd api; npm ci
- name: Functional Test π
run: |
export $(grep -v '^#' .env | xargs)
docker exec snnap_mysql ./setup-database.sh
APP=http://localhost:70 npm run test
- name: Retrieve Docker API Logs
if: always()
run: docker logs snnap_api
- name: Archive Test Results π
if: always()
uses: actions/upload-artifact@v4
with:
name: Functional Test Results
path: 'Selenium Test Results'
accessibility_test:
name: Accessibility Testing
runs-on: ubuntu-latest
steps:
- name: Checkout ποΈ
uses: actions/checkout@v4
- name: Setup env file β
run: |
echo "# tool hosting information" > .env
echo "HTTP_PORT=70" >> .env
echo "DOMAIN=localhost" >> .env
echo "WS_PROTOCOL=ws" >> .env
echo "WS_PORT=70" >> .env
echo "" >> .env
echo "# database information" >> .env
echo "MYSQL_ROOT_PASSWORD=xFRcwhHSF4aHxpGv7n5DuzSz" >> .env
echo "MYSQL_PORT=3206" >> .env
echo "MYSQL_DATABASE=snnap" >> .env
echo "MYSQL_USER=snnap" >> .env
echo "MYSQL_PASSWORD=vGvmKAcPLeQpQ7gEKckN89dB" >> .env
echo "" >> .env
echo "# api information" >> .env
echo "API_PORT=3001" >> .env
echo "API_LIMIT=10000" >> .env
echo "" >> .env
echo "# third party information" >> .env
echo "GA_TRACKING_CODE=UA-000000-01" >> .env
echo "GEOAPIFY_API_KEY=${{ secrets.GEOAPIFY_API_KEY }}" >> .env
echo "" >> .env
echo "# email info" >> .env
echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env
echo "EMAIL_PASS=${{ secrets.EMAIL_PASS }}" >> .env
- name: Setup key files β
run: |
mkdir -p api/certs
echo "${{ secrets.KEY }}" > api/certs/key-rsa.pem
echo "${{ secrets.CERT }}" > api/certs/cert.pem
- name: Build Dockerfile π
run: docker-compose -f docker-compose.yml up -d --build
- name: Setup Node β
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install π§
run: |
npm ci
cd api; npm ci
- name: Accessibility Test π
run: |
export $(grep -v '^#' .env | xargs)
docker exec snnap_mysql ./setup-database.sh
APP=http://localhost:70 npm run test:accessibility
- name: Retrieve Docker API Logs
if: always()
run: docker logs snnap_api
- name: Archive Test Results π
if: always()
uses: actions/upload-artifact@v4
with:
name: Accessibility Test Results
path: 'Selenium Test Results'