-
Notifications
You must be signed in to change notification settings - Fork 387
173 lines (157 loc) · 7.39 KB
/
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
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
name: Tests
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
APP_ENV: testing
APP_KEY: base64:q7U5qyAkedR1F6UhN0SQlUxBpAMDyfHy3NNFkqmiMqA=
APP_URL: http://localhost:8000
DB_HOST: 127.0.0.1
DUSK_WEBDRIVER_URL: http://127.0.0.1:9515
ES_SOLO_SCORES_HOST: http://localhost:9200
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NOTIFICATION_ENDPOINT: ws://localhost:2345
OSU_INSTALL_DEV: 1
OSU_USE_SYSTEM_COMPOSER: 1
OSU_DB_CREATE: 1
PAYMENT_SANDBOX: true
PASSPORT_PRIVATE_KEY: |+
-----BEGIN PRIVATE KEY-----
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
qkWREaw6Mt2MfHwSFoJooagIuAIHMGw=
-----END PRIVATE KEY-----
PASSPORT_PUBLIC_KEY: |+
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAphHR98Mmw37UoQ5ADxwP
+N5gHpTo9d+aoahFlLzN789oIFTE/Vk/QPn2YhWc2XNCvRgsypaZ0kZW+ccnMLaF
AlC/7zsbbNnKT7vzlU4sg6xfPuELY7lQDE7oBXXGrVE7kF28WsGzRgWs5DN/gRnd
Z0gLjTMBGOqHepBBNThkv3j5BnLWcX4f1jphXk/RrUC8jEmm+O/MIz0uPrwMo4Bx
7gTmKmbBW7v1lFEZgGuqk2BqGe8dtUdNLz+345x2oc3s4nQ8AHurPV19DYnoeXxs
qbIDkEqcIhV4hDUzmy/EUioRbDeK1mL+ybRqTsBerk3/IqI//YkNhtlmtM3oHcy2
qaymcSwTANF6kDhtpVs0bo1vM77461g6NVsQM+SbyszjXB1NKO724A9O7hbItUCQ
ifLExc6vxhqigNY3PkXoQ234Nol5vN1fIqLrZqXfQqd8JsKmbL/OLArVZ5R+gxNP
eI/aegNuaIvvsK9zNlyMbOdQqIU7LTFGHZ5bHcSz3haftL+dI1NVn6jOXpBRMWWL
jyPrpFMb6yffQYTgLtFjJUET6SNasXiJJh90y1ySKwv+5M2J8qpFGynolz2XJq+V
guz1jhIlRmg6O+thTZc71fg0vcUjcLuPy2z7VNX4YcPpkmev68NPCWpCAqi0zjMy
HQZdh/ScL40oDGb6HRdKan0CAwEAAQ==
-----END PUBLIC KEY-----
REDIS_HOST: 127.0.0.1
SHOPIFY_DOMAIN: notarealdomainortld
SHOPIFY_STOREFRONT_TOKEN: notreal
SLACK_ENDPOINT: https://myconan.net/null/
jobs:
tests:
strategy:
matrix:
php: ['8.3']
name: Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Services
run: 'docker compose up --quiet-pull --wait
beatmap-difficulty-lookup-cache
db
elasticsearch
notification-server
redis
score-indexer
'
- name: Setup node.js
uses: actions/setup-node@v4
with:
cache: yarn
node-version: '20'
- name: Set php version
uses: shivammathur/setup-php@v2
with:
extensions: redis, swoole
tools: composer:v2
php-version: ${{ matrix.php }}
coverage: none
- name: Get composer cache directory
id: composercache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer
uses: actions/cache@v4
with:
path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- run: ./build.sh
- name: Setup indices
run: |
php artisan es:create-search-blacklist
php artisan es:index-documents --no-interaction
php artisan es:index-wiki --create-only --no-interaction
- name: Generate docs
run: php artisan scribe:generate
- name: Run PHPUnit
run: ./bin/phpunit.sh
# TODO: workaround things (beatmaps) being indexed during test above and not cleaned up.
# This used to cause beatmap listing returning cursor with Long.MIN_VALUE for null timetamp
# and errors out when trying to get the next page (es can't parse such value for timestamp)
# but has since been fixed.
# Something should still be done regarding es index between tests though.
- name: Clean indexes
run: php artisan es:index-documents --no-interaction
- name: Run Dusk
run: ./bin/run_dusk.sh
- name: Run karma
run: yarn karma start --single-run --browsers ChromeHeadless
# this only tests that the rollback functions are valid and doesn't check
# if they actually do what they're expected to do.
- name: Migration rollback test
run: |
php artisan migrate:reset | tee rollback.log
grep -Fq 'no rolling back from this migration =)' rollback.log