From 66691819c83954a6cfa0158e59ea51e7f2a9c293 Mon Sep 17 00:00:00 2001 From: Mark Cafaro <34887852+mcafaro@users.noreply.github.com> Date: Wed, 6 Mar 2024 11:12:58 -0500 Subject: [PATCH] Add Apple Silicon support (#54) --- scripts/setupdeps.sh | 2 +- src/matlab.ts | 8 ++++++-- src/matlab.unit.test.ts | 9 +++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/setupdeps.sh b/scripts/setupdeps.sh index 1d34721..03c404e 100755 --- a/scripts/setupdeps.sh +++ b/scripts/setupdeps.sh @@ -1,7 +1,7 @@ #!/bin/bash RMC_BASE_URL='https://ssd.mathworks.com/supportfiles/ci/run-matlab-command/v2' -SUPPORTED_OS=('win64' 'maci64' 'glnxa64') +SUPPORTED_OS=('win64' 'maci64' 'maca64' 'glnxa64') # Create dist directory if it doesn't already exist DISTDIR="$(pwd)/dist/bin" diff --git a/src/matlab.ts b/src/matlab.ts index 6017d97..1e72ba1 100644 --- a/src/matlab.ts +++ b/src/matlab.ts @@ -78,7 +78,7 @@ export async function runCommand(hs: HelperScript, platform: string, architectur * @param architecture Architecture of the runner (e.g., "x64") */ export function getRunMATLABCommandScriptPath(platform: string, architecture: string): string { - if (architecture != "x64") { + if (architecture != "x64" && !(platform == "darwin" && architecture == "arm64")) { throw new Error(`This action is not supported on ${platform} runners using the ${architecture} architecture.`); } let ext; @@ -90,7 +90,11 @@ export function getRunMATLABCommandScriptPath(platform: string, architecture: st break; case "darwin": ext = ""; - platformDir = "maci64"; + if (architecture == "x64") { + platformDir = "maci64"; + } else { + platformDir = "maca64"; + } break; case "linux": ext = ""; diff --git a/src/matlab.unit.test.ts b/src/matlab.unit.test.ts index fd1dce2..aaee70d 100644 --- a/src/matlab.unit.test.ts +++ b/src/matlab.unit.test.ts @@ -135,7 +135,7 @@ describe("ci helper path", () => { }); }; - const testDirectory = (platform: string, subdirectory: string) => { + const testDirectory = (platform: string, architecture: string, subdirectory: string) => { it(`considers the appropriate script on ${platform}`, () => { const actualPath = matlab.getRunMATLABCommandScriptPath(platform, architecture); expect(actualPath).toContain(subdirectory); @@ -146,9 +146,10 @@ describe("ci helper path", () => { testExtension("darwin", ""); testExtension("linux", ""); - testDirectory("win32", "win64"); - testDirectory("darwin", "maci64"); - testDirectory("linux", "glnxa64"); + testDirectory("win32", "x64", "win64"); + testDirectory("darwin", "x64", "maci64"); + testDirectory("darwin", "arm64", "maca64"); + testDirectory("linux", "x64", "glnxa64"); it("errors on unsupported platform", () => { expect(() => matlab.getRunMATLABCommandScriptPath('sunos',architecture)).toThrow();