diff --git a/github-actions/bazel/configure-remote/action.yml b/github-actions/bazel/configure-remote/action.yml index 97f0e0c30..ac7340199 100644 --- a/github-actions/bazel/configure-remote/action.yml +++ b/github-actions/bazel/configure-remote/action.yml @@ -7,11 +7,11 @@ inputs: description: | If specified, the given `bazelrc` file is being updated to always run with the `--config=remote` flag. Defaults to `.bazelrc.user` - only_cache: + allow_windows_rbe: default: false description: | - Whether to only set up remote caching, instead of allowing for full - remote execution (on Linux/macOS). + Whether to allow remote execution to be configured for Windows. By default, + Windows is only configured to leverage remote caching. shell: default: bash @@ -23,6 +23,6 @@ runs: - run: node $GITHUB_ACTION_PATH/configure-remote.cjs env: BAZELRC_PATH: ${{ inputs.bazelrc }} - ONLY_CACHE: ${{ inputs.only_cache }} + ALLOW_WINDOWS_RBE: ${{ inputs.allow_windows_rbe }} NGAT: 'bKddxrYADouso3haW7lCFA==' shell: ${{ inputs.shell }} diff --git a/github-actions/bazel/configure-remote/configure-remote.cjs b/github-actions/bazel/configure-remote/configure-remote.cjs index 25336a726..be0881794 100755 --- a/github-actions/bazel/configure-remote/configure-remote.cjs +++ b/github-actions/bazel/configure-remote/configure-remote.cjs @@ -58,7 +58,7 @@ ${A.format(t)} Error Message: ${n.message}`)})).result)===null||t===void 0?void 0:t.value;if(!i)throw new Error("Response json body do not have ID Token field");return i})}static getIDToken(A){return Gl(this,void 0,void 0,function*(){try{let t=Jt.getIDTokenUrl();if(A){let s=encodeURIComponent(A);t=`${t}&audience=${s}`}(0,Tl.debug)(`ID token url is ${t}`);let r=yield Jt.getCall(t);return(0,Tl.setSecret)(r),r}catch(t){throw new Error(`Error message: ${t.message}`)}})}};is.OidcClient=Jt});var yQ=l($A=>{"use strict";var uQ=$A&&$A.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})};Object.defineProperty($A,"__esModule",{value:!0});$A.summary=$A.markdownSummary=$A.SUMMARY_DOCS_URL=$A.SUMMARY_ENV_VAR=void 0;var jN=I("os"),dQ=I("fs"),{access:zN,appendFile:$N,writeFile:Ab}=dQ.promises;$A.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";$A.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";var fQ=class{constructor(){this._buffer=""}filePath(){return uQ(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let A=process.env[$A.SUMMARY_ENV_VAR];if(!A)throw new Error(`Unable to find environment variable for $${$A.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield zN(A,dQ.constants.R_OK|dQ.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${A}'. Check if the file has correct read/write permissions.`)}return this._filePath=A,this._filePath})}wrap(A,t,r={}){let s=Object.entries(r).map(([i,n])=>` ${i}="${n}"`).join("");return t?`<${A}${s}>${t}`:`<${A}${s}>`}write(A){return uQ(this,void 0,void 0,function*(){let t=!!(A!=null&&A.overwrite),r=yield this.filePath();return yield(t?Ab:$N)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return uQ(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(A,t=!1){return this._buffer+=A,t?this.addEOL():this}addEOL(){return this.addRaw(jN.EOL)}addCodeBlock(A,t){let r=Object.assign({},t&&{lang:t}),s=this.wrap("pre",this.wrap("code",A),r);return this.addRaw(s).addEOL()}addList(A,t=!1){let r=t?"ol":"ul",s=A.map(n=>this.wrap("li",n)).join(""),i=this.wrap(r,s);return this.addRaw(i).addEOL()}addTable(A){let t=A.map(s=>{let i=s.map(n=>{if(typeof n=="string")return this.wrap("td",n);let{header:o,data:g,colspan:E,rowspan:Q}=n,a=o?"th":"td",B=Object.assign(Object.assign({},E&&{colspan:E}),Q&&{rowspan:Q});return this.wrap(a,g,B)}).join("");return this.wrap("tr",i)}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(A,t){let r=this.wrap("details",this.wrap("summary",A)+t);return this.addRaw(r).addEOL()}addImage(A,t,r){let{width:s,height:i}=r||{},n=Object.assign(Object.assign({},s&&{width:s}),i&&{height:i}),o=this.wrap("img",null,Object.assign({src:A,alt:t},n));return this.addRaw(o).addEOL()}addHeading(A,t){let r=`h${t}`,s=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",i=this.wrap(s,A);return this.addRaw(i).addEOL()}addSeparator(){let A=this.wrap("hr",null);return this.addRaw(A).addEOL()}addBreak(){let A=this.wrap("br",null);return this.addRaw(A).addEOL()}addQuote(A,t){let r=Object.assign({},t&&{cite:t}),s=this.wrap("blockquote",A,r);return this.addRaw(s).addEOL()}addLink(A,t){let r=this.wrap("a",A,{href:t});return this.addRaw(r).addEOL()}},vl=new fQ;$A.markdownSummary=vl;$A.summary=vl});var Vl=l(Ae=>{"use strict";var eb=Ae&&Ae.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(A,t);(!s||("get"in s?!A.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,r,s)}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),tb=Ae&&Ae.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),rb=Ae&&Ae.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&eb(A,e,t);return tb(A,e),A};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.toPlatformPath=Ae.toWin32Path=Ae.toPosixPath=void 0;var sb=rb(I("path"));function ib(e){return e.replace(/[\\]/g,"/")}Ae.toPosixPath=ib;function nb(e){return e.replace(/[/]/g,"\\")}Ae.toWin32Path=nb;function ob(e){return e.replace(/[/\\]/g,sb.sep)}Ae.toPlatformPath=ob});var DQ=l(F=>{"use strict";var gb=F&&F.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t),Object.defineProperty(e,r,{enumerable:!0,get:function(){return A[t]}})}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),Eb=F&&F.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),Wl=F&&F.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.hasOwnProperty.call(e,t)&&gb(A,e,t);return Eb(A,e),A},wQ=F&&F.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})},ee;Object.defineProperty(F,"__esModule",{value:!0});F.getCmdPath=F.tryGetExecutablePath=F.isRooted=F.isDirectory=F.exists=F.READONLY=F.UV_FS_O_EXLOCK=F.IS_WINDOWS=F.unlink=F.symlink=F.stat=F.rmdir=F.rm=F.rename=F.readlink=F.readdir=F.open=F.mkdir=F.lstat=F.copyFile=F.chmod=void 0;var Ol=Wl(I("fs")),ho=Wl(I("path"));ee=Ol.promises,F.chmod=ee.chmod,F.copyFile=ee.copyFile,F.lstat=ee.lstat,F.mkdir=ee.mkdir,F.open=ee.open,F.readdir=ee.readdir,F.readlink=ee.readlink,F.rename=ee.rename,F.rm=ee.rm,F.rmdir=ee.rmdir,F.stat=ee.stat,F.symlink=ee.symlink,F.unlink=ee.unlink;F.IS_WINDOWS=process.platform==="win32";F.UV_FS_O_EXLOCK=268435456;F.READONLY=Ol.constants.O_RDONLY;function Qb(e){return wQ(this,void 0,void 0,function*(){try{yield F.stat(e)}catch(A){if(A.code==="ENOENT")return!1;throw A}return!0})}F.exists=Qb;function ab(e,A=!1){return wQ(this,void 0,void 0,function*(){return(A?yield F.stat(e):yield F.lstat(e)).isDirectory()})}F.isDirectory=ab;function Bb(e){if(e=cb(e),!e)throw new Error('isRooted() parameter "p" cannot be empty');return F.IS_WINDOWS?e.startsWith("\\")||/^[A-Z]:/i.test(e):e.startsWith("/")}F.isRooted=Bb;function Cb(e,A){return wQ(this,void 0,void 0,function*(){let t;try{t=yield F.stat(e)}catch(s){s.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${s}`)}if(t&&t.isFile()){if(F.IS_WINDOWS){let s=ho.extname(e).toUpperCase();if(A.some(i=>i.toUpperCase()===s))return e}else if(ql(t))return e}let r=e;for(let s of A){e=r+s,t=void 0;try{t=yield F.stat(e)}catch(i){i.code!=="ENOENT"&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${i}`)}if(t&&t.isFile()){if(F.IS_WINDOWS){try{let i=ho.dirname(e),n=ho.basename(e).toUpperCase();for(let o of yield F.readdir(i))if(n===o.toUpperCase()){e=ho.join(i,o);break}}catch(i){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${i}`)}return e}else if(ql(t))return e}}return""})}F.tryGetExecutablePath=Cb;function cb(e){return e=e||"",F.IS_WINDOWS?(e=e.replace(/\//g,"\\"),e.replace(/\\\\+/g,"\\")):e.replace(/\/\/+/g,"/")}function ql(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function Ib(){var e;return(e=process.env.COMSPEC)!==null&&e!==void 0?e:"cmd.exe"}F.getCmdPath=Ib});var zl=l(CA=>{"use strict";var hb=CA&&CA.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t),Object.defineProperty(e,r,{enumerable:!0,get:function(){return A[t]}})}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),lb=CA&&CA.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),Pl=CA&&CA.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.hasOwnProperty.call(e,t)&&hb(A,e,t);return lb(A,e),A},Gt=CA&&CA.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})};Object.defineProperty(CA,"__esModule",{value:!0});CA.findInPath=CA.which=CA.mkdirP=CA.rmRF=CA.mv=CA.cp=void 0;var ub=I("assert"),et=Pl(I("path")),_=Pl(DQ());function db(e,A,t={}){return Gt(this,void 0,void 0,function*(){let{force:r,recursive:s,copySourceDirectory:i}=yb(t),n=(yield _.exists(A))?yield _.stat(A):null;if(n&&n.isFile()&&!r)return;let o=n&&n.isDirectory()&&i?et.join(A,et.basename(e)):A;if(!(yield _.exists(e)))throw new Error(`no such file or directory: ${e}`);if((yield _.stat(e)).isDirectory())if(s)yield Kl(e,o,0,r);else throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`);else{if(et.relative(e,o)==="")throw new Error(`'${o}' and '${e}' are the same file`);yield jl(e,o,r)}})}CA.cp=db;function fb(e,A,t={}){return Gt(this,void 0,void 0,function*(){if(yield _.exists(A)){let r=!0;if((yield _.isDirectory(A))&&(A=et.join(A,et.basename(e)),r=yield _.exists(A)),r)if(t.force==null||t.force)yield _l(A);else throw new Error("Destination already exists")}yield pQ(et.dirname(A)),yield _.rename(e,A)})}CA.mv=fb;function _l(e){return Gt(this,void 0,void 0,function*(){if(_.IS_WINDOWS&&/[*"<>|]/.test(e))throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');try{yield _.rm(e,{force:!0,maxRetries:3,recursive:!0,retryDelay:300})}catch(A){throw new Error(`File was unable to be removed ${A}`)}})}CA.rmRF=_l;function pQ(e){return Gt(this,void 0,void 0,function*(){ub.ok(e,"a path argument must be provided"),yield _.mkdir(e,{recursive:!0})})}CA.mkdirP=pQ;function Zl(e,A){return Gt(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");if(A){let r=yield Zl(e,!1);if(!r)throw _.IS_WINDOWS?new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`):new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);return r}let t=yield Xl(e);return t&&t.length>0?t[0]:""})}CA.which=Zl;function Xl(e){return Gt(this,void 0,void 0,function*(){if(!e)throw new Error("parameter 'tool' is required");let A=[];if(_.IS_WINDOWS&&process.env.PATHEXT)for(let s of process.env.PATHEXT.split(et.delimiter))s&&A.push(s);if(_.isRooted(e)){let s=yield _.tryGetExecutablePath(e,A);return s?[s]:[]}if(e.includes(et.sep))return[];let t=[];if(process.env.PATH)for(let s of process.env.PATH.split(et.delimiter))s&&t.push(s);let r=[];for(let s of t){let i=yield _.tryGetExecutablePath(et.join(s,e),A);i&&r.push(i)}return r})}CA.findInPath=Xl;function yb(e){let A=e.force==null?!0:e.force,t=Boolean(e.recursive),r=e.copySourceDirectory==null?!0:Boolean(e.copySourceDirectory);return{force:A,recursive:t,copySourceDirectory:r}}function Kl(e,A,t,r){return Gt(this,void 0,void 0,function*(){if(t>=255)return;t++,yield pQ(A);let s=yield _.readdir(e);for(let i of s){let n=`${e}/${i}`,o=`${A}/${i}`;(yield _.lstat(n)).isDirectory()?yield Kl(n,o,t,r):yield jl(n,o,r)}yield _.chmod(A,(yield _.stat(e)).mode)})}function jl(e,A,t){return Gt(this,void 0,void 0,function*(){if((yield _.lstat(e)).isSymbolicLink()){try{yield _.lstat(A),yield _.unlink(A)}catch(s){s.code==="EPERM"&&(yield _.chmod(A,"0666"),yield _.unlink(A))}let r=yield _.readlink(e);yield _.symlink(r,A,_.IS_WINDOWS?"junction":null)}else(!(yield _.exists(A))||t)&&(yield _.copyFile(e,A))})}});var tu=l(te=>{"use strict";var wb=te&&te.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t),Object.defineProperty(e,r,{enumerable:!0,get:function(){return A[t]}})}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),Db=te&&te.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),ns=te&&te.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.hasOwnProperty.call(e,t)&&wb(A,e,t);return Db(A,e),A},$l=te&&te.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})};Object.defineProperty(te,"__esModule",{value:!0});te.argStringToArray=te.ToolRunner=void 0;var lo=ns(I("os")),eu=ns(I("events")),pb=ns(I("child_process")),Rb=ns(I("path")),kb=ns(zl()),Au=ns(DQ()),Fb=I("timers"),uo=process.platform==="win32",RQ=class extends eu.EventEmitter{constructor(A,t,r){if(super(),!A)throw new Error("Parameter 'toolPath' cannot be null or empty.");this.toolPath=A,this.args=t||[],this.options=r||{}}_debug(A){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(A)}_getCommandString(A,t){let r=this._getSpawnFileName(),s=this._getSpawnArgs(A),i=t?"":"[command]";if(uo)if(this._isCmdFile()){i+=r;for(let n of s)i+=` ${n}`}else if(A.windowsVerbatimArguments){i+=`"${r}"`;for(let n of s)i+=` ${n}`}else{i+=this._windowsQuoteCmdArg(r);for(let n of s)i+=` ${this._windowsQuoteCmdArg(n)}`}else{i+=r;for(let n of s)i+=` ${n}`}return i}_processLineBuffer(A,t,r){try{let s=t+A.toString(),i=s.indexOf(lo.EOL);for(;i>-1;){let n=s.substring(0,i);r(n),s=s.substring(i+lo.EOL.length),i=s.indexOf(lo.EOL)}return s}catch(s){return this._debug(`error processing line. Failed with error ${s}`),""}}_getSpawnFileName(){return uo&&this._isCmdFile()?process.env.COMSPEC||"cmd.exe":this.toolPath}_getSpawnArgs(A){if(uo&&this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(let r of this.args)t+=" ",t+=A.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r);return t+='"',[t]}return this.args}_endsWith(A,t){return A.endsWith(t)}_isCmdFile(){let A=this.toolPath.toUpperCase();return this._endsWith(A,".CMD")||this._endsWith(A,".BAT")}_windowsQuoteCmdArg(A){if(!this._isCmdFile())return this._uvQuoteCmdArg(A);if(!A)return'""';let t=[" "," ","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'],r=!1;for(let n of A)if(t.some(o=>o===n)){r=!0;break}if(!r)return A;let s='"',i=!0;for(let n=A.length;n>0;n--)s+=A[n-1],i&&A[n-1]==="\\"?s+="\\":A[n-1]==='"'?(i=!0,s+='"'):i=!1;return s+='"',s.split("").reverse().join("")}_uvQuoteCmdArg(A){if(!A)return'""';if(!A.includes(" ")&&!A.includes(" ")&&!A.includes('"'))return A;if(!A.includes('"')&&!A.includes("\\"))return`"${A}"`;let t='"',r=!0;for(let s=A.length;s>0;s--)t+=A[s-1],r&&A[s-1]==="\\"?t+="\\":A[s-1]==='"'?(r=!0,t+="\\"):r=!1;return t+='"',t.split("").reverse().join("")}_cloneExecOptions(A){A=A||{};let t={cwd:A.cwd||process.cwd(),env:A.env||process.env,silent:A.silent||!1,windowsVerbatimArguments:A.windowsVerbatimArguments||!1,failOnStdErr:A.failOnStdErr||!1,ignoreReturnCode:A.ignoreReturnCode||!1,delay:A.delay||1e4};return t.outStream=A.outStream||process.stdout,t.errStream=A.errStream||process.stderr,t}_getSpawnOptions(A,t){A=A||{};let r={};return r.cwd=A.cwd,r.env=A.env,r.windowsVerbatimArguments=A.windowsVerbatimArguments||this._isCmdFile(),A.windowsVerbatimArguments&&(r.argv0=`"${t}"`),r}exec(){return $l(this,void 0,void 0,function*(){return!Au.isRooted(this.toolPath)&&(this.toolPath.includes("/")||uo&&this.toolPath.includes("\\"))&&(this.toolPath=Rb.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield kb.which(this.toolPath,!0),new Promise((A,t)=>$l(this,void 0,void 0,function*(){this._debug(`exec tool: ${this.toolPath}`),this._debug("arguments:");for(let E of this.args)this._debug(` ${E}`);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+lo.EOL);let s=new ui(r,this.toolPath);if(s.on("debug",E=>{this._debug(E)}),this.options.cwd&&!(yield Au.exists(this.options.cwd)))return t(new Error(`The cwd: ${this.options.cwd} does not exist!`));let i=this._getSpawnFileName(),n=pb.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i)),o="";n.stdout&&n.stdout.on("data",E=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(E),!r.silent&&r.outStream&&r.outStream.write(E),o=this._processLineBuffer(E,o,Q=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(Q)})});let g="";if(n.stderr&&n.stderr.on("data",E=>{s.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(E),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(E),g=this._processLineBuffer(E,g,Q=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(Q)})}),n.on("error",E=>{s.processError=E.message,s.processExited=!0,s.processClosed=!0,s.CheckComplete()}),n.on("exit",E=>{s.processExitCode=E,s.processExited=!0,this._debug(`Exit code ${E} received from tool '${this.toolPath}'`),s.CheckComplete()}),n.on("close",E=>{s.processExitCode=E,s.processExited=!0,s.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),s.CheckComplete()}),s.on("done",(E,Q)=>{o.length>0&&this.emit("stdline",o),g.length>0&&this.emit("errline",g),n.removeAllListeners(),E?t(E):A(Q)}),this.options.input){if(!n.stdin)throw new Error("child process missing stdin");n.stdin.end(this.options.input)}}))})}};te.ToolRunner=RQ;function Nb(e){let A=[],t=!1,r=!1,s="";function i(n){r&&n!=='"'&&(s+="\\"),s+=n,r=!1}for(let n=0;n0&&(A.push(s),s="");continue}i(o)}return s.length>0&&A.push(s.trim()),A}te.argStringToArray=Nb;var ui=class extends eu.EventEmitter{constructor(A,t){if(super(),this.processClosed=!1,this.processError="",this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw new Error("toolPath must not be empty");this.options=A,this.toolPath=t,A.delay&&(this.delay=A.delay)}CheckComplete(){this.done||(this.processClosed?this._setResult():this.processExited&&(this.timeout=Fb.setTimeout(ui.HandleTimeout,this.delay,this)))}_debug(A){this.emit("debug",A)}_setResult(){let A;this.processExited&&(this.processError?A=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):this.processExitCode!==0&&!this.options.ignoreReturnCode?A=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`):this.processStderr&&this.options.failOnStdErr&&(A=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`))),this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.done=!0,this.emit("done",A,this.processExitCode)}static HandleTimeout(A){if(!A.done){if(!A.processClosed&&A.processExited){let t=`The STDIO streams did not close within ${A.delay/1e3} seconds of the exit event from process '${A.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;A._debug(t)}A._setResult()}}}});var ou=l(re=>{"use strict";var bb=re&&re.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t),Object.defineProperty(e,r,{enumerable:!0,get:function(){return A[t]}})}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),mb=re&&re.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),Sb=re&&re.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.hasOwnProperty.call(e,t)&&bb(A,e,t);return mb(A,e),A},iu=re&&re.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})};Object.defineProperty(re,"__esModule",{value:!0});re.getExecOutput=re.exec=void 0;var ru=I("string_decoder"),su=Sb(tu());function nu(e,A,t){return iu(this,void 0,void 0,function*(){let r=su.argStringToArray(e);if(r.length===0)throw new Error("Parameter 'commandLine' cannot be null or empty.");let s=r[0];return A=r.slice(1).concat(A||[]),new su.ToolRunner(s,A,t).exec()})}re.exec=nu;function Ub(e,A,t){var r,s;return iu(this,void 0,void 0,function*(){let i="",n="",o=new ru.StringDecoder("utf8"),g=new ru.StringDecoder("utf8"),E=(r=t==null?void 0:t.listeners)===null||r===void 0?void 0:r.stdout,Q=(s=t==null?void 0:t.listeners)===null||s===void 0?void 0:s.stderr,a=u=>{n+=g.write(u),Q&&Q(u)},B=u=>{i+=o.write(u),E&&E(u)},c=Object.assign(Object.assign({},t==null?void 0:t.listeners),{stdout:B,stderr:a}),C=yield nu(e,A,Object.assign(Object.assign({},t),{listeners:c}));return i+=o.end(),n+=g.end(),{exitCode:C,stdout:i,stderr:n}})}re.getExecOutput=Ub});var Eu=l(v=>{"use strict";var Lb=v&&v.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(A,t);(!s||("get"in s?!A.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,r,s)}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),Mb=v&&v.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),Yb=v&&v.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&Lb(A,e,t);return Mb(A,e),A},yo=v&&v.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})},xb=v&&v.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(v,"__esModule",{value:!0});v.getDetails=v.isLinux=v.isMacOS=v.isWindows=v.arch=v.platform=void 0;var gu=xb(I("os")),fo=Yb(ou()),Jb=()=>yo(void 0,void 0,void 0,function*(){let{stdout:e}=yield fo.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"',void 0,{silent:!0}),{stdout:A}=yield fo.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{name:A.trim(),version:e.trim()}}),Gb=()=>yo(void 0,void 0,void 0,function*(){var e,A,t,r;let{stdout:s}=yield fo.getExecOutput("sw_vers",void 0,{silent:!0}),i=(A=(e=s.match(/ProductVersion:\s*(.+)/))===null||e===void 0?void 0:e[1])!==null&&A!==void 0?A:"";return{name:(r=(t=s.match(/ProductName:\s*(.+)/))===null||t===void 0?void 0:t[1])!==null&&r!==void 0?r:"",version:i}}),Tb=()=>yo(void 0,void 0,void 0,function*(){let{stdout:e}=yield fo.getExecOutput("lsb_release",["-i","-r","-s"],{silent:!0}),[A,t]=e.trim().split(` `);return{name:A,version:t}});v.platform=gu.default.platform();v.arch=gu.default.arch();v.isWindows=v.platform==="win32";v.isMacOS=v.platform==="darwin";v.isLinux=v.platform==="linux";function Hb(){return yo(this,void 0,void 0,function*(){return Object.assign(Object.assign({},yield v.isWindows?Jb():v.isMacOS?Gb():Tb()),{platform:v.platform,arch:v.arch,isWindows:v.isWindows,isMacOS:v.isMacOS,isLinux:v.isLinux})})}v.getDetails=Hb});var lQ=l(p=>{"use strict";var vb=p&&p.__createBinding||(Object.create?function(e,A,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(A,t);(!s||("get"in s?!A.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return A[t]}}),Object.defineProperty(e,r,s)}:function(e,A,t,r){r===void 0&&(r=t),e[r]=A[t]}),Vb=p&&p.__setModuleDefault||(Object.create?function(e,A){Object.defineProperty(e,"default",{enumerable:!0,value:A})}:function(e,A){e.default=A}),FQ=p&&p.__importStar||function(e){if(e&&e.__esModule)return e;var A={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&vb(A,e,t);return Vb(A,e),A},Qu=p&&p.__awaiter||function(e,A,t,r){function s(i){return i instanceof t?i:new t(function(n){n(i)})}return new(t||(t=Promise))(function(i,n){function o(Q){try{E(r.next(Q))}catch(a){n(a)}}function g(Q){try{E(r.throw(Q))}catch(a){n(a)}}function E(Q){Q.done?i(Q.value):s(Q.value).then(o,g)}E((r=r.apply(e,A||[])).next())})};Object.defineProperty(p,"__esModule",{value:!0});p.platform=p.toPlatformPath=p.toWin32Path=p.toPosixPath=p.markdownSummary=p.summary=p.getIDToken=p.getState=p.saveState=p.group=p.endGroup=p.startGroup=p.info=p.notice=p.warning=p.error=p.debug=p.isDebug=p.setFailed=p.setCommandEcho=p.setOutput=p.getBooleanInput=p.getMultilineInput=p.getInput=p.addPath=p.setSecret=p.exportVariable=p.ExitCode=void 0;var Se=GQ(),gr=vQ(),os=yi(),au=FQ(I("os")),qb=FQ(I("path")),Wb=Hl(),kQ;(function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"})(kQ||(p.ExitCode=kQ={}));function Ob(e,A){let t=(0,os.toCommandValue)(A);if(process.env[e]=t,process.env.GITHUB_ENV||"")return(0,gr.issueFileCommand)("ENV",(0,gr.prepareKeyValueMessage)(e,A));(0,Se.issueCommand)("set-env",{name:e},t)}p.exportVariable=Ob;function Pb(e){(0,Se.issueCommand)("add-mask",{},e)}p.setSecret=Pb;function _b(e){process.env.GITHUB_PATH||""?(0,gr.issueFileCommand)("PATH",e):(0,Se.issueCommand)("add-path",{},e),process.env.PATH=`${e}${qb.delimiter}${process.env.PATH}`}p.addPath=_b;function NQ(e,A){let t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(A&&A.required&&!t)throw new Error(`Input required and not supplied: ${e}`);return A&&A.trimWhitespace===!1?t:t.trim()}p.getInput=NQ;function Zb(e,A){let t=NQ(e,A).split(` `).filter(r=>r!=="");return A&&A.trimWhitespace===!1?t:t.map(r=>r.trim())}p.getMultilineInput=Zb;function Xb(e,A){let t=["true","True","TRUE"],r=["false","False","FALSE"],s=NQ(e,A);if(t.includes(s))return!0;if(r.includes(s))return!1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e} -Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}p.getBooleanInput=Xb;function Kb(e,A){if(process.env.GITHUB_OUTPUT||"")return(0,gr.issueFileCommand)("OUTPUT",(0,gr.prepareKeyValueMessage)(e,A));process.stdout.write(au.EOL),(0,Se.issueCommand)("set-output",{name:e},(0,os.toCommandValue)(A))}p.setOutput=Kb;function jb(e){(0,Se.issue)("echo",e?"on":"off")}p.setCommandEcho=jb;function zb(e){process.exitCode=kQ.Failure,Bu(e)}p.setFailed=zb;function $b(){return process.env.RUNNER_DEBUG==="1"}p.isDebug=$b;function Am(e){(0,Se.issueCommand)("debug",{},e)}p.debug=Am;function Bu(e,A={}){(0,Se.issueCommand)("error",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.error=Bu;function em(e,A={}){(0,Se.issueCommand)("warning",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.warning=em;function tm(e,A={}){(0,Se.issueCommand)("notice",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.notice=tm;function rm(e){process.stdout.write(e+au.EOL)}p.info=rm;function Cu(e){(0,Se.issue)("group",e)}p.startGroup=Cu;function cu(){(0,Se.issue)("endgroup")}p.endGroup=cu;function sm(e,A){return Qu(this,void 0,void 0,function*(){Cu(e);let t;try{t=yield A()}finally{cu()}return t})}p.group=sm;function im(e,A){if(process.env.GITHUB_STATE||"")return(0,gr.issueFileCommand)("STATE",(0,gr.prepareKeyValueMessage)(e,A));(0,Se.issueCommand)("save-state",{name:e},(0,os.toCommandValue)(A))}p.saveState=im;function nm(e){return process.env[`STATE_${e}`]||""}p.getState=nm;function om(e){return Qu(this,void 0,void 0,function*(){return yield Wb.OidcClient.getIDToken(e)})}p.getIDToken=om;var gm=yQ();Object.defineProperty(p,"summary",{enumerable:!0,get:function(){return gm.summary}});var Em=yQ();Object.defineProperty(p,"markdownSummary",{enumerable:!0,get:function(){return Em.markdownSummary}});var bQ=Vl();Object.defineProperty(p,"toPosixPath",{enumerable:!0,get:function(){return bQ.toPosixPath}});Object.defineProperty(p,"toWin32Path",{enumerable:!0,get:function(){return bQ.toWin32Path}});Object.defineProperty(p,"toPlatformPath",{enumerable:!0,get:function(){return bQ.toPlatformPath}});p.platform=FQ(Eu())});var hm=l(po=>{var Ro=po&&po.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(po,"__esModule",{value:!0});var Qm=Ro(LQ()),wo=MQ(),am=I("crypto"),mQ=Ro(I("path")),Do=Ro(I("fs")),Bm=Ro(I("os")),Cm=lQ();async function cm(e){let A=Bm.default.platform()==="win32",t=Qm.default,r=(0,am.createDecipheriv)(wo.alg,wo.k,wo.iv).setAuthTag(Buffer.from(wo.at,"base64")),s=r.update(t,void 0,"utf8")+r.final("utf8"),i=A?mQ.default.join(process.env.APPDATA,"gcloud/application_default_credentials.json"):mQ.default.join(process.env.HOME,".config/gcloud/application_default_credentials.json");await Do.default.promises.mkdir(mQ.default.dirname(i),{recursive:!0}),await Do.default.promises.writeFile(i,s,"utf8");let n=process.env.ONLY_CACHE==="true",o=A||n?"remote-cache":"remote";if(e){let g=await Im(e);g+=` +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}p.getBooleanInput=Xb;function Kb(e,A){if(process.env.GITHUB_OUTPUT||"")return(0,gr.issueFileCommand)("OUTPUT",(0,gr.prepareKeyValueMessage)(e,A));process.stdout.write(au.EOL),(0,Se.issueCommand)("set-output",{name:e},(0,os.toCommandValue)(A))}p.setOutput=Kb;function jb(e){(0,Se.issue)("echo",e?"on":"off")}p.setCommandEcho=jb;function zb(e){process.exitCode=kQ.Failure,Bu(e)}p.setFailed=zb;function $b(){return process.env.RUNNER_DEBUG==="1"}p.isDebug=$b;function Am(e){(0,Se.issueCommand)("debug",{},e)}p.debug=Am;function Bu(e,A={}){(0,Se.issueCommand)("error",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.error=Bu;function em(e,A={}){(0,Se.issueCommand)("warning",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.warning=em;function tm(e,A={}){(0,Se.issueCommand)("notice",(0,os.toCommandProperties)(A),e instanceof Error?e.toString():e)}p.notice=tm;function rm(e){process.stdout.write(e+au.EOL)}p.info=rm;function Cu(e){(0,Se.issue)("group",e)}p.startGroup=Cu;function cu(){(0,Se.issue)("endgroup")}p.endGroup=cu;function sm(e,A){return Qu(this,void 0,void 0,function*(){Cu(e);let t;try{t=yield A()}finally{cu()}return t})}p.group=sm;function im(e,A){if(process.env.GITHUB_STATE||"")return(0,gr.issueFileCommand)("STATE",(0,gr.prepareKeyValueMessage)(e,A));(0,Se.issueCommand)("save-state",{name:e},(0,os.toCommandValue)(A))}p.saveState=im;function nm(e){return process.env[`STATE_${e}`]||""}p.getState=nm;function om(e){return Qu(this,void 0,void 0,function*(){return yield Wb.OidcClient.getIDToken(e)})}p.getIDToken=om;var gm=yQ();Object.defineProperty(p,"summary",{enumerable:!0,get:function(){return gm.summary}});var Em=yQ();Object.defineProperty(p,"markdownSummary",{enumerable:!0,get:function(){return Em.markdownSummary}});var bQ=Vl();Object.defineProperty(p,"toPosixPath",{enumerable:!0,get:function(){return bQ.toPosixPath}});Object.defineProperty(p,"toWin32Path",{enumerable:!0,get:function(){return bQ.toWin32Path}});Object.defineProperty(p,"toPlatformPath",{enumerable:!0,get:function(){return bQ.toPlatformPath}});p.platform=FQ(Eu())});var hm=l(po=>{var Ro=po&&po.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(po,"__esModule",{value:!0});var Qm=Ro(LQ()),wo=MQ(),am=I("crypto"),mQ=Ro(I("path")),Do=Ro(I("fs")),Bm=Ro(I("os")),Cm=lQ();async function cm(e){let A=Bm.default.platform()==="win32",t=Qm.default,r=(0,am.createDecipheriv)(wo.alg,wo.k,wo.iv).setAuthTag(Buffer.from(wo.at,"base64")),s=r.update(t,void 0,"utf8")+r.final("utf8"),i=A?mQ.default.join(process.env.APPDATA,"gcloud/application_default_credentials.json"):mQ.default.join(process.env.HOME,".config/gcloud/application_default_credentials.json");await Do.default.promises.mkdir(mQ.default.dirname(i),{recursive:!0}),await Do.default.promises.writeFile(i,s,"utf8");let n=process.env.ALLOW_WINDOWS_RBE==="true",o=A&&!n?"remote-cache":"remote";if(e){let g=await Im(e);g+=` build --config=${o}`,await Do.default.promises.writeFile(e,g,"utf8")}(0,Cm.exportVariable)("GOOGLE_APPLICATION_CREDENTIALS",i)}async function Im(e){try{return await Do.default.promises.readFile(e,"utf8")}catch{return""}}cm(process.env.BAZELRC_PATH).catch(e=>{console.error(e),process.exitCode=1})});hm();})(); /*! formdata-polyfill. MIT License. Jimmy Wärting */ /*! ws. MIT License. Einar Otto Stangvik */ diff --git a/github-actions/bazel/configure-remote/index.ts b/github-actions/bazel/configure-remote/index.ts index 37498b747..10f488422 100644 --- a/github-actions/bazel/configure-remote/index.ts +++ b/github-actions/bazel/configure-remote/index.ts @@ -28,9 +28,8 @@ async function main(bazelRcPath: string | undefined) { await fs.promises.mkdir(path.dirname(destPath), {recursive: true}); await fs.promises.writeFile(destPath, dec, 'utf8'); - const onlyCache = process.env['ONLY_CACHE'] === 'true'; - // Set the config to remote-cache as we do not have support for RBE on windows at this time - const configMode = isWindows || onlyCache ? 'remote-cache' : 'remote'; + const allowWindowsRbe = process.env['ALLOW_WINDOWS_RBE'] === 'true'; + const configMode = isWindows && !allowWindowsRbe ? 'remote-cache' : 'remote'; if (bazelRcPath) { let content = await readFileGracefully(bazelRcPath);