From f7d4ece67feb2628f5519ebf5b1bbbc88f444f74 Mon Sep 17 00:00:00 2001 From: Andrew Kahr <22359829+AndrewKahr@users.noreply.github.com> Date: Mon, 27 Nov 2023 11:18:23 -0800 Subject: [PATCH] Graceful exit to ensure outputs get set --- dist/index.js | Bin 22177787 -> 22176637 bytes dist/index.js.map | Bin 14648810 -> 14647481 bytes src/index.ts | 4 +++ .../cloud-runner/providers/docker/index.ts | 9 ++++-- src/model/docker.ts | 17 ++++------ src/model/exec-with-error-check.ts | 29 ------------------ src/model/mac-builder.ts | 5 +-- 7 files changed, 20 insertions(+), 44 deletions(-) delete mode 100644 src/model/exec-with-error-check.ts diff --git a/dist/index.js b/dist/index.js index 08c80b07870e63a3e7a23371c8ad163d2bd95083..21d73e1494b58eae57e04d87b6114894c487777e 100644 GIT binary patch delta 1901 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 diff --git a/dist/index.js.map b/dist/index.js.map index 6266331fe38b0731a3db29f087c439bf65d0e795..dde444c08583a4d7f006afa2c3c63ef2f01fcd65 100644 GIT binary patch delta 1541 zcmZY5dr(wW9Ki8eS)S`EC zP*P8aL00e0%$5I)9XGJeo@tWitLbL_{Kd2!!`2Q%TC8iKDIsFtC##J{lbn7y^KWTy z$X*t)tMRDx4JCBO22c7DWOq2*q;JVG{%JU9FEq&R`DRnBA-%USV$Y3d>Rnalb_1zp z32aTV)QXbA;SM9LMi%N3LcP~Q;XsBtVow~79^ajDES@j>e@)*Mv3JK0*GAjI(KZ7{ zAOS`sA_>VzK`PQnS)$ipLt#1kUZO-mmv>? zMUE_5Z%vWirIzI6>WYxZ>k_i%uSmW;v@x610la6Y81C)rAPA%PD85G?NI9!SCzj?75{xSU%aSt(JZlmGPgpB zL%0>MuQucrs~kcQvTTnfS(fkR**XeDsMkOa&T&1 zTDWqOzy#!DBCbaPCSfvez!cnwsVKxWOh*xB;3gEK1UI7;GjR)U#ch~{*|;5ZP=-5D zj=8A7JXB&n?!;ZV8w+p`?!|pri2Jb!c07Ow@emf{VLXCI@feoiaXf)4EX6V`M>QO% zffFt$s6`#z@Zd?TfEV>pp}~g+_z^%5A*{qIG@=Plp&3tOHJ(8WTCoOgSc`R7j|~W8 zBc8=3Y{qkV9$V0k4n*(*w&F!>!*)o#gqP8YSFi(7yoxS#V<%q2>v#iiVi$H}5B6do z-oo41k9TkYJvfL%h~Y4fpcgvc#ZkP6_i+q;_y8Z`I8NXre2kO$1gG#RPU8&D;xnAX m=lBBsIFA8bz?b+67x6W|!6jVAx444u@I8LeD<}Q9Yx%!pjzALt delta 2562 zcmbW%dr(wW90%}0U_n+CmWSwF*aIjoxGZcc2}mJIrXj5wS+Tk-yBAnx@2>aW%~y(I zh2ni_bAIP{ zZ~O8d&F`yvGu+N%ZG$!P-FQ{DB4inyf!l;ar`zZCTVllQJeqZoA^>3{f82vWrHW zFkE@2rCq^lKaI=LWg#>!D0W_(wc|jrI&+Yui&O_)zMz{$T~i{e zsH=ZSe5*Afh&G*#(ylPoH<;>!pdSQ72!w(L!XO;_Lj-7H07Sw-7z9xe4LXQ{Scrr8 zfT@1)nYI{y0q@M5@0M#ac~SI=na&!X_NFIfH3a7*z>q+2&d@_WwASAqM%i3`B3VbU zaQdrRKcK-kh68zd9>{#uzV{-gxzK9v*_C>0FeASx{9LTJyGv0=3BVBR3A=%)`Mdt+KS z9rYUYw0pH)OV%x%#%#>S;(Z^|thCR>*^8Cn6O@xvy3fE;?qEBcl_(WjeJK51mK05F zjv;c?-GxdwihhCeoGj@M<0a6h8Wt6B`V1#^RMDa@(e<%^OI%(&oiMO8mqS`8I9Zin zaLR74pyuG_vl^XVkH;anN^nCa<`Ap>9^8&(H!-hInIhdm8gMJIbn$|55Owcw)zGv_ zY-s82mQByMi8g`Z=dNPLFT*EW9Y*=sINKE3@1YD2l#KC0damY@k`b4$3%#!T#`en1)YRsCQYO_fhy{q&N zkd%g0qd6me_6+wTJ}=7?E8Tnybt+k8E{?jkaG}xHqZjmsDz}j3BvREefrZvh{Wo~! zjq;ZMi>=n8l&1tV+H9_o>BF)-H$q*{nwqrUb<)yUsozt{i)Nogl=#VlY`oE1Zkc6b zmh5zvTu{L9w-{-lC29C>G}bc>EnCh-6J1P=$x!!#_fAcqPxQ_~*38UW%R3|&{^aHSOcQzMrfN|#ygVCrhphtv9tsk*ydD1mnBvC!I{+%SsDl z)goD<+#0{Y=M`nCkGB;Uc)XW< { let runCommand = ''; switch (process.platform) { @@ -25,13 +22,11 @@ class Docker { case 'win32': runCommand = this.getWindowsCommand(image, parameters); } - if (options) { - options.silent = silent; - return await execWithErrorCheck(runCommand, undefined, options, errorWhenMissingUnityBuildResults); - } else { - return await execWithErrorCheck(runCommand, undefined, { silent }, errorWhenMissingUnityBuildResults); - } + options.silent = silent; + options.ignoreReturnCode = true; + + return await exec(runCommand, undefined, options); } static getLinuxCommand( diff --git a/src/model/exec-with-error-check.ts b/src/model/exec-with-error-check.ts deleted file mode 100644 index 3fe3030b..00000000 --- a/src/model/exec-with-error-check.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ExecOptions, getExecOutput } from '@actions/exec'; - -export async function execWithErrorCheck( - commandLine: string, - arguments_?: string[], - options?: ExecOptions, - errorWhenMissingUnityBuildResults: boolean = false, -): Promise { - const result = await getExecOutput(commandLine, arguments_, options); - - if (!errorWhenMissingUnityBuildResults) { - return result.exitCode; - } - - // Check for errors in the Build Results section - const match = result.stdout.match(/^#\s*Build results\s*#(.*)^Size:/ms); - - if (match) { - const buildResults = match[1]; - const errorMatch = buildResults.match(/^Errors:\s*(\d+)$/m); - if (errorMatch && Number.parseInt(errorMatch[1], 10) !== 0) { - throw new Error(`There was an error building the project. Please read the logs for details.`); - } - } else { - throw new Error(`There was an error building the project. Please read the logs for details.`); - } - - return result.exitCode; -} diff --git a/src/model/mac-builder.ts b/src/model/mac-builder.ts index 7524f961..1d4ddecf 100644 --- a/src/model/mac-builder.ts +++ b/src/model/mac-builder.ts @@ -1,9 +1,10 @@ -import { execWithErrorCheck } from './exec-with-error-check'; +import { exec } from '@actions/exec'; class MacBuilder { public static async run(actionFolder: string, silent: boolean = false): Promise { - return await execWithErrorCheck('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { + return await exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { silent, + ignoreReturnCode: true, }); } }