diff --git a/Gemfile b/Gemfile index df9e0ed..2983e2a 100644 --- a/Gemfile +++ b/Gemfile @@ -10,6 +10,7 @@ gem "aws-sdk-ecr" gem "ffi-rzmq" gem "zeitwerk" gem "docopt" +gem 'rb-inotify', '~> 0.9.7' group :development, :test do # gem "bundler" diff --git a/lib/pipeline.rb b/lib/pipeline.rb index 3e1458b..6cca744 100644 --- a/lib/pipeline.rb +++ b/lib/pipeline.rb @@ -9,6 +9,7 @@ require 'aws-sdk-sts' require 'yaml' require 'json' require 'ffi-rzmq' +require 'rb-inotifyq' require "zeitwerk" loader = Zeitwerk::Loader.for_gem diff --git a/lib/pipeline/util/container_driver.rb b/lib/pipeline/util/container_driver.rb index af7cad8..ca726e3 100644 --- a/lib/pipeline/util/container_driver.rb +++ b/lib/pipeline/util/container_driver.rb @@ -35,7 +35,19 @@ module Pipeline::Util end def run_analyzer + notifier = INotify::Notifier.new + notifier.watch("iteration", :moved_to, :create) do |event| + puts "#{event.name} is now in iteration!" + end + notifier.watch("tmp", :moved_to, :create) do |event| + puts "#{event.name} is now in tmp!" + end + Thread.new do + notifier.run + end runc.run(workdir) + puts "ALL DONE" + notifier.stop end def run_analyzer_for(exercise_slug) diff --git a/lib/pipeline/util/runc_configurator.rb b/lib/pipeline/util/runc_configurator.rb index c36e72d..3f904e8 100644 --- a/lib/pipeline/util/runc_configurator.rb +++ b/lib/pipeline/util/runc_configurator.rb @@ -55,6 +55,16 @@ module Pipeline::Util "type": "RLIMIT_NOFILE", "hard": 1024, "soft": 1024 + }, + { + "type": "RLIMIT_CPU", + "hard": 70, + "soft": 60 + }, + { + "type": "RLIMIT_RTTIME", + "hard": 70, + "soft": 60 } ], "noNewPrivileges": true