Fix file ownership issues for self-hosted runners. (#141)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import os from 'os';
|
||||
import AndroidVersioning from './android-versioning';
|
||||
import Input from './input';
|
||||
import Platform from './platform';
|
||||
@@ -20,8 +21,12 @@ class BuildParameters {
|
||||
Input.androidVersionCode,
|
||||
);
|
||||
|
||||
const { uid, gid } = os.userInfo();
|
||||
|
||||
return {
|
||||
version: Input.unityVersion,
|
||||
uid,
|
||||
gid,
|
||||
runnerTempPath: process.env.RUNNER_TEMP,
|
||||
platform: Input.targetPlatform,
|
||||
projectPath: Input.projectPath,
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
import fs from 'fs';
|
||||
import { exec } from '@actions/exec';
|
||||
import ImageTag from './image-tag';
|
||||
|
||||
class Docker {
|
||||
static async build(buildParameters, silent = false) {
|
||||
const { path, dockerfile, baseImage } = buildParameters;
|
||||
const { path, dockerfile, baseImage, uid, gid } = buildParameters;
|
||||
const { version, platform } = baseImage;
|
||||
|
||||
const tag = new ImageTag({ repository: '', name: 'unity-builder', version, platform });
|
||||
const command = `docker build ${path} \
|
||||
--file ${dockerfile} \
|
||||
--build-arg IMAGE=${baseImage} \
|
||||
--build-arg UID=${uid} \
|
||||
--build-arg GID=${gid} \
|
||||
--tag ${tag}`;
|
||||
|
||||
await exec(command, undefined, { silent });
|
||||
@@ -83,6 +86,9 @@ class Docker {
|
||||
--volume "${workspace}":"/github/workspace" \
|
||||
${image}`;
|
||||
|
||||
fs.mkdirSync(`${runnerTempPath}/_github_home`, { recursive: true });
|
||||
fs.mkdirSync(`${runnerTempPath}/_github_workflow`, { recursive: true });
|
||||
|
||||
await exec(command, undefined, { silent });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user