diff --git a/dist/setup/index.js b/dist/setup/index.js index 38e8e611e..383d6655f 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -67369,6 +67369,7 @@ function installGraalPy(graalpyVersion, architecture, allowPreReleases, releases installDir = yield tc.cacheDir(toolDir, 'GraalPy', resolvedGraalPyVersion, architecture); } const binaryPath = getGraalPyBinaryPath(installDir); + yield createGraalPySymlink(binaryPath, resolvedGraalPyVersion); yield installPip(binaryPath); return { installDir, resolvedGraalPyVersion }; } @@ -67403,6 +67404,19 @@ function getAvailableGraalPyVersions() { }); } exports.getAvailableGraalPyVersions = getAvailableGraalPyVersions; +function createGraalPySymlink(graalpyBinaryPath, graalpyVersion) { + return __awaiter(this, void 0, void 0, function* () { + const version = semver.coerce(graalpyVersion); + const pythonBinaryPostfix = semver.major(version); + const pythonMinor = semver.minor(version); + const graalpyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; + const binaryExtension = utils_1.IS_WINDOWS ? '.exe' : ''; + core.info('Creating symlinks...'); + utils_1.createSymlinkInFolder(graalpyBinaryPath, `graalpy${binaryExtension}`, `python${pythonBinaryPostfix}${binaryExtension}`, true); + utils_1.createSymlinkInFolder(graalpyBinaryPath, `graalpy${binaryExtension}`, `python${binaryExtension}`, true); + utils_1.createSymlinkInFolder(graalpyBinaryPath, `graalpy${binaryExtension}`, `graalpy${graalpyMajorMinorBinaryPostfix}${binaryExtension}`, true); + }); +} function installPip(pythonLocation) { return __awaiter(this, void 0, void 0, function* () { core.info('Installing and updating pip'); diff --git a/src/install-graalpy.ts b/src/install-graalpy.ts index e155db160..608bcf0a3 100644 --- a/src/install-graalpy.ts +++ b/src/install-graalpy.ts @@ -11,6 +11,7 @@ import { IS_WINDOWS, IGraalPyManifestAsset, IGraalPyManifestRelease, + createSymlinkInFolder, isNightlyKeyword } from './utils'; @@ -74,6 +75,7 @@ export async function installGraalPy( } const binaryPath = getGraalPyBinaryPath(installDir); + await createGraalPySymlink(binaryPath, resolvedGraalPyVersion); await installPip(binaryPath); return {installDir, resolvedGraalPyVersion}; @@ -112,6 +114,39 @@ export async function getAvailableGraalPyVersions() { return response.result; } +async function createGraalPySymlink( + graalpyBinaryPath: string, + graalpyVersion: string +) { + const version = semver.coerce(graalpyVersion)!; + const pythonBinaryPostfix = semver.major(version); + const pythonMinor = semver.minor(version); + const graalpyMajorMinorBinaryPostfix = `${pythonBinaryPostfix}.${pythonMinor}`; + const binaryExtension = IS_WINDOWS ? '.exe' : ''; + + core.info('Creating symlinks...'); + createSymlinkInFolder( + graalpyBinaryPath, + `graalpy${binaryExtension}`, + `python${pythonBinaryPostfix}${binaryExtension}`, + true + ); + + createSymlinkInFolder( + graalpyBinaryPath, + `graalpy${binaryExtension}`, + `python${binaryExtension}`, + true + ); + + createSymlinkInFolder( + graalpyBinaryPath, + `graalpy${binaryExtension}`, + `graalpy${graalpyMajorMinorBinaryPostfix}${binaryExtension}`, + true + ); +} + async function installPip(pythonLocation: string) { core.info('Installing and updating pip'); const pythonBinary = path.join(pythonLocation, 'python');