fix push to cache
parent
83c37888d1
commit
cf01ec9e9e
|
|
@ -3873,12 +3873,12 @@ class RemoteClient {
|
|||
if (fs_1.default.existsSync(cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute)) {
|
||||
remote_client_logger_1.RemoteClientLogger.logWarning(`!Warning!: The Unity library was included in the git repository`);
|
||||
}
|
||||
yield caching_1.Caching.PullFromCache(cloud_runner_folders_1.CloudRunnerFolders.lfsCacheFolderFull, cloud_runner_folders_1.CloudRunnerFolders.lfsFolderAbsolute, `${lfsHashes.lfsGuidSum}`);
|
||||
yield caching_1.Caching.PullFromCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.lfsCacheFolderFull), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.lfsFolderAbsolute), `${lfsHashes.lfsGuidSum}`);
|
||||
yield RemoteClient.sizeOfFolder('repo after lfs cache pull', cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute);
|
||||
yield RemoteClient.pullLatestLFS();
|
||||
yield RemoteClient.sizeOfFolder('repo before lfs git pull', cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute);
|
||||
yield caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.lfsCacheFolderFull, cloud_runner_folders_1.CloudRunnerFolders.lfsFolderAbsolute, `${lfsHashes.lfsGuidSum}`);
|
||||
yield caching_1.Caching.PullFromCache(cloud_runner_folders_1.CloudRunnerFolders.libraryCacheFolderFull, cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute);
|
||||
yield caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.lfsCacheFolderFull), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.lfsFolderAbsolute), `${lfsHashes.lfsGuidSum}`);
|
||||
yield caching_1.Caching.PullFromCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.libraryCacheFolderFull), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute));
|
||||
yield RemoteClient.sizeOfFolder('repo after library cache pull', cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute);
|
||||
yield caching_1.Caching.handleCachePurging();
|
||||
}
|
||||
|
|
@ -4049,6 +4049,9 @@ exports.CloudRunnerFolders = void 0;
|
|||
const path_1 = __importDefault(__nccwpck_require__(71017));
|
||||
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
||||
class CloudRunnerFolders {
|
||||
static ToLinuxFolder(folder) {
|
||||
return folder.replace(/\\/g, `/`);
|
||||
}
|
||||
// Only the following paths that do not start a path.join with another "Full" suffixed property need to start with an absolute /
|
||||
static get uniqueCloudRunnerJobFolderAbsolute() {
|
||||
return path_1.default.join(`/`, CloudRunnerFolders.buildVolumeFolder, cloud_runner_1.default.buildParameters.buildGuid);
|
||||
|
|
@ -4712,19 +4715,16 @@ class BuildAutomationWorkflow {
|
|||
}
|
||||
});
|
||||
}
|
||||
static ToLinuxFolder(folder) {
|
||||
return folder.replace(/\\/g, `/`);
|
||||
}
|
||||
static get BuildWorkflow() {
|
||||
const setupHooks = cloud_runner_custom_hooks_1.CloudRunnerCustomHooks.getHooks(cloud_runner_1.default.buildParameters.customJobHooks).filter((x) => x.step.includes(`setup`));
|
||||
const buildHooks = cloud_runner_custom_hooks_1.CloudRunnerCustomHooks.getHooks(cloud_runner_1.default.buildParameters.customJobHooks).filter((x) => x.step.includes(`build`));
|
||||
const builderPath = BuildAutomationWorkflow.ToLinuxFolder(path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`));
|
||||
const builderPath = cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`));
|
||||
return `apt-get update > /dev/null
|
||||
apt-get install -y tar tree npm git-lfs jq git > /dev/null
|
||||
npm install -g n > /dev/null
|
||||
n stable > /dev/null
|
||||
${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
|
||||
export GITHUB_WORKSPACE="${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute)}"
|
||||
export GITHUB_WORKSPACE="${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute)}"
|
||||
${BuildAutomationWorkflow.setupCommands(builderPath)}
|
||||
${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}
|
||||
${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
|
||||
|
|
@ -4734,23 +4734,23 @@ class BuildAutomationWorkflow {
|
|||
static setupCommands(builderPath) {
|
||||
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
echo "game ci cloud runner clone"
|
||||
mkdir -p ${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}
|
||||
git clone -q -b ${cloud_runner_1.default.buildParameters.cloudRunnerBranch} ${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.unityBuilderRepoUrl)} "${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}"
|
||||
mkdir -p ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}
|
||||
git clone -q -b ${cloud_runner_1.default.buildParameters.cloudRunnerBranch} ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.unityBuilderRepoUrl)} "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}"
|
||||
chmod +x ${builderPath}
|
||||
echo "game ci cloud runner bootstrap"
|
||||
node ${builderPath} -m remote-cli`;
|
||||
}
|
||||
// ToDo: Replace with a very simple "node ${builderPath} -m build-cli" to run the scripts below without enlarging the request size
|
||||
static BuildCommands(builderPath, guid) {
|
||||
const linuxCacheFolder = BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.cacheFolderFull);
|
||||
const linuxCacheFolder = cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.cacheFolderFull);
|
||||
const distFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist');
|
||||
const ubuntuPlatformsFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu');
|
||||
return `echo "game ci cloud runner init"
|
||||
mkdir -p ${`${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
|
||||
mkdir -p ${`${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
|
||||
cd ${cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute}
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(path_1.default.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction"
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(path_1.default.join(ubuntuPlatformsFolder, 'entrypoint.sh'))}" "/entrypoint.sh"
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(path_1.default.join(ubuntuPlatformsFolder, 'steps'))}" "/steps"
|
||||
cp -r "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction"
|
||||
cp -r "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(ubuntuPlatformsFolder, 'entrypoint.sh'))}" "/entrypoint.sh"
|
||||
cp -r "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(ubuntuPlatformsFolder, 'steps'))}" "/steps"
|
||||
chmod -R +x "/entrypoint.sh"
|
||||
chmod -R +x "/steps"
|
||||
echo "game ci cloud runner start"
|
||||
|
|
@ -4759,11 +4759,11 @@ class BuildAutomationWorkflow {
|
|||
chmod +x ${builderPath}
|
||||
node ${builderPath} -m cache-push --cachePushFrom ${cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute} --artifactName lib-${guid} --cachePushTo ${linuxCacheFolder}/Library
|
||||
echo "game ci cloud runner push build to cache"
|
||||
node ${builderPath} -m cache-push --cachePushFrom ${BuildAutomationWorkflow.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)} --artifactName build-${guid} --cachePushTo ${`${BuildAutomationWorkflow.ToLinuxFolder(`${linuxCacheFolder}/build`)}`}
|
||||
node ${builderPath} -m cache-push --cachePushFrom ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)} --artifactName build-${guid} --cachePushTo ${`${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${linuxCacheFolder}/build`)}`}
|
||||
${BuildAutomationWorkflow.GetCleanupCommand(cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute)}`;
|
||||
}
|
||||
static GetCleanupCommand(cleanupPath) {
|
||||
return cloud_runner_options_1.default.retainWorkspaces ? `` : `rm -r ${BuildAutomationWorkflow.ToLinuxFolder(cleanupPath)}`;
|
||||
return cloud_runner_options_1.default.retainWorkspaces ? `` : `rm -r ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cleanupPath)}`;
|
||||
}
|
||||
}
|
||||
exports.BuildAutomationWorkflow = BuildAutomationWorkflow;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -24,19 +24,22 @@ export class RemoteClient {
|
|||
RemoteClientLogger.logWarning(`!Warning!: The Unity library was included in the git repository`);
|
||||
}
|
||||
await Caching.PullFromCache(
|
||||
CloudRunnerFolders.lfsCacheFolderFull,
|
||||
CloudRunnerFolders.lfsFolderAbsolute,
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.lfsCacheFolderFull),
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.lfsFolderAbsolute),
|
||||
`${lfsHashes.lfsGuidSum}`,
|
||||
);
|
||||
await RemoteClient.sizeOfFolder('repo after lfs cache pull', CloudRunnerFolders.repoPathAbsolute);
|
||||
await RemoteClient.pullLatestLFS();
|
||||
await RemoteClient.sizeOfFolder('repo before lfs git pull', CloudRunnerFolders.repoPathAbsolute);
|
||||
await Caching.PushToCache(
|
||||
CloudRunnerFolders.lfsCacheFolderFull,
|
||||
CloudRunnerFolders.lfsFolderAbsolute,
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.lfsCacheFolderFull),
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.lfsFolderAbsolute),
|
||||
`${lfsHashes.lfsGuidSum}`,
|
||||
);
|
||||
await Caching.PullFromCache(CloudRunnerFolders.libraryCacheFolderFull, CloudRunnerFolders.libraryFolderAbsolute);
|
||||
await Caching.PullFromCache(
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.libraryCacheFolderFull),
|
||||
CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.libraryFolderAbsolute),
|
||||
);
|
||||
await RemoteClient.sizeOfFolder('repo after library cache pull', CloudRunnerFolders.repoPathAbsolute);
|
||||
await Caching.handleCachePurging();
|
||||
} catch (error) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ import CloudRunner from './../cloud-runner';
|
|||
export class CloudRunnerFolders {
|
||||
public static readonly repositoryFolder = 'repo';
|
||||
|
||||
public static ToLinuxFolder(folder: string) {
|
||||
return folder.replace(/\\/g, `/`);
|
||||
}
|
||||
|
||||
// Only the following paths that do not start a path.join with another "Full" suffixed property need to start with an absolute /
|
||||
|
||||
public static get uniqueCloudRunnerJobFolderAbsolute(): string {
|
||||
|
|
|
|||
|
|
@ -63,10 +63,6 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
}
|
||||
}
|
||||
|
||||
private static ToLinuxFolder(folder: string) {
|
||||
return folder.replace(/\\/g, `/`);
|
||||
}
|
||||
|
||||
private static get BuildWorkflow() {
|
||||
const setupHooks = CloudRunnerCustomHooks.getHooks(CloudRunner.buildParameters.customJobHooks).filter((x) =>
|
||||
x.step.includes(`setup`),
|
||||
|
|
@ -74,7 +70,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
const buildHooks = CloudRunnerCustomHooks.getHooks(CloudRunner.buildParameters.customJobHooks).filter((x) =>
|
||||
x.step.includes(`build`),
|
||||
);
|
||||
const builderPath = BuildAutomationWorkflow.ToLinuxFolder(
|
||||
const builderPath = CloudRunnerFolders.ToLinuxFolder(
|
||||
path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`),
|
||||
);
|
||||
|
||||
|
|
@ -83,7 +79,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
npm install -g n > /dev/null
|
||||
n stable > /dev/null
|
||||
${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
|
||||
export GITHUB_WORKSPACE="${BuildAutomationWorkflow.ToLinuxFolder(CloudRunnerFolders.repoPathAbsolute)}"
|
||||
export GITHUB_WORKSPACE="${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.repoPathAbsolute)}"
|
||||
${BuildAutomationWorkflow.setupCommands(builderPath)}
|
||||
${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}
|
||||
${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
|
||||
|
|
@ -94,10 +90,10 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
private static setupCommands(builderPath) {
|
||||
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
echo "game ci cloud runner clone"
|
||||
mkdir -p ${BuildAutomationWorkflow.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}
|
||||
git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} ${BuildAutomationWorkflow.ToLinuxFolder(
|
||||
mkdir -p ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}
|
||||
git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} ${CloudRunnerFolders.ToLinuxFolder(
|
||||
CloudRunnerFolders.unityBuilderRepoUrl,
|
||||
)} "${BuildAutomationWorkflow.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}"
|
||||
)} "${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}"
|
||||
chmod +x ${builderPath}
|
||||
echo "game ci cloud runner bootstrap"
|
||||
node ${builderPath} -m remote-cli`;
|
||||
|
|
@ -105,18 +101,16 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
|
||||
// ToDo: Replace with a very simple "node ${builderPath} -m build-cli" to run the scripts below without enlarging the request size
|
||||
private static BuildCommands(builderPath, guid) {
|
||||
const linuxCacheFolder = BuildAutomationWorkflow.ToLinuxFolder(CloudRunnerFolders.cacheFolderFull);
|
||||
const linuxCacheFolder = CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.cacheFolderFull);
|
||||
const distFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist');
|
||||
const ubuntuPlatformsFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu');
|
||||
|
||||
return `echo "game ci cloud runner init"
|
||||
mkdir -p ${`${BuildAutomationWorkflow.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
|
||||
mkdir -p ${`${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
|
||||
cd ${CloudRunnerFolders.projectPathAbsolute}
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(
|
||||
path.join(distFolder, 'default-build-script'),
|
||||
)}" "/UnityBuilderAction"
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(path.join(ubuntuPlatformsFolder, 'entrypoint.sh'))}" "/entrypoint.sh"
|
||||
cp -r "${BuildAutomationWorkflow.ToLinuxFolder(path.join(ubuntuPlatformsFolder, 'steps'))}" "/steps"
|
||||
cp -r "${CloudRunnerFolders.ToLinuxFolder(path.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction"
|
||||
cp -r "${CloudRunnerFolders.ToLinuxFolder(path.join(ubuntuPlatformsFolder, 'entrypoint.sh'))}" "/entrypoint.sh"
|
||||
cp -r "${CloudRunnerFolders.ToLinuxFolder(path.join(ubuntuPlatformsFolder, 'steps'))}" "/steps"
|
||||
chmod -R +x "/entrypoint.sh"
|
||||
chmod -R +x "/steps"
|
||||
echo "game ci cloud runner start"
|
||||
|
|
@ -127,15 +121,13 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
CloudRunnerFolders.libraryFolderAbsolute
|
||||
} --artifactName lib-${guid} --cachePushTo ${linuxCacheFolder}/Library
|
||||
echo "game ci cloud runner push build to cache"
|
||||
node ${builderPath} -m cache-push --cachePushFrom ${BuildAutomationWorkflow.ToLinuxFolder(
|
||||
node ${builderPath} -m cache-push --cachePushFrom ${CloudRunnerFolders.ToLinuxFolder(
|
||||
CloudRunnerFolders.projectBuildFolderAbsolute,
|
||||
)} --artifactName build-${guid} --cachePushTo ${`${BuildAutomationWorkflow.ToLinuxFolder(
|
||||
`${linuxCacheFolder}/build`,
|
||||
)}`}
|
||||
)} --artifactName build-${guid} --cachePushTo ${`${CloudRunnerFolders.ToLinuxFolder(`${linuxCacheFolder}/build`)}`}
|
||||
${BuildAutomationWorkflow.GetCleanupCommand(CloudRunnerFolders.projectPathAbsolute)}`;
|
||||
}
|
||||
|
||||
private static GetCleanupCommand(cleanupPath: string) {
|
||||
return CloudRunnerOptions.retainWorkspaces ? `` : `rm -r ${BuildAutomationWorkflow.ToLinuxFolder(cleanupPath)}`;
|
||||
return CloudRunnerOptions.retainWorkspaces ? `` : `rm -r ${CloudRunnerFolders.ToLinuxFolder(cleanupPath)}`;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue