From 73f93708ef0ac34c4a1227500a928fc26b09b0fc Mon Sep 17 00:00:00 2001 From: Steve Hannah Date: Mon, 2 Sep 2024 09:34:13 -0700 Subject: [PATCH] added dmg command --- .gitignore | 3 + .../main/java/ca/weblite/jdeploy/JDeploy.java | 147 ++++++++++++++--- .../jdeploy/appbundler/AppDescription.java | 1 + .../jdeploy/appbundler/BundlerCall.java | 5 + .../jdeploy/appbundler/mac/DmgCreator.java | 153 ++++++++++++++++++ .../appbundler/mac/dmg/background.tiff | Bin 0 -> 46112 bytes .../TextEditorBundleJRECodesignDMG/.gitignore | 1 + .../TextEditorBundleJRECodesignDMG/icon.png | Bin 0 -> 12321 bytes .../package.json | 57 +++++++ .../target/TextEditor-1.0-SNAPSHOT.jar | Bin 0 -> 6942 bytes .../target/icon.png | Bin 0 -> 12321 bytes .../TextEditorBundleJRECodesignDMG/test.sh | 39 +++++ .../TextEditorMacBundleJREDMG/icon.png | Bin 0 -> 12321 bytes .../TextEditorMacBundleJREDMG/package.json | 36 +++++ .../TextEditorMacBundleJREDMG/target/icon.png | Bin 0 -> 12321 bytes .../jdeploy-it-test-project-1.0-SNAPSHOT.jar | Bin 0 -> 4672 bytes .../target/libs/json-20240303.jar | Bin 0 -> 78332 bytes .../TextEditorMacBundleJREDMG/test.sh | 108 +++++++++++++ tests/projects/test.sh | 2 + 19 files changed, 528 insertions(+), 24 deletions(-) create mode 100644 shared/src/main/java/ca/weblite/jdeploy/appbundler/BundlerCall.java create mode 100644 shared/src/main/java/ca/weblite/jdeploy/appbundler/mac/DmgCreator.java create mode 100644 shared/src/main/resources/com/joshondesign/appbundler/mac/dmg/background.tiff create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/.gitignore create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/icon.png create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/package.json create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/target/TextEditor-1.0-SNAPSHOT.jar create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/target/icon.png create mode 100644 tests/projects/TextEditorBundleJRECodesignDMG/test.sh create mode 100644 tests/projects/TextEditorMacBundleJREDMG/icon.png create mode 100644 tests/projects/TextEditorMacBundleJREDMG/package.json create mode 100644 tests/projects/TextEditorMacBundleJREDMG/target/icon.png create mode 100644 tests/projects/TextEditorMacBundleJREDMG/target/jdeploy-it-test-project-1.0-SNAPSHOT.jar create mode 100644 tests/projects/TextEditorMacBundleJREDMG/target/libs/json-20240303.jar create mode 100644 tests/projects/TextEditorMacBundleJREDMG/test.sh diff --git a/.gitignore b/.gitignore index ed8f212d..5a54303e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,7 @@ installer/jdeploy-bundle cli/bin tests/projects/*/jdeploy ./jdeploy +./.idea +./.idea/jarRepositories.xml +./.idea/vcs.xml #./installer/tests/*/mock_launcher* diff --git a/cli/src/main/java/ca/weblite/jdeploy/JDeploy.java b/cli/src/main/java/ca/weblite/jdeploy/JDeploy.java index a1e77f2d..0edf91f2 100644 --- a/cli/src/main/java/ca/weblite/jdeploy/JDeploy.java +++ b/cli/src/main/java/ca/weblite/jdeploy/JDeploy.java @@ -8,7 +8,10 @@ import ca.weblite.jdeploy.app.AppInfo; import ca.weblite.jdeploy.app.JVMSpecification; import ca.weblite.jdeploy.appbundler.Bundler; +import ca.weblite.jdeploy.appbundler.BundlerCall; +import ca.weblite.jdeploy.appbundler.BundlerResult; import ca.weblite.jdeploy.appbundler.BundlerSettings; +import ca.weblite.jdeploy.appbundler.mac.DmgCreator; import ca.weblite.jdeploy.cli.controllers.*; import ca.weblite.jdeploy.di.JDeployModule; import ca.weblite.jdeploy.factories.JDeployKeyProviderFactory; @@ -19,6 +22,7 @@ import ca.weblite.jdeploy.npm.NPM; import ca.weblite.jdeploy.services.*; import ca.weblite.tools.io.*; +import ca.weblite.tools.platform.Platform; import ca.weblite.tools.security.KeyProvider; import com.codename1.io.JSONParser; import com.codename1.processing.Result; @@ -34,6 +38,7 @@ import java.nio.file.attribute.PosixFilePermission; import java.util.*; import java.util.List; +import java.util.concurrent.Callable; import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.Manifest; @@ -83,6 +88,8 @@ public class JDeploy { private static final String BUNDLE_MAC_X64 = "mac-x64"; private static final String BUNDLE_MAC_ARM64 = "mac-arm64"; + private static final String BUNDLE_MAC_X64_DMG = "mac-x64-dmg"; + private static final String BUNDLE_MAC_ARM64_DMG = "mac-arm64-dmg"; private static final String BUNDLE_WIN = "win"; private static final String BUNDLE_LINUX = "linux"; @@ -1609,44 +1616,104 @@ private void loadAppInfo(AppInfo appInfo) throws IOException { } - public void macIntelBundle(BundlerSettings bundlerSettings) throws Exception { - bundle(BUNDLE_MAC_X64, bundlerSettings); + public BundlerResult macIntelBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle(BUNDLE_MAC_X64, bundlerSettings); } - public void macArmBundle(BundlerSettings bundlerSettings) throws Exception { - bundle(BUNDLE_MAC_ARM64, bundlerSettings); + public BundlerResult macIntelBundle( + BundlerSettings bundlerSettings, + String overrideDestDir, + String overrideReleaseDir + ) throws Exception { + return bundle(BUNDLE_MAC_X64, bundlerSettings, overrideDestDir, overrideReleaseDir); } - public void windowsBundle(BundlerSettings bundlerSettings) throws Exception { - bundle("win", bundlerSettings); + public BundlerResult macArmBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle(BUNDLE_MAC_ARM64, bundlerSettings); } - public void linuxBundle(BundlerSettings bundlerSettings) throws Exception { - bundle("linux", bundlerSettings); + + public BundlerResult macArmBundle( + BundlerSettings bundlerSettings, + String overrideDestDir, + String overrideReleaseDir + ) throws Exception { + return bundle(BUNDLE_MAC_ARM64, bundlerSettings, overrideDestDir, overrideReleaseDir); + } + + public void macArmDmg(BundlerSettings bundlerSettings, File destDir) throws Exception { + dmg(bundlerSettings, destDir, ".aarch64.dmg", (bundlerSettings1, bundleDestDir, bundleReleaseDir) -> { + return macArmBundle(bundlerSettings1, bundleDestDir, bundleReleaseDir); + }); + } + + public void macIntelDmg(BundlerSettings bundlerSettings, File destDir) throws Exception { + dmg(bundlerSettings, destDir, "-x86_64.dmg", (bundlerSettings1, bundleDestDir, bundleReleaseDir) -> { + return macIntelBundle(bundlerSettings1, bundleDestDir, bundleReleaseDir); + }); + } + + public void dmg( + BundlerSettings bundlerSettings, + File destDir, + String suffix, + BundlerCall bundlerCall + ) throws Exception { + File tmpDir = File.createTempFile("jdeploy", "dmg"); + tmpDir.delete(); + tmpDir.mkdirs(); + try { + + BundlerResult bundleResult = bundlerCall.bundle( + bundlerSettings, + tmpDir.getAbsolutePath(), + tmpDir.getAbsolutePath() + ); + String appName = bundleResult.getOutputFile().getName(); + String appNameWithoutExtension = appName.substring(0, appName.lastIndexOf(".")); + String dmgName = appNameWithoutExtension + suffix; + DmgCreator.createDmg( + bundleResult.getOutputFile().getAbsolutePath(), + new File(destDir, dmgName).getAbsolutePath() + ); + + } finally { + FileUtils.deleteDirectory(tmpDir); + } } - public void windowsInstallerBundle(BundlerSettings bundlerSettings) throws Exception { - bundle("win-installer", bundlerSettings); + + public BundlerResult windowsBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle("win", bundlerSettings); + } + public BundlerResult linuxBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle("linux", bundlerSettings); + } + + public BundlerResult windowsInstallerBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle("win-installer", bundlerSettings); } - public void linuxInstallerBundle(BundlerSettings bundlerSettings) throws Exception { - bundle("linux-installer", bundlerSettings); + public BundlerResult linuxInstallerBundle(BundlerSettings bundlerSettings) throws Exception { + return bundle("linux-installer", bundlerSettings); } - public void allBundles(BundlerSettings bundlerSettings) throws Exception { + public Map allBundles(BundlerSettings bundlerSettings) throws Exception { Set bundles = bundles(); + Map results = new HashMap<>(); if (bundles.contains("mac") || bundles.contains(BUNDLE_MAC_X64)) { - macIntelBundle(bundlerSettings); + results.put(BUNDLE_MAC_X64, macIntelBundle(bundlerSettings)); } if (bundles.contains(BUNDLE_MAC_ARM64)) { - macArmBundle(bundlerSettings); + results.put(BUNDLE_MAC_ARM64, macArmBundle(bundlerSettings)); } if (bundles.contains(BUNDLE_WIN)) { - windowsBundle(bundlerSettings); + results.put(BUNDLE_WIN, windowsBundle(bundlerSettings)); } if (bundles.contains(BUNDLE_LINUX)) { - linuxBundle(bundlerSettings); + results.put(BUNDLE_LINUX, linuxBundle(bundlerSettings)); } + return results; } public void allInstallers() throws Exception { @@ -1665,23 +1732,36 @@ public void allInstallers(BundlerSettings bundlerSettings) throws Exception { } } - public void bundle(String target) throws Exception { - bundle(target, new BundlerSettings()); + public BundlerResult bundle(String target) throws Exception { + return bundle(target, new BundlerSettings()); } - public void bundle(String target, BundlerSettings bundlerSettings) throws Exception { + public BundlerResult bundle( + String target, + BundlerSettings bundlerSettings + ) throws Exception { + return bundle(target, bundlerSettings, null, null); + } + + public BundlerResult bundle( + String target, + BundlerSettings bundlerSettings, + String overrideDestDir, + String overrideReleaseDir + ) throws Exception { AppInfo appInfo = new AppInfo(); loadAppInfo(appInfo); if (bundlerSettings.getSource() != null) { appInfo.setNpmSource(bundlerSettings.getSource()); } - Bundler.runit( + return Bundler.runit( bundlerSettings, appInfo, appInfo.getAppURL().toString(), - target, "jdeploy" + File.separator + "bundles", - "jdeploy" + File.separator + "releases" + target, + overrideDestDir == null ? "jdeploy" + File.separator + "bundles" : overrideDestDir, + overrideReleaseDir == null ? "jdeploy" + File.separator + "releases" : overrideReleaseDir ); } @@ -1728,6 +1808,22 @@ public void installer(String target, String version, BundlerSettings bundlerSett _newName = _newName.replace("${{ platform }}", BUNDLE_MAC_ARM64); installerZip = new File(installerDir, _newName + ".tar"); FileUtils.copyInputStreamToFile(JDeploy.class.getResourceAsStream("/jdeploy-installer-mac-arm64.tar"), installerZip); + } else if (target.equals(BUNDLE_MAC_ARM64_DMG)) { + if (!Platform.getSystemPlatform().isMac()) { + out.println("DMG bundling is only supported on macOS. Skipping DMG generation"); + return; + } + + macArmDmg(bundlerSettings, installerDir); + return; + } else if (target.equals(BUNDLE_MAC_X64_DMG)) { + if (!Platform.getSystemPlatform().isMac()) { + out.println("DMG bundling is only supported on macOS. Skipping DMG generation"); + return; + } + + macIntelDmg(bundlerSettings, installerDir); + return; } else if (target.equals(BUNDLE_WIN)) { _newName = _newName.replace("${{ platform }}", "win-x64"); installerZip = new File(installerDir, _newName + ".exe"); @@ -2607,7 +2703,10 @@ public static void main(String[] args) { } } - if ("cheerpj".equals(args[0])) { + if ("dmg".equals(args[0])) { + prog.overrideInstallers(BUNDLE_MAC_X64_DMG, BUNDLE_MAC_ARM64_DMG); + prog.allInstallers(); + } else if ("cheerpj".equals(args[0])) { String[] cheerpjArgs = new String[args.length-1]; System.arraycopy(args, 1, cheerpjArgs, 0, cheerpjArgs.length); prog.cheerpjCLI(cheerpjArgs); diff --git a/shared/src/main/java/ca/weblite/jdeploy/appbundler/AppDescription.java b/shared/src/main/java/ca/weblite/jdeploy/appbundler/AppDescription.java index c68671b4..4b961823 100644 --- a/shared/src/main/java/ca/weblite/jdeploy/appbundler/AppDescription.java +++ b/shared/src/main/java/ca/weblite/jdeploy/appbundler/AppDescription.java @@ -33,6 +33,7 @@ public class AppDescription { private String macBundleId; private boolean enableMacCodeSigning; private boolean enableMacNotarization; + private String macCertificateName; private String macDeveloperID; private String macNotarizationPassword; diff --git a/shared/src/main/java/ca/weblite/jdeploy/appbundler/BundlerCall.java b/shared/src/main/java/ca/weblite/jdeploy/appbundler/BundlerCall.java new file mode 100644 index 00000000..cc35c40a --- /dev/null +++ b/shared/src/main/java/ca/weblite/jdeploy/appbundler/BundlerCall.java @@ -0,0 +1,5 @@ +package ca.weblite.jdeploy.appbundler; + +public interface BundlerCall { + public BundlerResult bundle(BundlerSettings settings, String destDir, String releaseDir) throws Exception; +} diff --git a/shared/src/main/java/ca/weblite/jdeploy/appbundler/mac/DmgCreator.java b/shared/src/main/java/ca/weblite/jdeploy/appbundler/mac/DmgCreator.java new file mode 100644 index 00000000..6d36236f --- /dev/null +++ b/shared/src/main/java/ca/weblite/jdeploy/appbundler/mac/DmgCreator.java @@ -0,0 +1,153 @@ +package ca.weblite.jdeploy.appbundler.mac; + +import ca.weblite.jdeploy.appbundler.Bundler; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DmgCreator { + + public static void createDmg(String appPath, String dmgPath) throws IOException, InterruptedException { + File appFile = new File(appPath); + if (!appFile.exists() || !appFile.isDirectory()) { + throw new IllegalArgumentException("The provided app path is not valid."); + } + + String appName = appFile.getName(); + String volumeName = appName.replaceAll("\\.app$", "") + " Installer"; + String dmgName = appName.replaceAll("\\.app$", "") + ".dmg"; + File dmgFile; + if (dmgPath != null) { + dmgFile = new File(dmgPath); + dmgName = dmgFile.getName(); + } else { + dmgFile = new File(appFile.getParentFile(), dmgName); + } + String tempDir = Files.createTempDirectory("dmg").toString(); + String backgroundImg = "background.tiff"; + + // Create temporary directory structure + Files.createDirectories(Paths.get(tempDir, ".background")); + + // Copy the app to the temporary directory + runCommand("cp", "-R", appPath, tempDir); + + // Create alias for /Applications + runCommand("ln", "-s", "/Applications", Paths.get(tempDir, "Applications").toString()); + + copyResourceToDirectory( + "/com/joshondesign/appbundler/mac/dmg/background.tiff", + Paths.get(tempDir, ".background").toString() + ); + + // Create the DMG file + runCommand("hdiutil", "create", "-volname", volumeName, "-srcfolder", tempDir, "-ov", "-format", "UDRW", dmgFile.getPath()); + + // Mount the DMG file + String mountOutput = runCommand("hdiutil", "attach", dmgFile.getPath(), "-readwrite", "-noverify", "-noautoopen", "-verbose"); + // Extract mount point + String mountDir = null; + try (BufferedReader reader = new BufferedReader(new StringReader(mountOutput))) { + String line; + while ((line = reader.readLine()) != null) { + System.out.println("Reading: " + line); + if (line.contains("/Volumes")) { + String[] tokens = line.trim().split("\\s+"); + if (tokens.length >= 3) { + // Combine all tokens from the third one onward to account for spaces in the path + mountDir = String.join(" ", Arrays.copyOfRange(tokens, 2, tokens.length)); + break; + } + } + } + } + + if (mountDir == null) { + throw new IOException("Failed to mount DMG"); + } + try { + System.out.println("Mount dir: " + mountDir); + // Set up the DMG window with AppleScript + String appleScript = String.format( + "tell application \"Finder\"\n" + + " tell disk \"%s\"\n" + + " log \"Opening disk\"\n" + + " open\n" + + " log \"Setting view to icon view\"\n" + + " set current view of container window to icon view\n" + + " log \"Hiding toolbar\"\n" + + " set toolbar visible of container window to false\n" + + " log \"Hiding statusbar\"\n" + + " set statusbar visible of container window to false\n" + + " log \"Setting window bounds\"\n" + + " set the bounds of container window to {400, 100, 900, 450}\n" + + " log \"Setting view options\"\n" + + " set viewOptions to the icon view options of container window\n" + + " log \"Setting arrangement to not arranged\"\n" + + " set arrangement of viewOptions to not arranged\n" + + " log \"Setting icon size\"\n" + + " set icon size of viewOptions to 100\n" + + " log \"Setting background picture\"\n" + + " set background picture of viewOptions to file \".background:%s\"\n" + + " log \"Setting position of the app icon\"\n" + + " set position of item \"%s\" of container window to {100, 150}\n" + + " log \"Setting position of Applications icon\"\n" + + " set position of item \"Applications\" of container window to {400, 150}\n" + + " log \"Updating window\"\n" + + " update without registering applications\n" + + " log \"Delaying for 5 seconds\"\n" + + " delay 5\n" + + " log \"AppleScript execution completed\"\n" + + " end tell\n" + + "end tell\n", + volumeName, backgroundImg, appName + ); + runCommand("osascript", "-e", appleScript); + } finally { + // Unmount the DMG + runCommand("hdiutil", "detach", mountDir); + } + + runCommand("hdiutil", "convert", dmgFile.getPath(), "-format", "UDZO", "-imagekey", "zlib-level=9", "-o", new File(dmgFile.getParentFile(), "compressed.dmg").getPath()); + + runCommand("rm", dmgFile.getPath()); + runCommand("mv", new File(dmgFile.getParentFile(), "compressed.dmg").getPath(), dmgFile.getPath()); + + // Clean up + Files.walk(Paths.get(tempDir)) + .map(Path::toFile) + .forEach(File::delete); + + } + + private static String runCommand(String... command) throws IOException, InterruptedException { + ProcessBuilder pb = new ProcessBuilder(command); + pb.redirectErrorStream(true); + Process process = pb.start(); + + StringBuilder output = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { + String line; + while ((line = reader.readLine()) != null) { + System.out.println(">" + line); + output.append(line).append(System.lineSeparator()); + } + } + + int exitCode = process.waitFor(); + if (exitCode != 0) { + throw new IOException("Command failed with exit code " + exitCode + ": " + + String.join(" ", command) + "\n" + output.toString()); + } + return output.toString(); + } + + private static void copyResourceToDirectory(String resourcePath, String destDir) throws IOException { + Files.copy(DmgCreator.class.getResourceAsStream(resourcePath), Paths.get(destDir).resolve(resourcePath.substring(resourcePath.lastIndexOf('/') + 1))); + } +} diff --git a/shared/src/main/resources/com/joshondesign/appbundler/mac/dmg/background.tiff b/shared/src/main/resources/com/joshondesign/appbundler/mac/dmg/background.tiff new file mode 100644 index 0000000000000000000000000000000000000000..5e8899fa4b02d46b92e7cf287fac0f4299079ba5 GIT binary patch literal 46112 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 z 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

NN6r9`c;W|zTMGFm8 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 M812mL`tR=k7mW^7%>V!Z literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorBundleJRECodesignDMG/.gitignore b/tests/projects/TextEditorBundleJRECodesignDMG/.gitignore new file mode 100644 index 00000000..2eea525d --- /dev/null +++ b/tests/projects/TextEditorBundleJRECodesignDMG/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/tests/projects/TextEditorBundleJRECodesignDMG/icon.png b/tests/projects/TextEditorBundleJRECodesignDMG/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4aefab9037723c39d9e94b0bab5676720b30fcdd GIT binary patch literal 12321 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 literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorBundleJRECodesignDMG/package.json b/tests/projects/TextEditorBundleJRECodesignDMG/package.json new file mode 100644 index 00000000..bf9efef5 --- /dev/null +++ b/tests/projects/TextEditorBundleJRECodesignDMG/package.json @@ -0,0 +1,57 @@ +{ + "bin": { + "texteditor": "jdeploy-bundle/jdeploy.js" + }, + "author": "Steve Hannah", + "description": "A text editor", + "main": "index.js", + "preferGlobal": true, + "repository": "https://github.com/shannah/jdeploy-demo-texteditor", + "version": "0.0.0-JDEPLOY-SNAPSHOT", + "jdeploy": { + "codesign": true, + "notarize": true, + "jdk": false, + "bundleJVM": true, + "javaVersion": "11", + "documentTypes": [ + { + "editor": true, + "extension": "txt", + "mimetype": "text/plain" + }, + { + "extension": "html", + "mimetype": "text/html" + }, + { + "extension": "jdtext", + "mimetype": "application/x-jdeploy-demo-texteditor-jdtext" + } + ], + "urlSchemes": [ + "jdtext" + ], + "jar": "target/TextEditor-1.0-SNAPSHOT.jar", + "javafx": true, + "title": "Text Editor", + "bundles": [ + "mac-arm64" + ] + }, + "dependencies": { + "command-exists-promise": "^2.0.2", + "node-fetch": "2.6.7", + "tar": "^4.4.8", + "yauzl": "^2.10.0", + "shelljs": "^0.8.4" + }, + "license": "ISC", + "name": "jdeploy-demo-texteditor", + "files": [ + "jdeploy-bundle" + ], + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + } +} diff --git a/tests/projects/TextEditorBundleJRECodesignDMG/target/TextEditor-1.0-SNAPSHOT.jar b/tests/projects/TextEditorBundleJRECodesignDMG/target/TextEditor-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..1f2864105340ebe94bfd45c944c6fa2e044d1c5f GIT binary patch literal 6942 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 literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorBundleJRECodesignDMG/test.sh b/tests/projects/TextEditorBundleJRECodesignDMG/test.sh new file mode 100644 index 00000000..4e0a7752 --- /dev/null +++ b/tests/projects/TextEditorBundleJRECodesignDMG/test.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -e + +if [ -f .env ]; then + source .env +fi + +if [ "$(uname)" != "Darwin" ]; then + echo "Skipping test because it is not being run on a mac" + exit 0 +fi + +if [ -z "$JDEPLOY_MAC_NOTARIZATION_PASSWORD" ]; then + echo "Skipping test because JDEPLOY_MAC_NOTARIZATION_PASSWORD environment variable is not set" + exit 0 +fi + +if [ -z "$JDEPLOY_MAC_DEVELOPER_ID" ]; then + echo "Skipping test because JDEPLOY_MAC_DEVELOPER_ID environment variable is not set" + exit 0 +fi + +if [ -z "$JDEPLOY_MAC_DEVELOPER_TEAM_ID" ]; then + echo "Skipping test because JDEPLOY_MAC_DEVELOPER_TEAM_ID environment variable is not set" + exit 0 +fi + +if [ -z "$JDEPLOY_MAC_DEVELOPER_CERTIFICATE_NAME" ]; then + echo "Skipping test because JDEPLOY_MAC_DEVELOPER_CERTIFICATE_NAME environment variable is not set" + exit 0 +fi + +echo "Running test with TextEditor project in $(pwd)" +if [ -z "$JDEPLOY" ]; then + echo "JDEPLOY environment variable must be set" + exit 1 +fi +java -jar "$JDEPLOY" clean +java -jar "$JDEPLOY" dmg \ No newline at end of file diff --git a/tests/projects/TextEditorMacBundleJREDMG/icon.png b/tests/projects/TextEditorMacBundleJREDMG/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4aefab9037723c39d9e94b0bab5676720b30fcdd GIT binary patch literal 12321 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 literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorMacBundleJREDMG/package.json b/tests/projects/TextEditorMacBundleJREDMG/package.json new file mode 100644 index 00000000..437ae980 --- /dev/null +++ b/tests/projects/TextEditorMacBundleJREDMG/package.json @@ -0,0 +1,36 @@ +{ + "bin": { + "jdeploy-it-test-project": "jdeploy-bundle/jdeploy.js" + }, + "author": "", + "description": "jDeploy Integration Test Project", + "main": "index.js", + "preferGlobal": true, + "repository": "", + "source": "https://github.com/shannah/jdeploy-it-test-project", + "version": "0.0.0-master", + "jdeploy": { + "jdk": false, + "bundleJVM": true, + "javaVersion": "17", + "jar": "target/jdeploy-it-test-project-1.0-SNAPSHOT.jar", + "javafx": false, + "title": "Jdeploy It Test Project", + "commitHash": "f5ebc668b69b2b0b12e7e2ead2b75d56be3efe3b" + }, + "dependencies": { + "command-exists-promise": "^2.0.2", + "node-fetch": "2.6.7", + "shelljs": "^0.8.4", + "tar": "^4.4.8", + "yauzl": "^2.10.0" + }, + "license": "ISC", + "name": "jdeploy-it-test-project", + "files": [ + "jdeploy-bundle" + ], + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + } +} diff --git a/tests/projects/TextEditorMacBundleJREDMG/target/icon.png b/tests/projects/TextEditorMacBundleJREDMG/target/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4aefab9037723c39d9e94b0bab5676720b30fcdd GIT binary patch literal 12321 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 literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorMacBundleJREDMG/target/jdeploy-it-test-project-1.0-SNAPSHOT.jar b/tests/projects/TextEditorMacBundleJREDMG/target/jdeploy-it-test-project-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..e770d236f0424dac2334108ba11122ef0924c299 GIT binary patch literal 4672 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

`9_>kpWnMO)ujR&qvSpE7ynn3)fBSyqKg)?V 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 XXyA4L42%}|C4dYDmO}yjhYR+93lrH* literal 0 HcmV?d00001 diff --git a/tests/projects/TextEditorMacBundleJREDMG/test.sh b/tests/projects/TextEditorMacBundleJREDMG/test.sh new file mode 100644 index 00000000..6ec01e41 --- /dev/null +++ b/tests/projects/TextEditorMacBundleJREDMG/test.sh @@ -0,0 +1,108 @@ +#!/bin/bash +set -e +SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +echo "Running test with JDeploy IT Test project in $(pwd)" + +if [ "$(uname)" != "Darwin" ]; then + echo "Skipping test because it is not being run on a mac" + exit 0 +fi + +if [ -z "$JDEPLOY" ]; then + echo "JDEPLOY environment variable must be set" + exit 1 +fi + +# if running on macOS on ARM, then add the mac-arm64 bundle to the bundles array +if [ "$(uname)" == "Darwin" ] && [ "$(uname -m)" == "arm64" ]; then + BUNDLES='["mac-arm64"]' + LAUNCHER_PATH=./jdeploy/bundles/mac-arm64/Jdeploy\ It\ Test\ Project.app/Contents/MacOS/Client4JLauncher + EXPECTED_JRE_PATH=./jdeploy/bundles/mac-arm64/Jdeploy\ It\ Test\ Project.app/Contents/jre +fi + +# if running on macOS on Intel, then add the mac-x64 bundle to the bundles array +if [ "$(uname)" == "Darwin" ] && [ "$(uname -m)" == "x86_64" ]; then + BUNDLES='["mac-x64"]' + LAUNCHER_PATH=./jdeploy/bundles/mac-x64/Jdeploy\ It\ Test\ Project.app/Contents/MacOS/Client4JLauncher + EXPECTED_JRE_PATH=./jdeploy/bundles/mac-x64/Jdeploy\ It\ Test\ Project.app/Contents/jre +fi + +# if bundles not set, then skip this test as we are obviously not running on a target platform +if [ -z "$BUNDLES" ]; then + echo "Skipping test because we are not running on a target platform. Found platform $(uname) $(uname -m)" + exit 0 +fi + +if [ -f "$LAUNCHER_PATH" ]; then + rm -f "$LAUNCHER_PATH" +fi + +JDEPLOY_CONFIG="$(printf '{"jdeployHome": "%s", "bundles": %s}' "$SCRIPTPATH/jdeploy/home" "$BUNDLES" )" java -jar "$JDEPLOY" clean package +if [ ! -d "jdeploy-bundle" ]; then + echo "Missing jdeploy-bundle\n" + exit 1 +fi + +if [ ! -f "jdeploy-bundle/jdeploy-it-test-project-1.0-SNAPSHOT.jar" ]; then + echo "jdeploy package did not copy jar file correctly." + exit 1 +fi + +if [ ! -f "jdeploy-bundle/icon.png" ]; then + echo "jdeploy package did not copy icon file correctly." + exit 1 +fi + +if [ ! -f "jdeploy-bundle/jdeploy.js" ]; then + echo "jdeploy package did not copy jdeploy.js file correctly." + exit 1 +fi + +if [ ! -d "$EXPECTED_JRE_PATH" ]; then + echo "Expected JRE path $EXPECTED_JRE_PATH does not exist" + exit 1 +fi + +echo "JDeploy IT Test project bundle test passed" + +if [ -f "$HOME/jdeploy-it-test-project.json" ]; then + rm "$HOME/jdeploy-it-test-project.json" +fi + + +# Check that launcher was created +if [ ! -f "$LAUNCHER_PATH" ]; then + echo "Expected launcher to be created at $LAUNCHER_PATH, but it was not found" + echo "Contents of $bundles directory:" + find ./jdeploy/bundles + exit 1 +else + echo "Launcher was created successfully at $LAUNCHER_PATH" +fi + +echo "Testing launcher" +"$LAUNCHER_PATH" +echo "Launcher appeared to launch successfully. Waiting 5 seconds before checking for jdeploy-it-test-project.json" + +sleep 5 + +# Check if the jdeploy-it-test-project.json file was created +if [ ! -f "$HOME/jdeploy-it-test-project.json" ]; then + echo "jdeploy-it-test-project.json file was not created" + exit 1 +else + echo "jdeploy-it-test-project.json file was created" +fi + +# Ensure that no directories starting with "jre" are in the jdeploy home directory +if [ -d "$SCRIPTPATH/jdeploy/home" ]; then + JRE_DIRS=$(find "$SCRIPTPATH/jdeploy/home" -type d -name "jre*") + if [ -n "$JRE_DIRS" ]; then + echo "Found unexpected directories starting with 'jre' in the jdeploy home directory:" + echo "$JRE_DIRS" + exit 1 + fi +fi + + diff --git a/tests/projects/test.sh b/tests/projects/test.sh index 3f42ebb5..b27b10b4 100644 --- a/tests/projects/test.sh +++ b/tests/projects/test.sh @@ -18,5 +18,7 @@ cd ../TextEditorCodesign bash test.sh cd ../TextEditorBundleJRECodesign bash test.sh +cd ../TextEditorBundleJRECodesignDMG +bash test.sh cd ../LauncherTest1 bash test.sh \ No newline at end of file