mirror of
https://github.com/Minionguyjpro/Inno-Setup-Action
synced 2026-02-18 17:41:18 +01:00
Update CJS script (automated by GitHub Actions)
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
// main.test.js
|
||||
const core = require('@actions/core');
|
||||
const fs = require('fs');
|
||||
const main = require('../src/main');
|
||||
const core = require("@actions/core");
|
||||
const fs = require("fs");
|
||||
const main = require("../src/main");
|
||||
|
||||
// Mocking fs.promises for the test
|
||||
jest.mock('fs', () => {
|
||||
const originalFs = jest.requireActual('fs');
|
||||
jest.mock("fs", () => {
|
||||
const originalFs = jest.requireActual("fs");
|
||||
return {
|
||||
...originalFs,
|
||||
promises: {
|
||||
@@ -13,18 +13,18 @@ jest.mock('fs', () => {
|
||||
},
|
||||
};
|
||||
});
|
||||
const child_process = require('child_process');
|
||||
const child_process = require("child_process");
|
||||
|
||||
jest.mock('@actions/core');
|
||||
jest.mock('child_process');
|
||||
jest.mock("@actions/core");
|
||||
jest.mock("child_process");
|
||||
|
||||
describe('Inno Setup Action', () => {
|
||||
describe("Inno Setup Action", () => {
|
||||
beforeEach(() => {
|
||||
jest.resetAllMocks();
|
||||
});
|
||||
|
||||
it('should execute Inno Setup command on Windows with existing workspace', () => {
|
||||
process.platform = 'win32';
|
||||
it("should execute Inno Setup command on Windows with existing workspace", () => {
|
||||
process.platform = "win32";
|
||||
main();
|
||||
|
||||
expect(core.getInput).toHaveBeenCalledTimes(2);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* The entrypoint for the action.
|
||||
*/
|
||||
const { run } = require('./main')
|
||||
const { run } = require("./main");
|
||||
|
||||
run()
|
||||
run();
|
||||
|
||||
55
src/main.js
55
src/main.js
@@ -1,46 +1,55 @@
|
||||
// Importing necessary modules
|
||||
const core = require('@actions/core')
|
||||
const fs = require('fs')
|
||||
const core = require("@actions/core");
|
||||
const fs = require("fs");
|
||||
|
||||
// Getting the path to the workspace from environment variables
|
||||
const workspacePath = process.env.GITHUB_WORKSPACE
|
||||
const workspacePath = process.env.GITHUB_WORKSPACE;
|
||||
|
||||
// Getting inputs from the workflow
|
||||
const options = core.getInput('options')
|
||||
const path = core.getInput('path')
|
||||
const options = core.getInput("options");
|
||||
const path = core.getInput("path");
|
||||
|
||||
// Importing the child_process module for executing shell commands
|
||||
const exec = require('child_process').exec
|
||||
const exec = require("child_process").exec;
|
||||
|
||||
// Initializing error variables
|
||||
let repoError;
|
||||
let platformError;
|
||||
|
||||
// Checking if the platform is Windows
|
||||
if (process.platform === 'win32') {
|
||||
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) {
|
||||
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 (execError, stdout, stderr) {
|
||||
// Logging the standard output of the command
|
||||
console.log(stdout)
|
||||
exec(
|
||||
`"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`,
|
||||
{ stdio: "ignore" },
|
||||
function (execError, stdout, stderr) {
|
||||
// Logging the standard output of the command
|
||||
console.log(stdout);
|
||||
|
||||
// Handling errors, if any
|
||||
if (execError) {
|
||||
repoError = { code: execError.code || 1 };
|
||||
core.setFailed(stderr);
|
||||
process.exit(repoError.code);
|
||||
}
|
||||
});
|
||||
// Handling errors, if any
|
||||
if (execError) {
|
||||
repoError = { code: execError.code || 1 };
|
||||
core.setFailed(stderr);
|
||||
process.exit(repoError.code);
|
||||
}
|
||||
},
|
||||
);
|
||||
} else {
|
||||
// Setting an error code and failing the workflow if the repository is not cloned
|
||||
repoError = { code: 1 }
|
||||
core.setFailed('The repository was not cloned. Please specify the actions/checkout action before this step.');
|
||||
process.exit(repoError.code)
|
||||
repoError = { code: 1 };
|
||||
core.setFailed(
|
||||
"The repository was not cloned. Please specify the actions/checkout action before this step.",
|
||||
);
|
||||
process.exit(repoError.code);
|
||||
}
|
||||
} else {
|
||||
// Setting an error code and failing the workflow if the platform is not Windows
|
||||
platformError = { code: 1 };
|
||||
core.setFailed('This action is only supported on Windows!')
|
||||
process.exit(platformError.code)
|
||||
core.setFailed("This action is only supported on Windows!");
|
||||
process.exit(platformError.code);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user