tiny_tds 3.2.0-aarch64-linux-musl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.codeclimate.yml +20 -0
- data/.gitattributes +1 -0
- data/.github/workflows/ci.yml +590 -0
- data/.gitignore +22 -0
- data/.rubocop.yml +31 -0
- data/CHANGELOG.md +305 -0
- data/CODE_OF_CONDUCT.md +31 -0
- data/Gemfile +2 -0
- data/ISSUE_TEMPLATE.md +38 -0
- data/MIT-LICENSE +23 -0
- data/README.md +493 -0
- data/Rakefile +67 -0
- data/VERSION +1 -0
- data/bin/defncopy-ttds +3 -0
- data/bin/tsql-ttds +3 -0
- data/docker-compose.yml +34 -0
- data/exe/.keep +0 -0
- data/ext/tiny_tds/client.c +492 -0
- data/ext/tiny_tds/client.h +53 -0
- data/ext/tiny_tds/extconf.rb +190 -0
- data/ext/tiny_tds/extconsts.rb +8 -0
- data/ext/tiny_tds/result.c +626 -0
- data/ext/tiny_tds/result.h +32 -0
- data/ext/tiny_tds/tiny_tds_ext.c +15 -0
- data/ext/tiny_tds/tiny_tds_ext.h +17 -0
- data/lib/tiny_tds/2.7/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.0/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.1/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.2/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.3/tiny_tds.so +0 -0
- data/lib/tiny_tds/3.4/tiny_tds.so +0 -0
- data/lib/tiny_tds/bin.rb +90 -0
- data/lib/tiny_tds/client.rb +132 -0
- data/lib/tiny_tds/error.rb +12 -0
- data/lib/tiny_tds/gem.rb +23 -0
- data/lib/tiny_tds/result.rb +5 -0
- data/lib/tiny_tds/version.rb +3 -0
- data/lib/tiny_tds.rb +42 -0
- data/patches/freetds/1.00.27/0001-mingw_missing_inet_pton.diff +34 -0
- data/patches/freetds/1.00.27/0002-Don-t-use-MSYS2-file-libws2_32.diff +28 -0
- data/patches/libiconv/1.14/1-avoid-gets-error.patch +17 -0
- data/ports/aarch64-linux-musl/bin/defncopy +0 -0
- data/ports/aarch64-linux-musl/bin/tsql +0 -0
- data/ports/aarch64-linux-musl/lib/libsybdb.so.5 +0 -0
- data/setup_cimgruby_dev.sh +25 -0
- data/start_dev.sh +21 -0
- data/tasks/native_gem.rake +16 -0
- data/tasks/package.rake +6 -0
- data/tasks/ports.rake +24 -0
- data/tasks/test.rake +7 -0
- data/test/bin/install-freetds.sh +18 -0
- data/test/bin/install-mssql.ps1 +42 -0
- data/test/bin/install-mssqltools.sh +9 -0
- data/test/bin/install-openssl.sh +18 -0
- data/test/bin/restore-from-native-gem.ps1 +10 -0
- data/test/bin/setup_tinytds_db.sh +7 -0
- data/test/bin/setup_volume_permissions.sh +10 -0
- data/test/client_test.rb +266 -0
- data/test/gem_test.rb +100 -0
- data/test/result_test.rb +708 -0
- data/test/schema/1px.gif +0 -0
- data/test/schema/sqlserver_2017.sql +140 -0
- data/test/schema/sqlserver_azure.sql +140 -0
- data/test/schema_test.rb +417 -0
- data/test/sql/db-create.sql +18 -0
- data/test/sql/db-login.sql +38 -0
- data/test/test_helper.rb +244 -0
- data/test/thread_test.rb +89 -0
- data/tiny_tds.gemspec +31 -0
- metadata +259 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5163490d5aba1fb3598a6fd9e913d47a2e9bc9b1f297a41c6eb616508019299d
|
4
|
+
data.tar.gz: c5ad621357f275d8ca29787591c67ca98896813fa86b65443a507f813555f5c4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 68e1afcf17bba1e4a439055e726e9f50656ae9dd3a5fd2d6ab02ef5b494bfb5e16cc822ca1e578311b7acb5e3a0988e26f2194b5a57cf5ad601e551444bca3e3
|
7
|
+
data.tar.gz: ab9f9145dfc1df9b826f8778e15f6d08f306b8007606098660e1c01d2eaefb620baf145aca52f3aa7a8212f36898a2953c6974cd0eb14a6116185fe4c45d1665
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
engines:
|
2
|
+
bundler-audit:
|
3
|
+
enabled: true
|
4
|
+
duplication:
|
5
|
+
enabled: true
|
6
|
+
config:
|
7
|
+
languages:
|
8
|
+
- ruby
|
9
|
+
fixme:
|
10
|
+
enabled: true
|
11
|
+
rubocop:
|
12
|
+
enabled: true
|
13
|
+
ratings:
|
14
|
+
paths:
|
15
|
+
- "**.rb"
|
16
|
+
exclude_paths:
|
17
|
+
- ext/
|
18
|
+
- ports/
|
19
|
+
- test/
|
20
|
+
- tmp/
|
data/.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.diff eol=lf
|
@@ -0,0 +1,590 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
cross-compile:
|
10
|
+
strategy:
|
11
|
+
fail-fast: false
|
12
|
+
matrix:
|
13
|
+
platform:
|
14
|
+
- "x64-mingw32"
|
15
|
+
- "x64-mingw-ucrt"
|
16
|
+
- "x86_64-linux-gnu"
|
17
|
+
- "x86_64-linux-musl"
|
18
|
+
- "aarch64-linux-gnu"
|
19
|
+
- "aarch64-linux-musl"
|
20
|
+
|
21
|
+
name: cross-compile
|
22
|
+
runs-on: ubuntu-22.04
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v4
|
25
|
+
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: ruby/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: "2.7"
|
30
|
+
|
31
|
+
- name: "Install dependencies"
|
32
|
+
run: bundle install
|
33
|
+
|
34
|
+
- name: Write used versions into file
|
35
|
+
shell: bash
|
36
|
+
run: bundle exec rake ports:version_file[${{ matrix.platform }}]
|
37
|
+
|
38
|
+
- name: Cache ports
|
39
|
+
uses: actions/cache@v4
|
40
|
+
with:
|
41
|
+
path: ports
|
42
|
+
key: cross-compiled-v1-${{ matrix.platform }}-${{ hashFiles('**/.ports_versions') }}
|
43
|
+
restore-keys: |
|
44
|
+
cross-compiled-v1-${{ matrix.platform }}-${{ hashFiles('**/.ports_versions') }}
|
45
|
+
cross-compiled-v1-${{ matrix.platform }}-
|
46
|
+
|
47
|
+
- name: Build gem
|
48
|
+
shell: bash
|
49
|
+
run: bundle exec rake gem:native:${{ matrix.platform }}
|
50
|
+
|
51
|
+
- uses: actions/upload-artifact@v4
|
52
|
+
with:
|
53
|
+
name: gem-${{ matrix.platform }}
|
54
|
+
path: pkg/*.gem
|
55
|
+
|
56
|
+
install-windows-mingw:
|
57
|
+
needs:
|
58
|
+
- cross-compile
|
59
|
+
strategy:
|
60
|
+
fail-fast: false
|
61
|
+
matrix:
|
62
|
+
ruby-version:
|
63
|
+
- "2.7"
|
64
|
+
- "3.0"
|
65
|
+
|
66
|
+
name: install-windows-mingw
|
67
|
+
runs-on: windows-latest
|
68
|
+
steps:
|
69
|
+
- uses: actions/checkout@v4
|
70
|
+
|
71
|
+
- uses: ruby/setup-ruby@v1
|
72
|
+
with:
|
73
|
+
ruby-version: ${{ matrix.ruby-version }}
|
74
|
+
bundler-cache: true
|
75
|
+
|
76
|
+
- name: Download precompiled gem
|
77
|
+
uses: actions/download-artifact@v4
|
78
|
+
with:
|
79
|
+
name: gem-x64-mingw32
|
80
|
+
|
81
|
+
- name: Install native gem
|
82
|
+
shell: pwsh
|
83
|
+
run: |
|
84
|
+
$rubyArchitecture = (ruby -e "puts RbConfig::CONFIG['arch']").Trim()
|
85
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
86
|
+
$gemToInstall = "./tiny_tds-$gemVersion-$rubyArchitecture.gem"
|
87
|
+
|
88
|
+
Write-Host "Looking to install $gemToInstall"
|
89
|
+
gem install "$gemToInstall"
|
90
|
+
|
91
|
+
- name: Test if TinyTDS loads
|
92
|
+
shell: pwsh
|
93
|
+
run: |
|
94
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
95
|
+
exit $LASTEXITCODE
|
96
|
+
|
97
|
+
- name: Test if tsql wrapper works
|
98
|
+
shell: pwsh
|
99
|
+
run: |
|
100
|
+
tsql-ttds -C
|
101
|
+
exit $LASTEXITCODE
|
102
|
+
|
103
|
+
- name: Test if defncopy wrapper works
|
104
|
+
shell: pwsh
|
105
|
+
run: |
|
106
|
+
defncopy-ttds -v
|
107
|
+
exit $LASTEXITCODE
|
108
|
+
|
109
|
+
test-windows-mingw:
|
110
|
+
needs:
|
111
|
+
- cross-compile
|
112
|
+
strategy:
|
113
|
+
fail-fast: false
|
114
|
+
matrix:
|
115
|
+
force-encryption:
|
116
|
+
- false
|
117
|
+
- true
|
118
|
+
mssql-version:
|
119
|
+
- 2017
|
120
|
+
- 2019
|
121
|
+
- 2022
|
122
|
+
ruby-version:
|
123
|
+
- "2.7"
|
124
|
+
- "3.0"
|
125
|
+
|
126
|
+
name: test-windows-mingw
|
127
|
+
runs-on: windows-latest
|
128
|
+
steps:
|
129
|
+
- uses: actions/checkout@v4
|
130
|
+
|
131
|
+
- uses: ruby/setup-ruby@v1
|
132
|
+
with:
|
133
|
+
ruby-version: ${{ matrix.ruby-version }}
|
134
|
+
bundler-cache: true
|
135
|
+
|
136
|
+
- name: Download precompiled gem
|
137
|
+
uses: actions/download-artifact@v4
|
138
|
+
with:
|
139
|
+
name: gem-x64-mingw32
|
140
|
+
|
141
|
+
- name: Install native gem and restore cross-compiled code from it
|
142
|
+
shell: pwsh
|
143
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
144
|
+
env:
|
145
|
+
RUBY_ARCHITECTURE: "x64-mingw32"
|
146
|
+
|
147
|
+
- name: Setup MSSQL
|
148
|
+
uses: rails-sqlserver/setup-mssql@v1
|
149
|
+
with:
|
150
|
+
components: sqlcmd,sqlengine
|
151
|
+
version: ${{ matrix.mssql-version }}
|
152
|
+
sa-password: c0MplicatedP@ssword
|
153
|
+
force-encryption: ${{ matrix.force-encryption }}
|
154
|
+
|
155
|
+
- name: Setup MSSQL database
|
156
|
+
shell: pwsh
|
157
|
+
run: |
|
158
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
159
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
160
|
+
|
161
|
+
- name: Install toxiproxy-server
|
162
|
+
shell: pwsh
|
163
|
+
run: |
|
164
|
+
choco install toxiproxy-server --version=2.5.0 -y
|
165
|
+
Start-Process toxiproxy-server
|
166
|
+
|
167
|
+
- name: Test gem
|
168
|
+
shell: pwsh
|
169
|
+
run: bundle exec rake test
|
170
|
+
env:
|
171
|
+
TOXIPROXY_HOST: "localhost"
|
172
|
+
|
173
|
+
- name: Test Summary
|
174
|
+
uses: test-summary/action@v2
|
175
|
+
with:
|
176
|
+
paths: "test/reports/TEST-*.xml"
|
177
|
+
if: always()
|
178
|
+
|
179
|
+
install-windows-ucrt:
|
180
|
+
needs:
|
181
|
+
- cross-compile
|
182
|
+
strategy:
|
183
|
+
fail-fast: false
|
184
|
+
matrix:
|
185
|
+
ruby-version:
|
186
|
+
- "3.1"
|
187
|
+
- "3.2"
|
188
|
+
- "3.3"
|
189
|
+
- "3.4"
|
190
|
+
|
191
|
+
name: install-windows-ucrt
|
192
|
+
runs-on: windows-latest
|
193
|
+
steps:
|
194
|
+
- uses: actions/checkout@v4
|
195
|
+
|
196
|
+
- uses: ruby/setup-ruby@v1
|
197
|
+
with:
|
198
|
+
ruby-version: ${{ matrix.ruby-version }}
|
199
|
+
bundler-cache: true
|
200
|
+
|
201
|
+
- name: Download precompiled gem
|
202
|
+
uses: actions/download-artifact@v4
|
203
|
+
with:
|
204
|
+
name: gem-x64-mingw-ucrt
|
205
|
+
|
206
|
+
- name: Install native gem
|
207
|
+
shell: pwsh
|
208
|
+
run: |
|
209
|
+
$rubyArchitecture = (ruby -e "puts RbConfig::CONFIG['arch']").Trim()
|
210
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
211
|
+
$gemToInstall = "./tiny_tds-$gemVersion-$rubyArchitecture.gem"
|
212
|
+
|
213
|
+
Write-Host "Looking to install $gemToInstall"
|
214
|
+
gem install "$gemToInstall"
|
215
|
+
|
216
|
+
- name: Test if TinyTDS loads
|
217
|
+
shell: pwsh
|
218
|
+
run: |
|
219
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
220
|
+
exit $LASTEXITCODE
|
221
|
+
|
222
|
+
- name: Test if tsql wrapper works
|
223
|
+
shell: pwsh
|
224
|
+
run: |
|
225
|
+
tsql-ttds -C
|
226
|
+
exit $LASTEXITCODE
|
227
|
+
|
228
|
+
- name: Test if defncopy wrapper works
|
229
|
+
shell: pwsh
|
230
|
+
run: |
|
231
|
+
defncopy-ttds -v
|
232
|
+
exit $LASTEXITCODE
|
233
|
+
|
234
|
+
test-windows-ucrt:
|
235
|
+
needs:
|
236
|
+
- cross-compile
|
237
|
+
strategy:
|
238
|
+
fail-fast: false
|
239
|
+
matrix:
|
240
|
+
force-encryption:
|
241
|
+
- false
|
242
|
+
- true
|
243
|
+
mssql-version:
|
244
|
+
- 2017
|
245
|
+
- 2019
|
246
|
+
- 2022
|
247
|
+
ruby-version:
|
248
|
+
- "3.1"
|
249
|
+
- "3.2"
|
250
|
+
- "3.3"
|
251
|
+
- "3.4"
|
252
|
+
|
253
|
+
name: test-windows-ucrt
|
254
|
+
runs-on: windows-latest
|
255
|
+
steps:
|
256
|
+
- uses: actions/checkout@v4
|
257
|
+
|
258
|
+
- uses: ruby/setup-ruby@v1
|
259
|
+
with:
|
260
|
+
ruby-version: ${{ matrix.ruby-version }}
|
261
|
+
bundler-cache: true
|
262
|
+
|
263
|
+
- name: Download precompiled gem
|
264
|
+
uses: actions/download-artifact@v4
|
265
|
+
with:
|
266
|
+
name: gem-x64-mingw-ucrt
|
267
|
+
|
268
|
+
- name: Install native gem and restore cross-compiled code from it
|
269
|
+
shell: pwsh
|
270
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
271
|
+
env:
|
272
|
+
RUBY_ARCHITECTURE: "x64-mingw-ucrt"
|
273
|
+
|
274
|
+
- name: Setup MSSQL
|
275
|
+
uses: rails-sqlserver/setup-mssql@v1
|
276
|
+
with:
|
277
|
+
components: sqlcmd,sqlengine
|
278
|
+
version: ${{ matrix.mssql-version }}
|
279
|
+
sa-password: c0MplicatedP@ssword
|
280
|
+
force-encryption: ${{ matrix.force-encryption }}
|
281
|
+
|
282
|
+
- name: Setup MSSQL database
|
283
|
+
shell: pwsh
|
284
|
+
run: |
|
285
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
286
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
287
|
+
|
288
|
+
- name: Install toxiproxy-server
|
289
|
+
shell: pwsh
|
290
|
+
run: |
|
291
|
+
choco install toxiproxy-server --version=2.5.0 -y
|
292
|
+
Start-Process toxiproxy-server
|
293
|
+
|
294
|
+
- name: Test gem
|
295
|
+
shell: pwsh
|
296
|
+
run: bundle exec rake test
|
297
|
+
env:
|
298
|
+
TOXIPROXY_HOST: "localhost"
|
299
|
+
|
300
|
+
- name: Test Summary
|
301
|
+
uses: test-summary/action@v2
|
302
|
+
with:
|
303
|
+
paths: "test/reports/TEST-*.xml"
|
304
|
+
if: always()
|
305
|
+
|
306
|
+
install-windows-native:
|
307
|
+
strategy:
|
308
|
+
fail-fast: false
|
309
|
+
matrix:
|
310
|
+
ruby-version:
|
311
|
+
- "2.7"
|
312
|
+
- "3.0"
|
313
|
+
- "3.1"
|
314
|
+
- "3.2"
|
315
|
+
- "3.3"
|
316
|
+
- "3.4"
|
317
|
+
|
318
|
+
name: install-windows-native
|
319
|
+
runs-on: windows-latest
|
320
|
+
steps:
|
321
|
+
- uses: actions/checkout@v4
|
322
|
+
|
323
|
+
- uses: ruby/setup-ruby@v1
|
324
|
+
with:
|
325
|
+
ruby-version: ${{ matrix.ruby-version }}
|
326
|
+
bundler-cache: true
|
327
|
+
|
328
|
+
- name: Build gem
|
329
|
+
shell: pwsh
|
330
|
+
run: gem build tiny_tds.gemspec
|
331
|
+
|
332
|
+
- name: Install gem
|
333
|
+
shell: pwsh
|
334
|
+
run: |
|
335
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
336
|
+
gem install "tiny_tds-$gemVersion.gem"
|
337
|
+
|
338
|
+
- name: Test if TinyTDS loads
|
339
|
+
shell: pwsh
|
340
|
+
run: |
|
341
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
342
|
+
exit $LASTEXITCODE
|
343
|
+
|
344
|
+
- name: Test if tsql wrapper works
|
345
|
+
shell: pwsh
|
346
|
+
run: |
|
347
|
+
tsql-ttds -C
|
348
|
+
exit $LASTEXITCODE
|
349
|
+
|
350
|
+
- name: Test if defncopy wrapper works
|
351
|
+
shell: pwsh
|
352
|
+
run: |
|
353
|
+
defncopy-ttds -v
|
354
|
+
exit $LASTEXITCODE
|
355
|
+
|
356
|
+
install-linux:
|
357
|
+
needs:
|
358
|
+
- cross-compile
|
359
|
+
strategy:
|
360
|
+
fail-fast: false
|
361
|
+
matrix:
|
362
|
+
platform:
|
363
|
+
- "x86_64-linux-gnu"
|
364
|
+
- "x86_64-linux-musl"
|
365
|
+
- "aarch64-linux-gnu"
|
366
|
+
- "aarch64-linux-musl"
|
367
|
+
|
368
|
+
ruby-version:
|
369
|
+
- "2.7"
|
370
|
+
- "3.0"
|
371
|
+
- "3.1"
|
372
|
+
- "3.2"
|
373
|
+
- "3.3"
|
374
|
+
- "3.4"
|
375
|
+
|
376
|
+
include:
|
377
|
+
- platform: x86_64-linux-musl
|
378
|
+
docker_tag: "-alpine"
|
379
|
+
bootstrap: "apk add -U build-base &&" # required to compile bigdecimal on Ruby 2.7
|
380
|
+
|
381
|
+
- platform: aarch64-linux-gnu
|
382
|
+
docker_platform: "--platform=linux/arm64"
|
383
|
+
|
384
|
+
- platform: aarch64-linux-musl
|
385
|
+
docker_platform: "--platform=linux/arm64"
|
386
|
+
docker_tag: "-alpine"
|
387
|
+
bootstrap: "apk add -U build-base &&"
|
388
|
+
|
389
|
+
name: install-linux
|
390
|
+
runs-on: ubuntu-22.04
|
391
|
+
steps:
|
392
|
+
- uses: actions/checkout@v4
|
393
|
+
|
394
|
+
- name: Download precompiled gem
|
395
|
+
uses: actions/download-artifact@v4
|
396
|
+
with:
|
397
|
+
name: gem-${{ matrix.platform }}
|
398
|
+
path: precompiled/gems
|
399
|
+
|
400
|
+
- name: Setup QEMU for docker
|
401
|
+
uses: docker/setup-qemu-action@v3
|
402
|
+
if: ${{ matrix.docker_platform }} != ''
|
403
|
+
|
404
|
+
- run: |
|
405
|
+
docker run --rm -v $PWD/precompiled:/precompiled -w /precompiled \
|
406
|
+
${{ matrix.docker_platform }} ruby:${{ matrix.ruby-version }}${{ matrix.docker_tag }} \
|
407
|
+
sh -c "
|
408
|
+
gem update --system 3.3.22 &&
|
409
|
+
${{ matrix.bootstrap }}
|
410
|
+
gem install --no-document ./gems/tiny_tds-$(cat VERSION)-${{ matrix.platform }}.gem &&
|
411
|
+
ruby -e \"require 'tiny_tds'; puts TinyTds::Gem.root_path\" &&
|
412
|
+
tsql-ttds -C &&
|
413
|
+
defncopy-ttds -v
|
414
|
+
"
|
415
|
+
|
416
|
+
test-linux:
|
417
|
+
needs:
|
418
|
+
- cross-compile
|
419
|
+
name: test-linux
|
420
|
+
strategy:
|
421
|
+
fail-fast: false
|
422
|
+
matrix:
|
423
|
+
force-encryption:
|
424
|
+
- false
|
425
|
+
- true
|
426
|
+
|
427
|
+
mssql-version:
|
428
|
+
- 2017
|
429
|
+
- 2019
|
430
|
+
- 2022
|
431
|
+
|
432
|
+
ruby-version:
|
433
|
+
- "2.7"
|
434
|
+
- "3.0"
|
435
|
+
- "3.1"
|
436
|
+
- "3.2"
|
437
|
+
- "3.3"
|
438
|
+
- "3.4"
|
439
|
+
|
440
|
+
runs-on: ubuntu-22.04
|
441
|
+
steps:
|
442
|
+
- uses: actions/checkout@v4
|
443
|
+
|
444
|
+
- uses: ruby/setup-ruby@v1
|
445
|
+
with:
|
446
|
+
ruby-version: ${{ matrix.ruby-version }}
|
447
|
+
bundler-cache: true
|
448
|
+
|
449
|
+
- name: Download precompiled gem
|
450
|
+
uses: actions/download-artifact@v4
|
451
|
+
with:
|
452
|
+
name: gem-x86_64-linux-gnu
|
453
|
+
|
454
|
+
- name: Install native gem and restore cross-compiled code from it
|
455
|
+
shell: pwsh
|
456
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
457
|
+
env:
|
458
|
+
RUBY_ARCHITECTURE: "x86_64-linux-gnu"
|
459
|
+
|
460
|
+
- name: Setup MSSQL
|
461
|
+
uses: rails-sqlserver/setup-mssql@v1
|
462
|
+
with:
|
463
|
+
components: sqlcmd,sqlengine
|
464
|
+
version: ${{ matrix.mssql-version }}
|
465
|
+
sa-password: "c0MplicatedP@ssword"
|
466
|
+
force-encryption: ${{ matrix.force-encryption }}
|
467
|
+
|
468
|
+
- name: Setup MSSQL database
|
469
|
+
run: |
|
470
|
+
sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
471
|
+
sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
472
|
+
|
473
|
+
- name: Install toxiproxy-server
|
474
|
+
run: |
|
475
|
+
wget -O toxiproxy-2.5.0.deb https://github.com/Shopify/toxiproxy/releases/download/v2.5.0/toxiproxy_2.5.0_linux_amd64.deb
|
476
|
+
sudo dpkg -i toxiproxy-2.5.0.deb
|
477
|
+
sudo toxiproxy-server &
|
478
|
+
|
479
|
+
- name: Run tests
|
480
|
+
run: bundle exec rake test
|
481
|
+
env:
|
482
|
+
TOXIPROXY_HOST: "localhost"
|
483
|
+
|
484
|
+
- name: Test Summary
|
485
|
+
uses: test-summary/action@v2
|
486
|
+
with:
|
487
|
+
paths: "test/reports/TEST-*.xml"
|
488
|
+
if: always()
|
489
|
+
|
490
|
+
install-linux-native:
|
491
|
+
strategy:
|
492
|
+
fail-fast: false
|
493
|
+
matrix:
|
494
|
+
ruby-version:
|
495
|
+
- "2.7"
|
496
|
+
- "3.0"
|
497
|
+
- "3.1"
|
498
|
+
- "3.2"
|
499
|
+
- "3.3"
|
500
|
+
- "3.4"
|
501
|
+
|
502
|
+
name: install-linux-native
|
503
|
+
runs-on: ubuntu-22.04
|
504
|
+
steps:
|
505
|
+
- uses: actions/checkout@v4
|
506
|
+
|
507
|
+
- uses: ruby/setup-ruby@v1
|
508
|
+
with:
|
509
|
+
ruby-version: ${{ matrix.ruby-version }}
|
510
|
+
bundler-cache: true
|
511
|
+
|
512
|
+
- name: Install FreeTDS
|
513
|
+
shell: bash
|
514
|
+
run: ./test/bin/install-freetds.sh
|
515
|
+
|
516
|
+
- name: Build gem
|
517
|
+
shell: bash
|
518
|
+
run: gem build tiny_tds.gemspec
|
519
|
+
|
520
|
+
- name: Install gem
|
521
|
+
shell: bash
|
522
|
+
run: gem install "tiny_tds-$(cat VERSION).gem"
|
523
|
+
|
524
|
+
- name: Test if TinyTDS loads
|
525
|
+
shell: bash
|
526
|
+
run: ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
527
|
+
|
528
|
+
- name: Test if tsql wrapper works
|
529
|
+
shell: bash
|
530
|
+
run: tsql-ttds -C
|
531
|
+
|
532
|
+
- name: Test if defncopy wrapper works
|
533
|
+
shell: bash
|
534
|
+
run: defncopy-ttds -v
|
535
|
+
|
536
|
+
install_macos:
|
537
|
+
strategy:
|
538
|
+
fail-fast: false
|
539
|
+
matrix:
|
540
|
+
ruby-version:
|
541
|
+
- "2.7"
|
542
|
+
- "3.0"
|
543
|
+
- "3.1"
|
544
|
+
- "3.2"
|
545
|
+
- "3.3"
|
546
|
+
- "3.4"
|
547
|
+
|
548
|
+
name: install-macos-m1
|
549
|
+
runs-on: macos-14
|
550
|
+
steps:
|
551
|
+
- uses: actions/checkout@v4
|
552
|
+
|
553
|
+
- name: Install FreeTDS
|
554
|
+
run: brew install freetds
|
555
|
+
shell: bash
|
556
|
+
|
557
|
+
- uses: ruby/setup-ruby@v1
|
558
|
+
with:
|
559
|
+
ruby-version: ${{ matrix.ruby-version }}
|
560
|
+
bundler-cache: true
|
561
|
+
|
562
|
+
- name: Build gem
|
563
|
+
shell: bash
|
564
|
+
run: gem build tiny_tds.gemspec
|
565
|
+
|
566
|
+
- name: Install gem and test if TinyTDS loads
|
567
|
+
shell: bash
|
568
|
+
run: |
|
569
|
+
gemVersion=$(<VERSION tr -d '[:space:]')
|
570
|
+
gem install "tiny_tds-$gemVersion.gem"
|
571
|
+
|
572
|
+
- name: Test if TinyTDS loads
|
573
|
+
shell: bash
|
574
|
+
run: |
|
575
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
576
|
+
|
577
|
+
standardrb:
|
578
|
+
name: standardrb
|
579
|
+
runs-on: ubuntu-22.04
|
580
|
+
steps:
|
581
|
+
- uses: actions/checkout@v4
|
582
|
+
|
583
|
+
- uses: ruby/setup-ruby@v1
|
584
|
+
with:
|
585
|
+
ruby-version: "2.7"
|
586
|
+
bundler-cache: true
|
587
|
+
|
588
|
+
- name: Check standardrb
|
589
|
+
shell: bash
|
590
|
+
run: bundle exec standardrb
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Makefile
|
2
|
+
*.dSYM
|
3
|
+
*.o
|
4
|
+
*.bundle
|
5
|
+
*.so
|
6
|
+
*.a
|
7
|
+
*.rbc
|
8
|
+
mkmf.log
|
9
|
+
pkg/
|
10
|
+
tmp
|
11
|
+
vendor
|
12
|
+
lib/tiny_tds/tiny_tds.rb
|
13
|
+
.rvmrc
|
14
|
+
.rbenv-version
|
15
|
+
Gemfile.lock
|
16
|
+
misc
|
17
|
+
*.gem
|
18
|
+
/exe/*
|
19
|
+
/ports/*
|
20
|
+
!/ports/patches/
|
21
|
+
test/reports
|
22
|
+
.ports_versions
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
AllCops:
|
3
|
+
Include:
|
4
|
+
- '**/Rakefile'
|
5
|
+
Exclude:
|
6
|
+
- 'ext/**/*'
|
7
|
+
- 'ports/**/*'
|
8
|
+
- 'test/**/*'
|
9
|
+
- 'tmp/**/*'
|
10
|
+
|
11
|
+
# Redefined
|
12
|
+
|
13
|
+
Metrics/LineLength:
|
14
|
+
Max: 120
|
15
|
+
|
16
|
+
Metrics/ClassLength:
|
17
|
+
Max: 200
|
18
|
+
|
19
|
+
# Disabled
|
20
|
+
|
21
|
+
Style/Documentation:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
Style/EmptyLinesAroundClassBody:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Style/EmptyLinesAroundModuleBody:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
Style/EmptyLinesAroundBlockBody:
|
31
|
+
Enabled: false
|