summaryrefslogtreecommitdiff
path: root/spec/support/docker.rb
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-09-14 16:40:00 -0600
committermo khan <mo.khan@gmail.com>2020-09-14 16:40:00 -0600
commit0dc0c0cec97cbdea04e278143e4711cfa0d3bd03 (patch)
treea650f1421d0e57b13024df1fb4efe5aa76b96dfb /spec/support/docker.rb
parentcea7d78e2d7f1a8f98880819b8589925b5daef1a (diff)
test: add spec to run gemnasium-maven scanner
Diffstat (limited to 'spec/support/docker.rb')
-rw-r--r--spec/support/docker.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/support/docker.rb b/spec/support/docker.rb
new file mode 100644
index 0000000..331ee17
--- /dev/null
+++ b/spec/support/docker.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class Docker
+ DEFAULT_ENV = { 'CI_PROJECT_DIR' => '/tmp/app' }.freeze
+ attr_reader :pwd
+
+ def initialize(pwd: Pathname.pwd)
+ @pwd = pwd
+ end
+
+ def build(tag:)
+ Dir.chdir pwd do
+ system("docker build --network=host -t #{tag} .")
+ end
+ end
+
+ def run(image:, project_path: Pathname.pwd, env: {})
+ env_options = DEFAULT_ENV.merge(env).map { |(key, value)| "--env #{key}=#{value}" }
+ Dir.chdir pwd do
+ system([
+ :docker, :run, '-it', '--rm',
+ '--volume', "#{project_path}:/tmp/app",
+ '--network=host',
+ env_options,
+ image, '/analyzer run'
+ ].flatten.map(&:to_s).join(' '))
+ end
+ end
+end