// Importing necessary modules const fs = require('fs'); const core = require('@actions/core'); // eslint-disable-next-line no-unused-vars const github = require('@actions/github'); // Getting the path to the workspace from environment variables const workspacePath = process.env.GITHUB_WORKSPACE; // Getting inputs from the workflow const options = core.getInput('options'); const path = core.getInput('path'); // Importing the child_process module for executing shell commands var exec = require('child_process').exec; // Initializing an error variable let error; // Checking if the platform is Windows if (process.platform === 'win32') { // Checking if the GitHub workspace exists and is not empty if (fs.existsSync(process.env.GITHUB_WORKSPACE) && fs.readdirSync(workspacePath).length > 0) { // Building and executing the Inno Setup compiler command exec(`"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`, { stdio: 'ignore' }, function (error, stdout, stderr) { // Logging the standard output of the command console.log(stdout); // Handling errors, if any if (error) { core.setFailed(stderr); process.exit(error.code || 1); } }); } else { // Setting an error code and failing the workflow if the repository is not cloned error = { code: 1 } core.setFailed('The repository was not cloned. Please specify the actions/checkout action before this step.'); process.exit(error.code); } } else { // Setting an error code and failing the workflow if the platform is not Windows error = { code: 1 }; core.setFailed('This action is only supported on Windows!'); process.exit(error.code); }