mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-02-16 04:56:53 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b315a4d988 |
10
.github/dependabot.yml
vendored
10
.github/dependabot.yml
vendored
@@ -5,13 +5,3 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: daily
|
interval: daily
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
|
|
||||||
- package-ecosystem: 'github-actions'
|
|
||||||
directory: '/'
|
|
||||||
schedule:
|
|
||||||
interval: 'daily'
|
|
||||||
|
|
||||||
- package-ecosystem: npm
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: monthly
|
|
||||||
|
|||||||
4
.github/workflows/backup.yml
vendored
4
.github/workflows/backup.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Configure cache
|
- name: Configure cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
${{ env.GITHUB_WORKSPACE }}
|
${{ env.GITHUB_WORKSPACE }}
|
||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
key: ${{ runner.os }}
|
key: ${{ runner.os }}
|
||||||
|
|
||||||
- name: Install the correct Python version
|
- name: Install the correct Python version
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
|
|
||||||
|
|||||||
8
.github/workflows/checkin.yml
vendored
8
.github/workflows/checkin.yml
vendored
@@ -12,14 +12,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
|
|
||||||
- name: "npm ci"
|
- name: "npm ci"
|
||||||
run: npm ci
|
run: npm ci --legacy-peer-deps
|
||||||
|
|
||||||
- name: "npm run build"
|
- name: "npm run build"
|
||||||
run: npm run build
|
run: npm run build
|
||||||
|
|||||||
8
.github/workflows/codeql-analysis.yml
vendored
8
.github/workflows/codeql-analysis.yml
vendored
@@ -42,11 +42,11 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v2
|
uses: github/codeql-action/init@v1
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v2
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -71,4 +71,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v2
|
uses: github/codeql-action/analyze@v1
|
||||||
|
|||||||
10
.github/workflows/example-builds-defaultarch.yml
vendored
10
.github/workflows/example-builds-defaultarch.yml
vendored
@@ -23,17 +23,11 @@ jobs:
|
|||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v1.0.0
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install --legacy-peer-deps
|
||||||
npm run build
|
npm run build
|
||||||
npm run pack
|
npm run pack
|
||||||
|
|
||||||
|
|||||||
@@ -18,21 +18,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: [nightly, 1.10-nightly]
|
julia-version: [nightly, 1.8-nightly]
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v1.0.0
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install --legacy-peer-deps
|
||||||
npm run build
|
npm run build
|
||||||
npm run pack
|
npm run pack
|
||||||
|
|
||||||
|
|||||||
12
.github/workflows/example-builds-nightly.yml
vendored
12
.github/workflows/example-builds-nightly.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: [nightly, 1.10-nightly]
|
julia-version: [nightly, 1.8-nightly]
|
||||||
julia-arch: [x64, x86]
|
julia-arch: [x64, x86]
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# 32-bit Julia binaries are not available on macOS
|
||||||
@@ -29,17 +29,11 @@ jobs:
|
|||||||
julia-arch: x86
|
julia-arch: x86
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v1.0.0
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install --legacy-peer-deps
|
||||||
npm run build
|
npm run build
|
||||||
npm run pack
|
npm run pack
|
||||||
|
|
||||||
|
|||||||
10
.github/workflows/example-builds.yml
vendored
10
.github/workflows/example-builds.yml
vendored
@@ -28,17 +28,11 @@ jobs:
|
|||||||
julia-arch: x86
|
julia-arch: x86
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v1.0.0
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install --legacy-peer-deps
|
||||||
npm run build
|
npm run build
|
||||||
npm run pack
|
npm run pack
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# setup-julia Action
|
# setup-julia Action
|
||||||
|
|
||||||
[](https://securitylab.github.com/tools/codeql)
|
[](https://securitylab.github.com/tools/codeql)
|
||||||
|
[](https://dependabot.com)
|
||||||
|
|
||||||
This action sets up a Julia environment for use in actions by downloading a specified version of Julia and adding it to PATH.
|
This action sets up a Julia environment for use in actions by downloading a specified version of Julia and adding it to PATH.
|
||||||
|
|
||||||
@@ -97,9 +98,7 @@ steps:
|
|||||||
|
|
||||||
You can either specify specific Julia versions or version ranges. If you specify a version range, the **highest** available Julia version that matches the range will be selected.
|
You can either specify specific Julia versions or version ranges. If you specify a version range, the **highest** available Julia version that matches the range will be selected.
|
||||||
|
|
||||||
> **Warning**
|
**Warning:** It is strongly recommended to wrap versions in quotes. Otherwise, the YAML parser used by GitHub Actions parses certain versions as numbers which causes the wrong version to be selected. For example, `1.0` may be parsed as `1`.
|
||||||
>
|
|
||||||
> It is strongly recommended to wrap versions in quotes. Otherwise, the YAML parser used by GitHub Actions parses certain versions as numbers which causes the wrong version to be selected. For example, `1.0` may be parsed as `1`.
|
|
||||||
|
|
||||||
#### Examples
|
#### Examples
|
||||||
|
|
||||||
@@ -141,7 +140,7 @@ If you want to run tests against the latest tagged version, no matter what versi
|
|||||||
|
|
||||||
#### Recently released versions
|
#### Recently released versions
|
||||||
|
|
||||||
The available Julia versions are pulled from [`versions.json`](https://julialang-s3.julialang.org/bin/versions.json).
|
The available Julia versions are pulled from [`versions.json`](https://julialang-s3.julialang.org/bin/versions.json). This file is automatically updated once a day. Therefore it may take up to 24 hours until a newly released Julia version is available in the action.
|
||||||
|
|
||||||
### Matrix Testing
|
### Matrix Testing
|
||||||
|
|
||||||
|
|||||||
2
bin
2
bin
Submodule bin updated: 047c0c66bc...31b4b500a3
12465
dist/index.js
vendored
12465
dist/index.js
vendored
File diff suppressed because it is too large
Load Diff
BIN
dist/unzip
vendored
Normal file
BIN
dist/unzip
vendored
Normal file
Binary file not shown.
60
lib/installer.js
generated
60
lib/installer.js
generated
@@ -1,38 +1,20 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||||
|
result["default"] = mod;
|
||||||
|
return result;
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.showVersionInfo = exports.installJulia = exports.getDownloadURL = exports.getFileInfo = exports.getJuliaVersion = exports.getJuliaVersions = exports.getJuliaVersionInfo = void 0;
|
|
||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const exec = __importStar(require("@actions/exec"));
|
const exec = __importStar(require("@actions/exec"));
|
||||||
const tc = __importStar(require("@actions/tool-cache"));
|
const tc = __importStar(require("@actions/tool-cache"));
|
||||||
@@ -84,9 +66,8 @@ function getJuliaVersionInfo() {
|
|||||||
const versionsFile = yield retry((bail) => __awaiter(this, void 0, void 0, function* () {
|
const versionsFile = yield retry((bail) => __awaiter(this, void 0, void 0, function* () {
|
||||||
return yield tc.downloadTool('https://julialang-s3.julialang.org/bin/versions.json');
|
return yield tc.downloadTool('https://julialang-s3.julialang.org/bin/versions.json');
|
||||||
}), {
|
}), {
|
||||||
retries: 5,
|
|
||||||
onRetry: (err) => {
|
onRetry: (err) => {
|
||||||
core.info(`Download of versions.json failed, trying again. Error: ${err}`);
|
core.debug(`Download of versions.json failed, trying again. Error: ${err}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return JSON.parse(fs.readFileSync(versionsFile).toString());
|
return JSON.parse(fs.readFileSync(versionsFile).toString());
|
||||||
@@ -126,9 +107,9 @@ function getDesiredFileExts() {
|
|||||||
let hasFileExt2;
|
let hasFileExt2;
|
||||||
let fileExt2;
|
let fileExt2;
|
||||||
if (osPlat == 'win32') {
|
if (osPlat == 'win32') {
|
||||||
fileExt1 = 'tar.gz';
|
fileExt1 = 'exe';
|
||||||
hasFileExt2 = true;
|
hasFileExt2 = false;
|
||||||
fileExt2 = 'exe';
|
fileExt2 = '';
|
||||||
}
|
}
|
||||||
else if (osPlat == 'darwin') {
|
else if (osPlat == 'darwin') {
|
||||||
fileExt1 = 'tar.gz';
|
fileExt1 = 'tar.gz';
|
||||||
@@ -227,9 +208,8 @@ function installJulia(versionInfo, version, arch) {
|
|||||||
const juliaDownloadPath = yield retry((bail) => __awaiter(this, void 0, void 0, function* () {
|
const juliaDownloadPath = yield retry((bail) => __awaiter(this, void 0, void 0, function* () {
|
||||||
return yield tc.downloadTool(downloadURL);
|
return yield tc.downloadTool(downloadURL);
|
||||||
}), {
|
}), {
|
||||||
retries: 5,
|
|
||||||
onRetry: (err) => {
|
onRetry: (err) => {
|
||||||
core.info(`Download of ${downloadURL} failed, trying again. Error: ${err}`);
|
core.debug(`Download of ${downloadURL} failed, trying again. Error: ${err}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Verify checksum
|
// Verify checksum
|
||||||
@@ -251,18 +231,12 @@ function installJulia(versionInfo, version, arch) {
|
|||||||
yield exec.exec('tar', ['xf', juliaDownloadPath, '--strip-components=1', '-C', tempInstallDir]);
|
yield exec.exec('tar', ['xf', juliaDownloadPath, '--strip-components=1', '-C', tempInstallDir]);
|
||||||
return tempInstallDir;
|
return tempInstallDir;
|
||||||
case 'win32':
|
case 'win32':
|
||||||
if (fileInfo !== null && fileInfo.extension == 'exe') {
|
if (version.endsWith('nightly') || semver.gtr(version, '1.3', { includePrerelease: true })) {
|
||||||
if (version.endsWith('nightly') || semver.gtr(version, '1.3', { includePrerelease: true })) {
|
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
|
||||||
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
|
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
|
||||||
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// This is the more common path. Using .tar.gz is much faster
|
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
|
||||||
yield exec.exec('powershell', ['-Command', `tar xf ${juliaDownloadPath} --strip-components=1 -C ${tempInstallDir}`]);
|
|
||||||
}
|
}
|
||||||
return tempInstallDir;
|
return tempInstallDir;
|
||||||
case 'darwin':
|
case 'darwin':
|
||||||
|
|||||||
38
lib/setup-julia.js
generated
38
lib/setup-julia.js
generated
@@ -1,36 +1,19 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||||
|
result["default"] = mod;
|
||||||
|
return result;
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const tc = __importStar(require("@actions/tool-cache"));
|
const tc = __importStar(require("@actions/tool-cache"));
|
||||||
@@ -44,8 +27,7 @@ const archSynonyms = {
|
|||||||
'x64': 'x64',
|
'x64': 'x64',
|
||||||
'X64': 'x64',
|
'X64': 'x64',
|
||||||
'aarch64': 'aarch64',
|
'aarch64': 'aarch64',
|
||||||
'ARM64': 'aarch64',
|
'ARM64': 'aarch64'
|
||||||
'arm64': 'aarch64'
|
|
||||||
};
|
};
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
@@ -96,7 +78,7 @@ function run() {
|
|||||||
juliaPath = yield tc.cacheDir(juliaInstallationPath, 'julia', version, arch);
|
juliaPath = yield tc.cacheDir(juliaInstallationPath, 'julia', version, arch);
|
||||||
core.debug(`added Julia to cache: ${juliaPath}`);
|
core.debug(`added Julia to cache: ${juliaPath}`);
|
||||||
// Remove temporary dir
|
// Remove temporary dir
|
||||||
fs.rmSync(juliaInstallationPath, { recursive: true });
|
fs.rmdirSync(juliaInstallationPath, { recursive: true });
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.debug(`using cached version of Julia: ${juliaPath}`);
|
core.debug(`using cached version of Julia: ${juliaPath}`);
|
||||||
|
|||||||
17984
package-lock.json
generated
17984
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
35
package.json
35
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "1.9.4",
|
"version": "1.9.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "setup Julia action",
|
"description": "setup Julia action",
|
||||||
"main": "lib/setup-julia.js",
|
"main": "lib/setup-julia.js",
|
||||||
@@ -22,24 +22,23 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.0",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.0.0",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.0.0",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^1.0.0",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.1",
|
||||||
"semver": "^7.5.4"
|
"semver": "^6.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.5",
|
"@types/async-retry": "^1.4.2",
|
||||||
"@types/jest": "^29.5.0",
|
"@types/jest": "^24.0.13",
|
||||||
"@types/node": "^18.14.2",
|
"@types/node": "^12.12.7",
|
||||||
"@types/retry": "^0.12.2",
|
"@types/semver": "^6.0.0",
|
||||||
"@types/semver": "^7.5.6",
|
"@zeit/ncc": "^0.22.0",
|
||||||
"@vercel/ncc": "^0.36.1",
|
"jest": "^24.8.0",
|
||||||
"jest": "^29.5.0",
|
"jest-circus": "^24.7.1",
|
||||||
"jest-circus": "^29.5.0",
|
"nock": "^11.7.2",
|
||||||
"nock": "^13.3.8",
|
"prettier": "^1.17.1",
|
||||||
"prettier": "^3.1.0",
|
"ts-jest": "^26.0.0",
|
||||||
"ts-jest": "^29.0.5",
|
"typescript": "^3.5.1"
|
||||||
"typescript": "^5.3.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,9 +54,8 @@ export async function getJuliaVersionInfo(): Promise<object> {
|
|||||||
const versionsFile = await retry(async (bail: Function) => {
|
const versionsFile = await retry(async (bail: Function) => {
|
||||||
return await tc.downloadTool('https://julialang-s3.julialang.org/bin/versions.json')
|
return await tc.downloadTool('https://julialang-s3.julialang.org/bin/versions.json')
|
||||||
}, {
|
}, {
|
||||||
retries: 5,
|
|
||||||
onRetry: (err: Error) => {
|
onRetry: (err: Error) => {
|
||||||
core.info(`Download of versions.json failed, trying again. Error: ${err}`)
|
core.debug(`Download of versions.json failed, trying again. Error: ${err}`)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -100,9 +99,9 @@ function getDesiredFileExts(): [string, boolean, string] {
|
|||||||
let fileExt2: string
|
let fileExt2: string
|
||||||
|
|
||||||
if (osPlat == 'win32') {
|
if (osPlat == 'win32') {
|
||||||
fileExt1 = 'tar.gz'
|
fileExt1 = 'exe'
|
||||||
hasFileExt2 = true
|
hasFileExt2 = false
|
||||||
fileExt2 = 'exe'
|
fileExt2 = ''
|
||||||
} else if (osPlat == 'darwin') {
|
} else if (osPlat == 'darwin') {
|
||||||
fileExt1 = 'tar.gz'
|
fileExt1 = 'tar.gz'
|
||||||
hasFileExt2 = true
|
hasFileExt2 = true
|
||||||
@@ -209,9 +208,8 @@ export async function installJulia(versionInfo, version: string, arch: string):
|
|||||||
const juliaDownloadPath = await retry(async (bail: Function) => {
|
const juliaDownloadPath = await retry(async (bail: Function) => {
|
||||||
return await tc.downloadTool(downloadURL)
|
return await tc.downloadTool(downloadURL)
|
||||||
}, {
|
}, {
|
||||||
retries: 5,
|
|
||||||
onRetry: (err: Error) => {
|
onRetry: (err: Error) => {
|
||||||
core.info(`Download of ${downloadURL} failed, trying again. Error: ${err}`)
|
core.debug(`Download of ${downloadURL} failed, trying again. Error: ${err}`)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -235,16 +233,11 @@ export async function installJulia(versionInfo, version: string, arch: string):
|
|||||||
await exec.exec('tar', ['xf', juliaDownloadPath, '--strip-components=1', '-C', tempInstallDir])
|
await exec.exec('tar', ['xf', juliaDownloadPath, '--strip-components=1', '-C', tempInstallDir])
|
||||||
return tempInstallDir
|
return tempInstallDir
|
||||||
case 'win32':
|
case 'win32':
|
||||||
if (fileInfo !== null && fileInfo.extension == 'exe') {
|
if (version.endsWith('nightly') || semver.gtr(version, '1.3', {includePrerelease: true})) {
|
||||||
if (version.endsWith('nightly') || semver.gtr(version, '1.3', {includePrerelease: true})) {
|
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
|
||||||
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
|
await exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`])
|
||||||
await exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`])
|
|
||||||
} else {
|
|
||||||
await exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`])
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// This is the more common path. Using .tar.gz is much faster
|
await exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`])
|
||||||
await exec.exec('powershell', ['-Command', `tar xf ${juliaDownloadPath} --strip-components=1 -C ${tempInstallDir}`])
|
|
||||||
}
|
}
|
||||||
return tempInstallDir
|
return tempInstallDir
|
||||||
case 'darwin':
|
case 'darwin':
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ const archSynonyms = {
|
|||||||
'x64': 'x64',
|
'x64': 'x64',
|
||||||
'X64': 'x64',
|
'X64': 'x64',
|
||||||
'aarch64': 'aarch64',
|
'aarch64': 'aarch64',
|
||||||
'ARM64': 'aarch64',
|
'ARM64': 'aarch64'
|
||||||
'arm64': 'aarch64'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
@@ -76,7 +75,7 @@ async function run() {
|
|||||||
core.debug(`added Julia to cache: ${juliaPath}`)
|
core.debug(`added Julia to cache: ${juliaPath}`)
|
||||||
|
|
||||||
// Remove temporary dir
|
// Remove temporary dir
|
||||||
fs.rmSync(juliaInstallationPath, {recursive: true})
|
fs.rmdirSync(juliaInstallationPath, {recursive: true})
|
||||||
} else {
|
} else {
|
||||||
core.debug(`using cached version of Julia: ${juliaPath}`)
|
core.debug(`using cached version of Julia: ${juliaPath}`)
|
||||||
}
|
}
|
||||||
@@ -91,7 +90,7 @@ async function run() {
|
|||||||
const showVersionInfoInput = core.getInput('show-versioninfo')
|
const showVersionInfoInput = core.getInput('show-versioninfo')
|
||||||
await installer.showVersionInfo(showVersionInfoInput, version)
|
await installer.showVersionInfo(showVersionInfoInput, version)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed((error as Error).message)
|
core.setFailed(error.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user