use Gruntmaster::Daemon::Constants qw/ERR/;
use Gruntmaster::Daemon::Format qw/prepare_files stopvms/;
+use Gruntmaster::SendResults qw/send_results_request/;
use File::Slurp qw/read_file/;
use File::Temp qw/tempdir/;
PERL => 'pl',
PHP => 'php',
PYTHON => 'py',
+ PYTHON3 => 'py',
RUBY => 'rb',
RUST => 'rs',
SBCL => 'l',
$meta->{errors} = $errors;
get_logger->info('Job result: ' . $meta->{result_text});
+ send_results_request($meta->{job_id}, $meta->{result}, $meta->{result_text});
}
sub process_job {
my $timeout_override = db()->query('SELECT timeout FROM limits WHERE problem=? AND format=?', $job->{problem}, $job->{format})->list;
$meta->{timeout} = $timeout_override if defined $timeout_override;
$meta->{tests} = decode_json $pb->{tests} if $meta->{runner} eq 'File';
- $job->{contest} &&= contest_entry($job->{contest});
- delete $meta->{precnt} unless $job->{contest} && $job->{contest}{started} && !$job->{contest}{finished}; ## no critic (ProhibitNegativeExpressionsInUnlessAndUntilConditions)
+ my $contest = $job->{contest} && contest_entry($job->{contest});
+ delete $meta->{precnt} unless $contest && $contest->{started} && !$contest->{finished}; ## no critic (ProhibitNegativeExpressionsInUnlessAndUntilConditions)
$meta->{testcnt} = $meta->{precnt} if $meta->{precnt};
$meta->{files}{ver} = {
format => $pb->{verformat},
content => $pb->{versource},
} if $pb->{verformat};
+ $meta->{job_id} = $job->{id};
process $meta;