Skip to content

Commit b8217c4

Browse files
authored
Merge pull request #249 from dentarg/actions
Add Ruby 3.0 support and replace Travis CI with GitHub Actions
2 parents b708621 + 7698c7b commit b8217c4

File tree

18 files changed

+165
-103
lines changed

18 files changed

+165
-103
lines changed

.github/workflows/tests.yml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
name: Tests
2+
3+
# workflow_dispatch enables running workflow manually
4+
on: [push, pull_request, workflow_dispatch]
5+
6+
jobs:
7+
rubocop:
8+
name: RuboCop
9+
runs-on: ${{ matrix.os }}
10+
if: |
11+
!( contains(github.event.pull_request.title, '[ci skip]')
12+
|| contains(github.event.pull_request.title, '[skip ci]')
13+
|| contains(github.event.head_commit.message, '[ci skip]')
14+
|| contains(github.event.head_commit.message, '[skip ci]'))
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
os: [ubuntu-20.04]
19+
ruby: [2.7]
20+
steps:
21+
- uses: actions/checkout@v2
22+
- uses: ruby/setup-ruby@v1
23+
with:
24+
bundler-cache: true
25+
ruby-version: ${{ matrix.ruby }}
26+
- run: bundle exec rake rubocop
27+
28+
specs:
29+
name: ${{ matrix.os }} ${{ matrix.ruby }}
30+
runs-on: ${{ matrix.os }}
31+
if: |
32+
!( contains(github.event.pull_request.title, '[ci skip]')
33+
|| contains(github.event.pull_request.title, '[skip ci]')
34+
|| contains(github.event.head_commit.message, '[ci skip]')
35+
|| contains(github.event.head_commit.message, '[skip ci]'))
36+
strategy:
37+
fail-fast: false
38+
matrix:
39+
os:
40+
- ubuntu-16.04
41+
- ubuntu-18.04
42+
- ubuntu-20.04
43+
ruby:
44+
- 2.3
45+
- 2.4
46+
- 2.5
47+
- 2.6
48+
- 2.7
49+
# YAML gotcha: https://github.com/actions/runner/issues/849
50+
- '3.0'
51+
- head
52+
include:
53+
- os: ubuntu-20.04
54+
ruby: jruby-9.1
55+
jruby_opts: '--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
56+
allow-failure: true
57+
- os: ubuntu-20.04
58+
ruby: jruby-9.2
59+
jruby_opts: '--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
60+
allow-failure: true
61+
- os: ubuntu-20.04
62+
ruby: jruby-head
63+
jruby_opts: '--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
64+
allow-failure: true
65+
steps:
66+
- uses: actions/checkout@v2
67+
- uses: ruby/setup-ruby@v1
68+
with:
69+
bundler-cache: true
70+
ruby-version: ${{ matrix.ruby }}
71+
- run: bundle exec rake
72+
continue-on-error: ${{ matrix.allow-failure || false }}
73+
74+
smoketests:
75+
name: smoketest with influx ${{ matrix.influx_version }}
76+
runs-on: ubuntu-20.04
77+
if: |
78+
!( contains(github.event.pull_request.title, '[ci skip]')
79+
|| contains(github.event.pull_request.title, '[skip ci]')
80+
|| contains(github.event.head_commit.message, '[ci skip]')
81+
|| contains(github.event.head_commit.message, '[skip ci]'))
82+
strategy:
83+
fail-fast: false
84+
matrix:
85+
include:
86+
- { ruby: 2.7, influx_version: 1.0.2, pkghash: 88f6c30fec2c6e612e802e23b9161fdfc7c5c29f6be036f0376326445aff0037 }
87+
- { ruby: 2.7, influx_version: 1.1.5, pkghash: 0ecb9385cc008f6e5094e6e8f8ea70522023a16d4397e401898f3973176d3b21 }
88+
- { ruby: 2.7, influx_version: 1.2.4, pkghash: 2fac8391e04aa1bec9151e8f0d8f18df030c866af2b4963ab7d86c6ddc172182 }
89+
- { ruby: 2.7, influx_version: 1.3.8, pkghash: 35c9cb2943bbde04aa5e94ad6d8caf5fc9b1480bdbcde7c34078de135cc4f788 }
90+
- { ruby: 2.7, influx_version: 1.4.3, pkghash: 0477080f1d1cf8e1242dc7318280b9010c4c45cf6a415a2a5de607ae17fa0359 }
91+
- { ruby: 2.7, influx_version: 1.5.4, pkghash: fa6f8d3196d13ffc376d533581b534692c738181ce3427c53484c138d9e6b902 }
92+
- { ruby: 2.7, influx_version: 1.6.4, pkghash: dbfa13a0f9e38a8e7b19294c30144903bb681ac0aba0a3a8f4f349c37d5de5f9 }
93+
- { ruby: 2.7, influx_version: 1.7.9, pkghash: 02759d70cef670d336768fd38a9cf2f046a1bf40618be78ba215e7ce75b5075f }
94+
- { ruby: 2.7, influx_version: nightly, channel: nightlies, allow-failure: true }
95+
env:
96+
influx_version: ${{ matrix.influx_version }}
97+
pkghash: ${{ matrix.pkghash }}
98+
channel: ${{ matrix.channel }}
99+
steps:
100+
- uses: actions/checkout@v2
101+
- uses: ruby/setup-ruby@v1
102+
with:
103+
bundler-cache: true
104+
ruby-version: ${{ matrix.ruby }}
105+
- run: bin/provision.sh
106+
- run: bundle exec rake spec
107+
continue-on-error: ${{ matrix.allow-failure || false }}

.rubocop.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
inherit_mode:
2+
merge:
3+
- Exclude
4+
15
AllCops:
26
Include:
37
- 'Rakefile'

.travis.yml

Lines changed: 0 additions & 59 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# influxdb-ruby
22

33
[![Gem Version](https://badge.fury.io/rb/influxdb.svg)](https://badge.fury.io/rb/influxdb)
4-
[![Build Status](https://travis-ci.org/influxdata/influxdb-ruby.svg?branch=master)](https://travis-ci.org/influxdata/influxdb-ruby)
4+
[![Build Status](https://github.com/influxdata/influxdb-ruby/workflows/Tests/badge.svg)](https://github.com/influxdata/influxdb-ruby/actions)
55

66
The official Ruby client library for [InfluxDB](https://influxdata.com/time-series-platform/influxdb/).
77
Maintained by [@toddboom](https://github.com/toddboom) and [@dmke](https://github.com/dmke).

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ RSpec::Core::RakeTask.new(:spec) do |t|
1414
t.pattern = FileList[file_pattern]
1515
end
1616

17-
if ENV.key?("TRAVIS")
17+
if ENV.key?("CI")
1818
task default: %i[spec]
1919
else
2020
task default: %i[spec rubocop]

bin/provision.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ echo "-- grant access"
6363

6464
echo "== Download and import NOAA sample data"
6565

66-
curl https://s3-us-west-1.amazonaws.com/noaa.water.database.0.9/NOAA_data.txt > noaa.txt
66+
curl https://s3.amazonaws.com/noaa.water-database/NOAA_data.txt > noaa.txt
6767
/usr/bin/influx -import -path noaa.txt -precision s
6868

6969
echo "-- grant access"

lib/influxdb/query/batch.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def execute(
2727
)
2828
return [] if statements.empty?
2929

30-
url = full_url "/query".freeze, query_params(statements.join(";"), opts)
30+
url = full_url "/query".freeze, **query_params(statements.join(";"), **opts)
3131
series = fetch_series get(url, parse: true, json_streaming: !chunk_size.nil?)
3232

3333
if denormalize
@@ -82,8 +82,14 @@ def fetch_series(response)
8282
denormalize_series
8383
denormalized_series_list
8484
].each do |method_name|
85-
define_method(method_name) do |*args|
86-
client.send method_name, *args
85+
if RUBY_VERSION < "2.7"
86+
define_method(method_name) do |*args|
87+
client.send method_name, *args
88+
end
89+
else
90+
define_method(method_name) do |*args, **kwargs|
91+
client.send method_name, *args, **kwargs
92+
end
8793
end
8894
end
8995
end

lib/influxdb/query/core.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def query( # rubocop:disable Metrics/MethodLength
2626
)
2727
query = builder.build(query, params)
2828

29-
url = full_url("/query".freeze, query_params(query, **opts))
29+
url = full_url("/query".freeze, **query_params(query, **opts))
3030
series = fetch_series(get(url, parse: true, json_streaming: !chunk_size.nil?))
3131

3232
if block_given?
@@ -79,7 +79,7 @@ def write(data, precision, retention_policy = nil, database = nil)
7979
}
8080

8181
params[:rp] = retention_policy if retention_policy
82-
url = full_url("/write", params)
82+
url = full_url("/write", **params)
8383
post(url, data)
8484
end
8585

@@ -133,7 +133,7 @@ def generate_point(point)
133133
def execute(query, db: nil, **options)
134134
params = { q: query }
135135
params[:db] = db if db
136-
url = full_url("/query".freeze, params)
136+
url = full_url("/query".freeze, **params)
137137
get(url, options)
138138
end
139139

@@ -147,7 +147,7 @@ def raw_values(series)
147147
series.select { |k, _| %w[columns values].include?(k) }
148148
end
149149

150-
def full_url(path, params = {})
150+
def full_url(path, **params)
151151
if config.auth_method == "params".freeze
152152
params[:u] = config.username
153153
params[:p] = config.password

spec/influxdb/cases/query_cluster_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
describe InfluxDB::Client do
55
let(:subject) do
6-
described_class.new "database", {
6+
described_class.new "database", **{
77
host: "influxdb.test",
88
port: 9999,
99
username: "username",

spec/influxdb/cases/query_series_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
let(:subject) do
66
described_class.new(
77
"database",
8-
{
8+
**{
99
host: "influxdb.test",
1010
port: 9999,
1111
username: "username",

0 commit comments

Comments
 (0)