appsignal 3.0.9 → 3.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 3.0.10
4
+
5
+ - [88f7d585](https://github.com/appsignal/appsignal-ruby/commit/88f7d5850f57777c98f56190dc35ff37eface542) patch - Bump agent to c2024bf with appsignal-agent diagnose timing issue fix when reading the report and improved filtering for HTTP request transmission logs.
6
+
3
7
  ## 3.0.9
4
8
 
5
9
  - [44dd4bdc](https://github.com/appsignal/appsignal-ruby/commit/44dd4bdc824ec88337b75791c1870358a4aa274f) patch - Check Rails.backtrace_cleaner method before calling the method. This prevents a NoMethodError from being raised in some edge cases.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # AppSignal for Ruby
1
+ # AppSignal apm for Ruby
2
2
 
3
3
  AppSignal solves all your Ruby monitoring needs in a single tool. You and your
4
4
  team can focus on writing code and we'll provide the alerts if your app has any
@@ -291,22 +291,22 @@ the most out of using AppSignal.
291
291
 
292
292
  Also see our [SUPPORT.md file](SUPPORT.md).
293
293
 
294
- [appsignal]: https://appsignal.com
294
+ [appsignal]: https://www.appsignal.com/ruby
295
295
  [appsignal-sign-up]: https://appsignal.com/users/sign_up
296
296
  [contact]: mailto:support@appsignal.com
297
297
  [coc]: https://docs.appsignal.com/appsignal/code-of-conduct.html
298
- [waffles-page]: https://appsignal.com/waffles
299
- [docs]: http://docs.appsignal.com
298
+ [waffles-page]: https://www.appsignal.com/waffles
299
+ [docs]: https://docs.appsignal.com
300
300
  [ruby-doc]: https://www.rubydoc.info/gems/appsignal
301
- [contributing-guide]: http://docs.appsignal.com/appsignal/contributing.html
302
- [supported-systems]: http://docs.appsignal.com/support/operating-systems.html
303
- [integrations]: http://docs.appsignal.com/ruby/integrations/index.html
304
- [custom-instrumentation]: http://docs.appsignal.com/ruby/instrumentation/
305
- [front-end-monitoring]: http://docs.appsignal.com/front-end/error-handling.html
306
- [exception-handling]: http://docs.appsignal.com/ruby/instrumentation/exception-handling.html
307
- [tagging]: http://docs.appsignal.com/ruby/instrumentation/tagging.html
308
- [host-metrics]: http://docs.appsignal.com/metrics/host.html
309
- [custom-metrics]: http://docs.appsignal.com/metrics/custom.html
301
+ [contributing-guide]: https://docs.appsignal.com/appsignal/contributing.html
302
+ [supported-systems]: https://docs.appsignal.com/support/operating-systems.html
303
+ [integrations]: https://docs.appsignal.com/ruby/integrations/index.html
304
+ [custom-instrumentation]: https://docs.appsignal.com/ruby/instrumentation/
305
+ [front-end-monitoring]: https://docs.appsignal.com/front-end/error-handling.html
306
+ [exception-handling]: https://docs.appsignal.com/ruby/instrumentation/exception-handling.html
307
+ [tagging]: https://docs.appsignal.com/ruby/instrumentation/tagging.html
308
+ [host-metrics]: https://docs.appsignal.com/metrics/host.html
309
+ [custom-metrics]: https://docs.appsignal.com/metrics/custom.html
310
310
 
311
311
  [semver]: http://semver.org/
312
312
  [rvm]: http://rvm.io/
data/Rakefile CHANGED
@@ -24,16 +24,17 @@ def env_map(key, value)
24
24
  }
25
25
  end
26
26
 
27
- def build_task(ruby_version, type = nil)
27
+ def build_task(matrix, ruby_version, type = nil)
28
28
  {
29
29
  "name" => "Ruby #{ruby_version}#{type ? " - #{type}" : nil}",
30
30
  "dependencies" => ["Validation"],
31
31
  "task" => {
32
- "prologue" => {
33
- "commands" => [
32
+ "prologue" => matrix["prologue"].merge(
33
+ "commands" => matrix["prologue"]["commands"] + [
34
34
  "./support/bundler_wrapper exec rake extension:install"
35
35
  ]
36
- },
36
+ ),
37
+ "epilogue" => matrix["epilogue"],
37
38
  "jobs" => []
38
39
  }
39
40
  }
@@ -54,14 +55,14 @@ namespace :build_matrix do
54
55
  builds = []
55
56
  matrix["ruby"].each do |ruby|
56
57
  ruby_version = ruby["ruby"]
57
- ruby_primary_block = build_task(ruby_version)
58
- ruby_secondary_block = build_task(ruby_version, "Gems").tap do |t|
58
+ ruby_primary_block = build_task(matrix, ruby_version)
59
+ ruby_secondary_block = build_task(matrix, ruby_version, "Gems").tap do |t|
59
60
  t["dependencies"] = ["Ruby #{ruby_version}"]
60
61
  end
61
62
  gemset_for_ruby(ruby, matrix).each do |gem|
62
63
  next if excluded_for_ruby?(gem, ruby)
63
64
 
64
- env = [
65
+ env = matrix["env_vars"] + [
65
66
  env_map("RUBY_VERSION", ruby_version),
66
67
  env_map("GEMSET", gem["gem"]),
67
68
  env_map("BUNDLE_GEMFILE", "gemfiles/#{gem["gem"]}.gemfile")
@@ -73,7 +74,7 @@ namespace :build_matrix do
73
74
 
74
75
  job = {
75
76
  "name" => "Ruby #{ruby_version} for #{gem["gem"]}",
76
- "env_vars" => env,
77
+ "env_vars" => env + ruby.fetch("env_vars", []),
77
78
  "commands" => [
78
79
  "./support/bundler_wrapper exec rake test",
79
80
  "./support/bundler_wrapper exec rake test:failure"
@@ -104,8 +105,8 @@ namespace :build_matrix do
104
105
  end
105
106
 
106
107
  task :validate => :generate do
107
- `git status | grep .semaphore/semaphore.yml 2>&1`
108
- if $?.exitstatus.zero? # rubocop:disable Style/SpecialGlobalVars
108
+ output = `git status`
109
+ if output.include? ".semaphore/semaphore.yml"
109
110
  puts "The `.semaphore/semaphore.yml` is modified. The changes were not committed."
110
111
  puts "Please run `rake build_matrix:semaphore:generate` and commit the changes."
111
112
  exit 1
data/build_matrix.yml CHANGED
@@ -11,49 +11,43 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
11
11
  auto_cancel:
12
12
  running:
13
13
  # Ignore main AND develop branch as we want it to build all workflows
14
- when: "branch != 'main' AND branch != 'develop'"
14
+ when: "branch != 'main' AND branch != 'develop' AND branch != 'diagnose-testing'"
15
15
 
16
16
  global_job_config:
17
17
  env_vars:
18
+ - name: RUNNING_IN_CI
19
+ value: "true"
18
20
  - name: _BUNDLER_CACHE
19
21
  value: "v2"
20
22
  - name: _GEMS_CACHE
21
23
  value: "v2"
22
- - name: BUNDLE_PATH
23
- value: "../.bundle/"
24
- - name: RUNNING_IN_CI
25
- value: "true"
26
- - name: RAILS_ENV
27
- value: "test"
28
- - name: JRUBY_OPTS
29
- value: ""
30
- - name: COV
31
- value: "1"
32
24
  prologue:
33
25
  commands:
34
26
  - checkout
35
27
  - rm -f $HOME/.rbenv/plugins/rbenv-gem-rehash/etc/rbenv.d/exec/~gem-rehash.bash
36
- - sem-version ruby $RUBY_VERSION
37
- - ./support/check_versions
38
- - cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
39
- - cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE)
40
- - ./support/install_deps
41
- - bundle config set clean 'true'
42
- - ./support/bundler_wrapper install --jobs=3 --retry=3
43
- epilogue:
44
- on_pass:
45
- commands:
46
- - cache store $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) .bundle
47
- - cache store $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE) $HOME/.gem
48
- on_fail:
49
- commands:
50
- - "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report file found'"
51
- - "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file found'"
28
+ - |
29
+ if [ -n "$_C_VERSION" ]; then
30
+ sem-version c $_C_VERSION
31
+ else
32
+ echo Skipping C-lang install
33
+ fi
34
+ - |
35
+ if [ -n "$RUBY_VERSION" ]; then
36
+ sem-version ruby $RUBY_VERSION
37
+ ./support/check_versions
38
+ else
39
+ echo Skipping Ruby install
40
+ fi
52
41
 
53
42
  blocks:
54
43
  - name: Validation
55
44
  dependencies: []
56
45
  task:
46
+ prologue:
47
+ commands:
48
+ - cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
49
+ - cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
50
+ - ./support/bundler_wrapper install --jobs=3 --retry=3
57
51
  jobs:
58
52
  - name: Validate CI setup
59
53
  env_vars:
@@ -62,12 +56,22 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
62
56
  - name: GEMSET
63
57
  value: no_dependencies
64
58
  - name: BUNDLE_GEMFILE
65
- value: gemfiles/no_dependencies.gemfile
59
+ value: Gemfile
66
60
  commands:
67
61
  - ./support/bundler_wrapper exec rake build_matrix:semaphore:validate
68
- - name: Linters
62
+ epilogue:
63
+ on_pass:
64
+ commands:
65
+ - cache store $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) .bundle
66
+ - cache store $_GEMS_CACHE-gems-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) $HOME/.gem
67
+ - name: Ruby linters
69
68
  dependencies: []
70
69
  task:
70
+ prologue:
71
+ commands:
72
+ - cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
73
+ - cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
74
+ - ./support/bundler_wrapper install --jobs=3 --retry=3
71
75
  jobs:
72
76
  - name: RuboCop
73
77
  env_vars:
@@ -76,11 +80,79 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
76
80
  - name: GEMSET
77
81
  value: no_dependencies
78
82
  - name: BUNDLE_GEMFILE
79
- value: gemfiles/no_dependencies.gemfile
83
+ value: Gemfile
80
84
  commands:
81
85
  - ./support/bundler_wrapper exec rubocop
86
+ epilogue:
87
+ on_pass:
88
+ commands:
89
+ - cache store $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) .bundle
90
+ - cache store $_GEMS_CACHE-gems-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) $HOME/.gem
91
+ - name: Other linters
92
+ dependencies: []
93
+ task:
94
+ jobs:
95
+ - name: Git Lint (Lintje)
96
+ env_vars:
97
+ - name: LINTJE_VERSION
98
+ value: 0.3.0
99
+ commands:
100
+ - script/install_lintje
101
+ - $HOME/bin/lintje $SEMAPHORE_GIT_COMMIT_RANGE
102
+ - name: Integration tests
103
+ dependencies:
104
+ - Validation
105
+ task:
106
+ prologue:
107
+ commands:
108
+ - cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-diagnose-$(checksum Gemfile)
109
+ - cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-diagnose-$(checksum Gemfile)
110
+ - ./support/bundler_wrapper install --jobs=3 --retry=3
111
+ - ./support/bundler_wrapper exec rake extension:install
112
+ - git submodule init
113
+ - git submodule update
114
+ jobs:
115
+ - name: Diagnose
116
+ env_vars:
117
+ - name: RUBY_VERSION
118
+ value: 2.6.6
119
+ - name: LANGUAGE
120
+ value: ruby
121
+ commands:
122
+ - spec/integration/diagnose/bin/test
123
+ epilogue:
124
+ on_pass:
125
+ commands:
126
+ - cache store $_BUNDLER_CACHE-bundler-$RUBY_VERSION-diagnose-$(checksum Gemfile) .bundle
127
+ - cache store $_GEMS_CACHE-gems-$RUBY_VERSION-diagnose-$(checksum Gemfile) $HOME/.gem
82
128
 
83
129
  matrix:
130
+ env_vars: # Shared for all jobs in the build matrix
131
+ - name: BUNDLE_PATH
132
+ value: "../.bundle/"
133
+ - name: RAILS_ENV
134
+ value: "test"
135
+ - name: JRUBY_OPTS
136
+ value: ""
137
+ - name: COV
138
+ value: "1"
139
+ prologue: # Shared for all jobs in the build matrix
140
+ commands:
141
+ - cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)
142
+ - cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE)
143
+ - ./support/install_deps
144
+ - bundle config set clean 'true'
145
+ - ./support/bundler_wrapper install --jobs=3 --retry=3
146
+ epilogue: # Shared for all jobs in the build matrix
147
+ on_pass:
148
+ commands:
149
+ - cache store $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE) .bundle
150
+ - cache store $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE) $HOME/.gem
151
+ on_fail:
152
+ commands:
153
+ - "[ -e ext/install.report ] && cat ext/install.report || echo 'No ext/install.report file found'"
154
+ - "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file found'"
155
+
84
156
  defaults:
85
157
  rubygems: "latest"
86
158
  bundler: "latest"
@@ -119,8 +191,11 @@ matrix:
119
191
  - ruby: "2.6.6"
120
192
  - ruby: "2.7.3"
121
193
  - ruby: "3.0.1"
122
- - ruby: "jruby-9.1.17.0"
194
+ - ruby: "jruby-9.2.19.0"
123
195
  gems: "minimal"
196
+ env_vars:
197
+ - name: "_C_VERSION"
198
+ value: "8"
124
199
  gems:
125
200
  - gem: "no_dependencies"
126
201
  - gem: "capistrano2"
@@ -162,7 +237,6 @@ matrix:
162
237
  - "2.2.10"
163
238
  - "2.3.8"
164
239
  - "2.4.10"
165
- - "jruby-9.1.17.0"
166
240
  - gem: "resque-1"
167
241
  bundler: "1.17.3"
168
242
  exclude:
data/ext/agent.yml CHANGED
@@ -1,69 +1,69 @@
1
1
  ---
2
- version: 9f282f3
2
+ version: c2024bf
3
3
  mirrors:
4
4
  - https://appsignal-agent-releases.global.ssl.fastly.net
5
5
  - https://d135dj0rjqvssy.cloudfront.net
6
6
  triples:
7
7
  x86_64-darwin:
8
8
  static:
9
- checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
9
+ checksum: 4d705a05a9ebfcb5d592728f7ff002f939a89a63dca26c7db0c812a95f4c9902
10
10
  filename: appsignal-x86_64-darwin-all-static.tar.gz
11
11
  dynamic:
12
- checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
12
+ checksum: 86686cd0da13d40a0b9b2b1df8531ab5443f49580b0cc6d68eb11dd43031137c
13
13
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
14
14
  universal-darwin:
15
15
  static:
16
- checksum: c279d061ac04b53c8e2ea21b7714d4d54964495124ddc7e794ba998366f9c195
16
+ checksum: 4d705a05a9ebfcb5d592728f7ff002f939a89a63dca26c7db0c812a95f4c9902
17
17
  filename: appsignal-x86_64-darwin-all-static.tar.gz
18
18
  dynamic:
19
- checksum: 52284dd2e073e5252363f18f8668cf17d82befe65bfa4376f8d4f61f6e08ece9
19
+ checksum: 86686cd0da13d40a0b9b2b1df8531ab5443f49580b0cc6d68eb11dd43031137c
20
20
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
21
21
  aarch64-linux:
22
22
  static:
23
- checksum: 3054b6e3bcab8c8959d4e87eb6fd9fc7a5821e0986c8e733154c2b76251c9e70
23
+ checksum: 41e48b23ad55b55e49ec5940458c6a76f1e646311c0cfe56c8b4533bc60d7d97
24
24
  filename: appsignal-aarch64-linux-all-static.tar.gz
25
25
  dynamic:
26
- checksum: 50f96493c1d81dbb0910581598e0d97a8567a3bc6b27a17dbb14d01c97bf7b7c
26
+ checksum: ea5ee757b2638c07f8132c2faa8339c2b79a88b8f690c1aa2bb1e0568a431d5a
27
27
  filename: appsignal-aarch64-linux-all-dynamic.tar.gz
28
28
  i686-linux:
29
29
  static:
30
- checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
30
+ checksum: 7b7f20576e77f8bd4e55e51804d5c60bf22bf1464ecf883b3fc43e8de5984f9b
31
31
  filename: appsignal-i686-linux-all-static.tar.gz
32
32
  dynamic:
33
- checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
33
+ checksum: c99d95f7a957d4cfdaa5f64d4e20339f3d3bf5ec0795de693ff9acdcf9dc32ff
34
34
  filename: appsignal-i686-linux-all-dynamic.tar.gz
35
35
  x86-linux:
36
36
  static:
37
- checksum: 30554989a59632cdaf8fdf5d15024b866d32930e91c080425955842e8078952b
37
+ checksum: 7b7f20576e77f8bd4e55e51804d5c60bf22bf1464ecf883b3fc43e8de5984f9b
38
38
  filename: appsignal-i686-linux-all-static.tar.gz
39
39
  dynamic:
40
- checksum: 437e24a97738995375c18559220fc30b6b9599cfc9339d5a410225e7fdfeb875
40
+ checksum: c99d95f7a957d4cfdaa5f64d4e20339f3d3bf5ec0795de693ff9acdcf9dc32ff
41
41
  filename: appsignal-i686-linux-all-dynamic.tar.gz
42
42
  x86_64-linux:
43
43
  static:
44
- checksum: f11fa7ec493c3668e965ef4cff077d44fe55101197a5eeaf50ccacf7314eba2b
44
+ checksum: c738a4daa41c9f068986e495625f732c5494b1458d1ef8a5d58da34fe3911c7d
45
45
  filename: appsignal-x86_64-linux-all-static.tar.gz
46
46
  dynamic:
47
- checksum: bc7991b388eb541eddc26d8272738b4d9befa594f4b73a222b425e0ee7b6157d
47
+ checksum: 34c416ab54f9ca61e2c576e6f5cfd4aef01b408a7b0c3db2e36aab6219abc02d
48
48
  filename: appsignal-x86_64-linux-all-dynamic.tar.gz
49
49
  x86_64-linux-musl:
50
50
  static:
51
- checksum: 0dae02e77e244275b69bb8332e79bdcb0e0fa3b6b6f84744780ce0baffa9784f
51
+ checksum: e6834abfcf1a3a99301f3184705c1d79602d76c63712e089abd53f44c1734962
52
52
  filename: appsignal-x86_64-linux-musl-all-static.tar.gz
53
53
  dynamic:
54
- checksum: a56f3e3cb6e30e638f91f14ba69ae1b5086bb566dedb6f0c630be24834a8fd4f
54
+ checksum: 2b1002ef3d0be8b473db9fda91ad5f0ccd0742445d353e623757c2fae41d4bb0
55
55
  filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
56
56
  x86_64-freebsd:
57
57
  static:
58
- checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
58
+ checksum: decd1f7c7c8b8854bd9b32a993f5c2cea6076244f648bcfeccc063a608f7b5ea
59
59
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
60
60
  dynamic:
61
- checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
61
+ checksum: d81ae343e224cdf828887a60f8f10be2b1039f2fc2045e8335c57194a1796d35
62
62
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
63
63
  amd64-freebsd:
64
64
  static:
65
- checksum: d9146a04bbbb85dccf22c84cacfa924ee8b7e2ff8ed79402aba14ac4333e440f
65
+ checksum: decd1f7c7c8b8854bd9b32a993f5c2cea6076244f648bcfeccc063a608f7b5ea
66
66
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
67
67
  dynamic:
68
- checksum: e231e106695160525e3f920e781c37f9d5875a3eacc18c38a0264c4b7f9c69bf
68
+ checksum: d81ae343e224cdf828887a60f8f10be2b1039f2fc2045e8335c57194a1796d35
69
69
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
@@ -105,7 +105,6 @@ module Appsignal
105
105
  paths_report = Paths.new
106
106
  data[:paths] = paths_report.report
107
107
  print_paths_section(paths_report)
108
- print_empty_line
109
108
 
110
109
  transmit_report_to_appsignal if send_report_to_appsignal?(options)
111
110
  end
@@ -327,6 +326,7 @@ module Appsignal
327
326
  puts "AppSignal library"
328
327
  data_section :library do
329
328
  save :language, "ruby"
329
+ puts_value "Language", "Ruby"
330
330
  puts_and_save :package_version, "Gem version", Appsignal::VERSION
331
331
  puts_and_save :agent_version, "Agent version", Appsignal::Extension.agent_version
332
332
  puts_and_save :extension_loaded, "Extension loaded", Appsignal.extension_loaded
@@ -574,9 +574,13 @@ module Appsignal
574
574
  "(file: #{ownership[:user]}:#{ownership[:uid]}, " \
575
575
  "process: #{process_user[:user]}:#{process_user[:uid]})"
576
576
  puts_value "Ownership?", owner, :level => 2
577
- return unless path.key?(:content)
578
- puts " Contents (last 10 lines):"
579
- puts path[:content].last(10)
577
+
578
+ if path.key?(:content)
579
+ puts " Contents (last 10 lines):"
580
+ puts path[:content].last(10)
581
+ else
582
+ print_empty_line
583
+ end
580
584
  end
581
585
 
582
586
  def print_empty_line
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "3.0.9".freeze
4
+ VERSION = "3.0.10".freeze
5
5
  end
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+
3
+ set -eu
4
+
5
+ mkdir -p $HOME/bin
6
+ cache_key=v1-lintje-$LINTJE_VERSION
7
+ cache restore $cache_key
8
+
9
+ # File exists and is executable
10
+ if [ -x "$HOME/bin/lintje" ]; then
11
+ echo "Restored Lintje $LINTJE_VERSION from cache"
12
+ else
13
+ echo "Downloading Lintje $LINTJE_VERSION"
14
+ curl -L \
15
+ https://github.com/tombruijn/lintje/releases/download/v$LINTJE_VERSION/x86_64-unknown-linux-gnu.tar.gz | \
16
+ tar -xz --directory $HOME/bin
17
+ cache store $cache_key $HOME/bin/lintje
18
+ fi