Merge pull request #457 from Brikaa/dont-run-if-compile-error
Piston-Nix: Don't start run stage if compile stage errored
This commit is contained in:
commit
46ab4a4ba4
|
@ -264,7 +264,11 @@ router.post('/execute', async (req, res) => {
|
||||||
|
|
||||||
await job.prime();
|
await job.prime();
|
||||||
|
|
||||||
const result = await job.execute();
|
let result = await job.execute();
|
||||||
|
// Backward compatibility when the run stage is not started
|
||||||
|
if (result.run === undefined) {
|
||||||
|
result.run = result.compile;
|
||||||
|
}
|
||||||
|
|
||||||
await job.cleanup();
|
await job.cleanup();
|
||||||
|
|
||||||
|
|
|
@ -234,6 +234,7 @@ class Job {
|
||||||
this.logger.debug('Compiling');
|
this.logger.debug('Compiling');
|
||||||
|
|
||||||
let compile;
|
let compile;
|
||||||
|
let compile_errored = false;
|
||||||
|
|
||||||
if (this.runtime.compiled) {
|
if (this.runtime.compiled) {
|
||||||
compile = await this.safe_call(
|
compile = await this.safe_call(
|
||||||
|
@ -242,16 +243,20 @@ class Job {
|
||||||
this.timeouts.compile,
|
this.timeouts.compile,
|
||||||
this.memory_limits.compile
|
this.memory_limits.compile
|
||||||
);
|
);
|
||||||
|
compile_errored = compile.code !== 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.debug('Running');
|
let run;
|
||||||
|
if (!compile_errored) {
|
||||||
|
this.logger.debug('Running');
|
||||||
|
|
||||||
const run = await this.safe_call(
|
run = await this.safe_call(
|
||||||
this.runtime.run,
|
this.runtime.run,
|
||||||
[code_files[0].name, ...this.args],
|
[code_files[0].name, ...this.args],
|
||||||
this.timeouts.run,
|
this.timeouts.run,
|
||||||
this.memory_limits.run
|
this.memory_limits.run
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
this.state = job_states.EXECUTED;
|
this.state = job_states.EXECUTED;
|
||||||
|
|
||||||
|
@ -277,6 +282,7 @@ class Job {
|
||||||
|
|
||||||
const code_files = this.files.filter(file => file.encoding == 'utf8');
|
const code_files = this.files.filter(file => file.encoding == 'utf8');
|
||||||
|
|
||||||
|
let compile_errored = false;
|
||||||
if (this.runtime.compiled) {
|
if (this.runtime.compiled) {
|
||||||
eventBus.emit('stage', 'compile');
|
eventBus.emit('stage', 'compile');
|
||||||
const { error, code, signal } = await this.safe_call(
|
const { error, code, signal } = await this.safe_call(
|
||||||
|
@ -288,19 +294,22 @@ class Job {
|
||||||
);
|
);
|
||||||
|
|
||||||
eventBus.emit('exit', 'compile', { error, code, signal });
|
eventBus.emit('exit', 'compile', { error, code, signal });
|
||||||
|
compile_errored = code !== 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.debug('Running');
|
if (!compile_errored) {
|
||||||
eventBus.emit('stage', 'run');
|
this.logger.debug('Running');
|
||||||
const { error, code, signal } = await this.safe_call(
|
eventBus.emit('stage', 'run');
|
||||||
this.runtime.run,
|
const { error, code, signal } = await this.safe_call(
|
||||||
[code_files[0].name, ...this.args],
|
this.runtime.run,
|
||||||
this.timeouts.run,
|
[code_files[0].name, ...this.args],
|
||||||
this.memory_limits.run,
|
this.timeouts.run,
|
||||||
eventBus
|
this.memory_limits.run,
|
||||||
);
|
eventBus
|
||||||
|
);
|
||||||
|
|
||||||
eventBus.emit('exit', 'run', { error, code, signal });
|
eventBus.emit('exit', 'run', { error, code, signal });
|
||||||
|
}
|
||||||
|
|
||||||
this.state = job_states.EXECUTED;
|
this.state = job_states.EXECUTED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue