@@ -109,9 +109,25 @@ runs:
109109 WORKING_DIRECTORY : ${{ inputs.working-directory }}
110110 with :
111111 script : |
112+ const fs = require('node:fs');
113+ const path = require('node:path');
114+
112115 const buildCommands = process.env.BUILD_COMMANDS || '';
113116 const runScriptCommand = process.env.RUN_SCRIPT_COMMAND;
114- const workingDirectory = process.env.WORKING_DIRECTORY || '.';
117+
118+ let workingDirectory = process.env.WORKING_DIRECTORY || '.';
119+ if (!path.isAbsolute(workingDirectory)) {
120+ workingDirectory = path.join(process.env.GITHUB_WORKSPACE, workingDirectory);
121+ }
122+
123+ if (!fs.existsSync(workingDirectory)) {
124+ core.setFailed(`The specified working directory does not exist: ${workingDirectory}`);
125+ return;
126+ }
127+
128+ workingDirectory = path.resolve(workingDirectory);
129+ core.debug(`Running in working directory: ${workingDirectory}`);
130+ process.chdir(workingDirectory);
115131
116132 const commands = buildCommands.split('\n')
117133 .map(cmd => cmd.trim())
@@ -121,15 +137,14 @@ runs:
121137 core.info(`Running build command: ${command}`);
122138
123139 try {
124- const result = await exec.getExecOutput(runScriptCommand, [command], {
125- cwd: require('path').resolve(process.env.GITHUB_WORKSPACE, workingDirectory)
140+ const exitCode = await exec.exec(runScriptCommand, [command], {
141+ cwd: workingDirectory,
142+ ignoreReturnCode: true
126143 });
127144
128- if (result.stdout) {
129- core.info(result.stdout);
130- }
131- if (result.stderr) {
132- core.warning(result.stderr);
145+ if(exitCode !== 0) {
146+ core.setFailed(`Build command "${command}" failed with exit code ${exitCode}`);
147+ throw new Error(`Build command "${command}" failed with exit code ${exitCode}`);
133148 }
134149 } catch (error) {
135150 core.setFailed(`Build command "${command}" failed: ${error.message}`);
0 commit comments