Run docker from javascript
This commit is contained in:
57
src/model/docker.js
Normal file
57
src/model/docker.js
Normal file
@@ -0,0 +1,57 @@
|
||||
import { exec } from '@actions/exec';
|
||||
|
||||
export default class Docker {
|
||||
static async build(buildParameters) {
|
||||
const { path = './', dockerfile, image } = buildParameters;
|
||||
const tag = `unity-builder:${image.tag}`;
|
||||
|
||||
await exec('pwd');
|
||||
await exec('ls -alh');
|
||||
await exec(`ls -alh ${path}`);
|
||||
await exec(`
|
||||
docker build ${path}
|
||||
--file ${dockerfile}
|
||||
--build-arg IMAGE=${image}
|
||||
--tag ${tag}
|
||||
`);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
static async run(image, parameters) {
|
||||
const { GITHUB_WORKSPACE } = process.env;
|
||||
const { projectPath, buildName, buildsPath, buildMethod } = parameters;
|
||||
|
||||
await exec(`
|
||||
docker run \
|
||||
--workdir /github/workspace \
|
||||
--rm \
|
||||
--env PROJECT_PATH=${projectPath} \
|
||||
--env BUILD_TARGET=${image.targetPlatform} \
|
||||
--env BUILD_NAME=${buildName} \
|
||||
--env BUILDS_PATH=${buildsPath} \
|
||||
--env BUILD_METHOD=${buildMethod} \
|
||||
--env HOME=/github/home \
|
||||
--env GITHUB_REF \
|
||||
--env GITHUB_SHA \
|
||||
--env GITHUB_REPOSITORY \
|
||||
--env GITHUB_ACTOR \
|
||||
--env GITHUB_WORKFLOW \
|
||||
--env GITHUB_HEAD_REF \
|
||||
--env GITHUB_BASE_REF \
|
||||
--env GITHUB_EVENT_NAME \
|
||||
--env GITHUB_WORKSPACE=/github/workspace \
|
||||
--env GITHUB_ACTION \
|
||||
--env GITHUB_EVENT_PATH \
|
||||
--env RUNNER_OS \
|
||||
--env RUNNER_TOOL_CACHE \
|
||||
--env RUNNER_TEMP \
|
||||
--env RUNNER_WORKSPACE \
|
||||
--volume "/var/run/docker.sock":"/var/run/docker.sock" \
|
||||
--volume "/home/runner/work/_temp/_github_home":"/github/home" \
|
||||
--volume "/home/runner/work/_temp/_github_workflow":"/github/workflow" \
|
||||
--volume "${GITHUB_WORKSPACE}":"/github/workspace" \
|
||||
${image}
|
||||
`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user