diff --git a/dist/index.js b/dist/index.js index 34f6a93b..fd871be2 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index 04a5ae30..82691185 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/src/model/cli/cli.ts b/src/model/cli/cli.ts index a2eed108..a9d0d862 100644 --- a/src/model/cli/cli.ts +++ b/src/model/cli/cli.ts @@ -10,8 +10,6 @@ import { LfsHashing } from '../cloud-runner/services/utility/lfs-hashing'; import { RemoteClient } from '../cloud-runner/remote-client'; import CloudRunnerOptionsReader from '../cloud-runner/options/cloud-runner-options-reader'; import GitHub from '../github'; -import { CloudRunnerFolders } from '../cloud-runner/options/cloud-runner-folders'; -import { CloudRunnerSystem } from '../cloud-runner/services/core/cloud-runner-system'; import { OptionValues } from 'commander'; import { InputKey } from '../input'; @@ -173,31 +171,4 @@ export class Cli { return await CloudRunner.Provider.watchWorkflow(); } - - @CliFunction(`remote-cli-post-build`, `runs a cloud runner build`) - public static async PostCLIBuild(): Promise { - core.info(`Running POST build tasks`); - - await Caching.PushToCache( - CloudRunnerFolders.ToLinuxFolder(`${CloudRunnerFolders.cacheFolderForCacheKeyFull}/Library`), - CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.libraryFolderAbsolute), - `lib-${CloudRunner.buildParameters.buildGuid}`, - ); - - await Caching.PushToCache( - CloudRunnerFolders.ToLinuxFolder(`${CloudRunnerFolders.cacheFolderForCacheKeyFull}/build`), - CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute), - `build-${CloudRunner.buildParameters.buildGuid}`, - ); - - if (!BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters)) { - await CloudRunnerSystem.Run( - `rm -r ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}`, - ); - } - - await RemoteClient.runCustomHookFiles(`after-build`); - - return new Promise((result) => result(``)); - } } diff --git a/src/model/cloud-runner/remote-client/index.ts b/src/model/cloud-runner/remote-client/index.ts index 5791c35e..c949cb31 100644 --- a/src/model/cloud-runner/remote-client/index.ts +++ b/src/model/cloud-runner/remote-client/index.ts @@ -23,6 +23,35 @@ export class RemoteClient { await RemoteClient.replaceLargePackageReferencesWithSharedReferences(); await RemoteClient.runCustomHookFiles(`before-build`); } + + @CliFunction(`remote-cli-post-build`, `runs a cloud runner build`) + public static async PostCLIBuild(): Promise { + RemoteClientLogger.log(`Running POST build tasks`); + + await Caching.PushToCache( + CloudRunnerFolders.ToLinuxFolder(`${CloudRunnerFolders.cacheFolderForCacheKeyFull}/Library`), + CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.libraryFolderAbsolute), + `lib-${CloudRunner.buildParameters.buildGuid}`, + ); + + await Caching.PushToCache( + CloudRunnerFolders.ToLinuxFolder(`${CloudRunnerFolders.cacheFolderForCacheKeyFull}/build`), + CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute), + `build-${CloudRunner.buildParameters.buildGuid}`, + ); + + if (!BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters)) { + await CloudRunnerSystem.Run( + `rm -r ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}`, + ); + } + + await RemoteClient.runCustomHookFiles(`after-build`); + + RemoteClientLogger.printCollectedLogs(); + + return new Promise((result) => result(``)); + } static async runCustomHookFiles(hookLifecycle: string) { RemoteClientLogger.log(`RunCustomHookFiles: ${hookLifecycle}`); const gameCiCustomHooksPath = path.join(CloudRunnerFolders.repoPathAbsolute, `game-ci`, `hooks`); diff --git a/src/model/cloud-runner/remote-client/remote-client-logger.ts b/src/model/cloud-runner/remote-client/remote-client-logger.ts index 2bac8ef3..8541e342 100644 --- a/src/model/cloud-runner/remote-client/remote-client-logger.ts +++ b/src/model/cloud-runner/remote-client/remote-client-logger.ts @@ -1,8 +1,17 @@ +import path from 'node:path'; +import { CloudRunnerFolders } from '../options/cloud-runner-folders'; import CloudRunnerLogger from '../services/core/cloud-runner-logger'; +import fs from 'node:fs'; export class RemoteClientLogger { + private static get LogFilePath() { + return path.join(CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute, `job-log.txt`); + } + public static log(message: string) { - CloudRunnerLogger.log(`[Client] ${message}`); + const finalMessage = `[Client] ${message}`; + this.appendToFile(finalMessage); + CloudRunnerLogger.log(finalMessage); } public static logCliError(message: string) { @@ -16,4 +25,13 @@ export class RemoteClientLogger { public static logWarning(message: string) { CloudRunnerLogger.logWarning(message); } + + public static appendToFile(message: string) { + fs.appendFileSync(RemoteClientLogger.LogFilePath, message); + } + + public static printCollectedLogs() { + CloudRunnerLogger.log(`Collected Logs`); + CloudRunnerLogger.log(fs.readFileSync(RemoteClientLogger.LogFilePath).toString()); + } }