diff --git a/lib/tasks/generateResourcesJson.js b/lib/tasks/generateResourcesJson.js index 4d79fda5e..28bdbf94e 100644 --- a/lib/tasks/generateResourcesJson.js +++ b/lib/tasks/generateResourcesJson.js @@ -2,6 +2,17 @@ const resourceListCreator = require("../processors/resourceListCreator"); +const DEFAULT_EXCLUDES = [ + /* + * exclude mac metadata files + */ + "!**/.DS_Store", + /* + * sap-ui-version.json is not part of the resources + */ + "!/resources/sap-ui-version.json" +]; + function getCreatorOptions(projectName) { const creatorOptions = {}; if ( projectName === "sap.ui.core" ) { @@ -86,7 +97,7 @@ function getCreatorOptions(projectName) { * @returns {Promise} Promise resolving with undefined once data has been written */ module.exports = async function({workspace, options: {projectName}}) { - const resources = await workspace.byGlob(["/resources/**/*.*"]); + const resources = await workspace.byGlob(["/resources/**/*.*"].concat(DEFAULT_EXCLUDES)); const resourceLists = await resourceListCreator({ resources diff --git a/test/expected/build/application.j/dest-resources-json/resources/sap-ui-version.json b/test/expected/build/application.j/dest-resources-json/resources/sap-ui-version.json new file mode 100644 index 000000000..551fc7d92 --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/resources/sap-ui-version.json @@ -0,0 +1,7 @@ +{ + "name": "application.j", + "version": "1.0.0", + "buildTimestamp": "202008120917", + "scmRevision": "", + "libraries": [] +} \ No newline at end of file diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index d9ad99998..601a1202d 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -8,6 +8,7 @@ const readFile = promisify(fs.readFile); const assert = chai.assert; const sinon = require("sinon"); const mock = require("mock-require"); +const resourceFactory = require("@ui5/fs").resourceFactory; const ui5Builder = require("../../../"); const builder = ui5Builder.builder; @@ -478,17 +479,39 @@ test("Build application.j", (t) => { }); }); -test("Build application.j with resources.json", (t) => { +test("Build application.j with resources.json and version info", (t) => { const destPath = "./test/tmp/build/application.j/dest-resources-json"; const expectedPath = path.join("test", "expected", "build", "application.j", "dest-resources-json"); + + const dummyVersionInfoGenerator = () => { + const versionJson = { + "name": "application.j", + "version": "1.0.0", + "buildTimestamp": "202008120917", + "scmRevision": "", + "libraries": [] + }; + + return [resourceFactory.createResource({ + path: "/resources/sap-ui-version.json", + string: JSON.stringify(versionJson, null, "\t") + })]; + }; + + mock("../../../lib/processors/versionInfoGenerator", dummyVersionInfoGenerator); + mock.reRequire("../../../lib/tasks/generateVersionInfo"); + + const builder = mock.reRequire("../../../lib/builder/builder"); + + return builder.build({ includedTasks: [ "generateResourcesJson" ], tree: applicationJTree, destPath, - excludedTasks: ["createDebugFiles", "generateStandaloneAppBundle", "generateVersionInfo"] + excludedTasks: ["createDebugFiles", "generateStandaloneAppBundle"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => {