1+ name : CI
2+
3+ # MySQL Native should work with the following database versions:
4+ # mysql:8
5+ # mysql:5.7
6+ # mariadb:10
7+
8+ on :
9+ schedule :
10+ - cron : ' 30 7 1 * *'
11+ push :
12+ pull_request :
13+
14+ jobs :
15+ mysql8-tests :
16+ name : MySQL 8 Tests ${{ matrix.compiler }}
17+ strategy :
18+ fail-fast : false
19+ matrix :
20+ compiler :
21+ - dmd-latest
22+ - ldc-latest
23+ - dmd-2.096.1
24+ - dmd-2.095.1
25+ - dmd-2.094.2
26+ - dmd-2.084.1
27+ - dmd-2.083.1 # # As far back as unit-threaded seems to work
28+ - ldc-1.23.0 # eq to dmd v2.093.1
29+ - ldc-1.19.0 # eq to dmd v2.089.1
30+
31+ runs-on : ubuntu-20.04
32+
33+ services :
34+ mysql :
35+ image : mysql:8
36+ ports : [3306]
37+ env :
38+ MYSQL_ROOT_PASSWORD : f48dfhw3Hd!Asah7i2aZ
39+ MYSQL_DATABASE : testdb
40+ MYSQL_USER : testuser
41+ MYSQL_PASSWORD : passw0rd
42+ # Set health checks to wait until mysql service has started
43+ options : >-
44+ --health-cmd "mysqladmin ping"
45+ --health-interval 10s
46+ --health-timeout 3s
47+ --health-retries 4
48+
49+ steps :
50+ - uses : actions/checkout@v2
51+
52+ - name : Install ${{ matrix.compiler }}
53+ uses : dlang-community/setup-dlang@v1
54+ with :
55+ compiler : ${{ matrix.compiler }}
56+
57+ - name : Install dependencies on Ubuntu
58+ if : startsWith(matrix.os, 'ubuntu')
59+ run : sudo apt-get update && sudo apt-get install libevent-dev -y
60+
61+ # # Turns out the unittest-vibe-ut tried to connect to an actualy MySQL on 172.18.0.1 so it's not
62+ # # actually a unit test at all. It's an integration test and should be pulled out from the main
63+ # # codebase into a separate sub module
64+ - name : Run unittest-vibe-ut
65+ env :
66+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
67+ run : |
68+ echo "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb" > testConnectionStr.txt
69+ dub run -c unittest-vibe-ut -- -t
70+
71+ - name : Build The Example Project
72+ working-directory : ./examples/homePage
73+ run : dub build
74+
75+ - name : Run Example (MySQL 8)
76+ working-directory : ./examples/homePage
77+ env :
78+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
79+ run : |
80+ ./example "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb"
81+
82+ mysql57-tests :
83+ name : MySQL 5.7 Tests ${{ matrix.compiler }}
84+ strategy :
85+ fail-fast : false
86+ matrix :
87+ compiler :
88+ - dmd-latest
89+ - ldc-latest
90+ - dmd-2.096.1
91+ - dmd-2.095.1
92+ - dmd-2.094.2
93+ - dmd-2.084.1
94+ - dmd-2.083.1 # # As far back as unit-threaded seems to work
95+ - ldc-1.23.0 # eq to dmd v2.093.1
96+ - ldc-1.19.0 # eq to dmd v2.089.1
97+
98+ runs-on : ubuntu-20.04
99+
100+ services :
101+ mysql :
102+ image : mysql:5.7
103+ ports : [3306]
104+ env :
105+ MYSQL_ROOT_PASSWORD : f48dfhw3Hd!Asah7i2aZ
106+ MYSQL_DATABASE : testdb
107+ MYSQL_USER : testuser
108+ MYSQL_PASSWORD : passw0rd
109+ # Set health checks to wait until mysql service has started
110+ options : >-
111+ --health-cmd "mysqladmin ping"
112+ --health-interval 10s
113+ --health-timeout 3s
114+ --health-retries 4
115+
116+ steps :
117+ - uses : actions/checkout@v2
118+
119+ - name : Install ${{ matrix.compiler }}
120+ uses : dlang-community/setup-dlang@v1
121+ with :
122+ compiler : ${{ matrix.compiler }}
123+
124+ - name : Install dependencies on Ubuntu
125+ if : startsWith(matrix.os, 'ubuntu')
126+ run : sudo apt-get update && sudo apt-get install libevent-dev -y
127+
128+ # # Turns out the unittest-vibe-ut tried to connect to an actualy MySQL on 172.18.0.1 so it's not
129+ # # actually a unit test at all. It's an integration test and should be pulled out from the main
130+ # # codebase into a separate sub module
131+ - name : Run unittest-vibe-ut
132+ env :
133+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
134+ run : |
135+ echo "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb" > testConnectionStr.txt
136+ dub run -c unittest-vibe-ut -- -t
137+
138+ - name : Build The Example Project
139+ working-directory : ./examples/homePage
140+ run : dub build
141+
142+ - name : Run Example (MySQL 5.7)
143+ working-directory : ./examples/homePage
144+ env :
145+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
146+ run : |
147+ ./example "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb"
148+
149+ mariadb10-tests :
150+ name : MariaDB 10 Tests ${{ matrix.compiler }}
151+ strategy :
152+ fail-fast : false
153+ matrix :
154+ compiler :
155+ - dmd-latest
156+ - ldc-latest
157+ - dmd-2.096.1
158+ - dmd-2.095.1
159+ - dmd-2.094.2
160+ - dmd-2.084.1
161+ - dmd-2.083.1 # # As far back as unit-threaded seems to work
162+ - ldc-1.23.0 # eq to dmd v2.093.1
163+ - ldc-1.19.0 # eq to dmd v2.089.1
164+
165+ runs-on : ubuntu-20.04
166+
167+ services :
168+ mysql :
169+ image : mariadb:10
170+ ports : [3306]
171+ env :
172+ MYSQL_ROOT_PASSWORD : f48dfhw3Hd!Asah7i2aZ
173+ MYSQL_DATABASE : testdb
174+ MYSQL_USER : testuser
175+ MYSQL_PASSWORD : passw0rd
176+ # Set health checks to wait until mysql service has started
177+ options : >-
178+ --health-cmd "mysqladmin ping"
179+ --health-interval 10s
180+ --health-timeout 3s
181+ --health-retries 4
182+
183+ steps :
184+ - uses : actions/checkout@v2
185+
186+ - name : Install ${{ matrix.compiler }}
187+ uses : dlang-community/setup-dlang@v1
188+ with :
189+ compiler : ${{ matrix.compiler }}
190+
191+ - name : Install dependencies on Ubuntu
192+ if : startsWith(matrix.os, 'ubuntu')
193+ run : sudo apt-get update && sudo apt-get install libevent-dev -y
194+
195+ # # Turns out the unittest-vibe-ut tried to connect to an actualy MySQL on 172.18.0.1 so it's not
196+ # # actually a unit test at all. It's an integration test and should be pulled out from the main
197+ # # codebase into a separate sub module
198+ - name : Run unittest-vibe-ut
199+ env :
200+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
201+ run : |
202+ echo "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb" > testConnectionStr.txt
203+ dub run -c unittest-vibe-ut -- -t
204+
205+ - name : Build The Example Project
206+ working-directory : ./examples/homePage
207+ run : dub build
208+
209+ - name : Run Example (mariadb 10)
210+ working-directory : ./examples/homePage
211+ env :
212+ MYSQL_PORT : ${{ job.services.mysql.ports[3306] }}
213+ run : |
214+ ./example "host=localhost;port=$MYSQL_PORT;user=testuser;pwd=passw0rd;db=testdb"
0 commit comments