Update stuff
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { execa } from 'execa';
|
||||
import path from 'node:path';
|
||||
|
||||
import { env } from '../env';
|
||||
|
||||
@@ -17,13 +18,25 @@ const networkArgs = () => (env.network ? ['--network', env.network] : []);
|
||||
|
||||
const containerRuntime = () => env.containerRuntime;
|
||||
|
||||
const hostWorkspacePath = (workdir: string) => {
|
||||
if (!env.hostWorkdir) return workdir;
|
||||
const workerRoot = path.resolve(env.workdir);
|
||||
const resolvedWorkdir = path.resolve(workdir);
|
||||
const relative = path.relative(workerRoot, resolvedWorkdir);
|
||||
if (relative.startsWith('..') || path.isAbsolute(relative)) {
|
||||
return workdir;
|
||||
}
|
||||
return path.join(env.hostWorkdir, relative);
|
||||
};
|
||||
|
||||
export const jobWorkspaceVolumeSpec = (workdir: string) => {
|
||||
const volumeOptions =
|
||||
env.containerVolumeOptions ??
|
||||
(containerRuntime().endsWith('podman') ? 'Z' : undefined);
|
||||
const source = hostWorkspacePath(workdir);
|
||||
return volumeOptions
|
||||
? `${workdir}:/workspace:${volumeOptions}`
|
||||
: `${workdir}:/workspace`;
|
||||
? `${source}:/workspace:${volumeOptions}`
|
||||
: `${source}:/workspace`;
|
||||
};
|
||||
|
||||
export const runInJobContainer = async (args: {
|
||||
|
||||
Reference in New Issue
Block a user