mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-02-15 20:46:53 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b9b1d2cd2 |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -1,7 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: gitsubmodule
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: daily
|
|
||||||
open-pull-requests-limit: 10
|
|
||||||
2
.github/workflows/example-builds-nightly.yml
vendored
2
.github/workflows/example-builds-nightly.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: [nightly, 1.8-nightly]
|
julia-version: [nightly, 1.6-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
|
||||||
|
|||||||
1
.github/workflows/example-builds.yml
vendored
1
.github/workflows/example-builds.yml
vendored
@@ -4,7 +4,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: ['main', 'master', 'releases/*']
|
branches: ['main', 'master', 'releases/*']
|
||||||
pull_request:
|
pull_request:
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
|||||||
@@ -38,11 +38,7 @@ This action sets up a Julia environment for use in actions by downloading a spec
|
|||||||
|
|
||||||
# The architecture of the Julia binaries.
|
# The architecture of the Julia binaries.
|
||||||
#
|
#
|
||||||
# Please note that installing aarch64 binaries only makes sense on self-hosted aarch64 runners.
|
# Supported values: x64 | x86
|
||||||
# We currently don't run test builds on that architecture, so we cannot guarantee that the input won't break randomly,
|
|
||||||
# although there is no reason why it would.
|
|
||||||
#
|
|
||||||
# Supported values: x64 | x86 | aarch64 (untested)
|
|
||||||
#
|
#
|
||||||
# Default: x64
|
# Default: x64
|
||||||
arch: ''
|
arch: ''
|
||||||
@@ -107,7 +103,7 @@ You can either specify specific Julia versions or version ranges. If you specify
|
|||||||
- `^1.3.0-0` is a **caret** version range that includes _all_ pre-releases. It matches all versions `≥ 1.3.0-` and `< 2.0.0`.
|
- `^1.3.0-0` is a **caret** version range that includes _all_ pre-releases. It matches all versions `≥ 1.3.0-` and `< 2.0.0`.
|
||||||
- `~1.3.0-0` is a **tilde** version range that includes _all_ pre-releases. It matches all versions `≥ 1.3.0-` and `< 1.4.0`.
|
- `~1.3.0-0` is a **tilde** version range that includes _all_ pre-releases. It matches all versions `≥ 1.3.0-` and `< 1.4.0`.
|
||||||
- `nightly` will install the latest nightly build.
|
- `nightly` will install the latest nightly build.
|
||||||
- `1.7-nightly` will install the latest nightly build for the upcoming 1.7 release. This version will only be available during certain phases of the Julia release cycle.
|
- `1.6-nightly` will install the latest nightly build for the upcoming 1.6 release. This version will only be available during certain phases of the Julia release cycle.
|
||||||
|
|
||||||
Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic).
|
Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic).
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ outputs:
|
|||||||
julia-bindir:
|
julia-bindir:
|
||||||
description: 'Path to the directory containing the Julia executable. Equivalent to JULIA_BINDIR: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR'
|
description: 'Path to the directory containing the Julia executable. Equivalent to JULIA_BINDIR: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR'
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node12'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
branding:
|
branding:
|
||||||
icon: 'download'
|
icon: 'download'
|
||||||
|
|||||||
9
dist/index.js
vendored
9
dist/index.js
vendored
@@ -4268,8 +4268,7 @@ const osMap = {
|
|||||||
};
|
};
|
||||||
const archMap = {
|
const archMap = {
|
||||||
'x86': 'i686',
|
'x86': 'i686',
|
||||||
'x64': 'x86_64',
|
'x64': 'x86_64'
|
||||||
'aarch64': 'aarch64'
|
|
||||||
};
|
};
|
||||||
// Store information about the environment
|
// Store information about the environment
|
||||||
const osPlat = os.platform(); // possible values: win32 (Windows), linux (Linux), darwin (macOS)
|
const osPlat = os.platform(); // possible values: win32 (Windows), linux (Linux), darwin (macOS)
|
||||||
@@ -4361,19 +4360,15 @@ function getNightlyFileName(arch) {
|
|||||||
return `julia-latest${versionExt}.${ext}`;
|
return `julia-latest${versionExt}.${ext}`;
|
||||||
}
|
}
|
||||||
function getFileInfo(versionInfo, version, arch) {
|
function getFileInfo(versionInfo, version, arch) {
|
||||||
const err = `Could not find ${archMap[arch]}/${version} binaries`;
|
|
||||||
if (version.endsWith('nightly')) {
|
if (version.endsWith('nightly')) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!versionInfo[version]) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
for (let file of versionInfo[version].files) {
|
for (let file of versionInfo[version].files) {
|
||||||
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw err;
|
throw `Could not find ${archMap[arch]}/${version} binaries`;
|
||||||
}
|
}
|
||||||
exports.getFileInfo = getFileInfo;
|
exports.getFileInfo = getFileInfo;
|
||||||
function getDownloadURL(fileInfo, version, arch) {
|
function getDownloadURL(fileInfo, version, arch) {
|
||||||
|
|||||||
9
lib/installer.js
generated
9
lib/installer.js
generated
@@ -32,8 +32,7 @@ const osMap = {
|
|||||||
};
|
};
|
||||||
const archMap = {
|
const archMap = {
|
||||||
'x86': 'i686',
|
'x86': 'i686',
|
||||||
'x64': 'x86_64',
|
'x64': 'x86_64'
|
||||||
'aarch64': 'aarch64'
|
|
||||||
};
|
};
|
||||||
// Store information about the environment
|
// Store information about the environment
|
||||||
const osPlat = os.platform(); // possible values: win32 (Windows), linux (Linux), darwin (macOS)
|
const osPlat = os.platform(); // possible values: win32 (Windows), linux (Linux), darwin (macOS)
|
||||||
@@ -125,19 +124,15 @@ function getNightlyFileName(arch) {
|
|||||||
return `julia-latest${versionExt}.${ext}`;
|
return `julia-latest${versionExt}.${ext}`;
|
||||||
}
|
}
|
||||||
function getFileInfo(versionInfo, version, arch) {
|
function getFileInfo(versionInfo, version, arch) {
|
||||||
const err = `Could not find ${archMap[arch]}/${version} binaries`;
|
|
||||||
if (version.endsWith('nightly')) {
|
if (version.endsWith('nightly')) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!versionInfo[version]) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
for (let file of versionInfo[version].files) {
|
for (let file of versionInfo[version].files) {
|
||||||
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw err;
|
throw `Could not find ${archMap[arch]}/${version} binaries`;
|
||||||
}
|
}
|
||||||
exports.getFileInfo = getFileInfo;
|
exports.getFileInfo = getFileInfo;
|
||||||
function getDownloadURL(fileInfo, version, arch) {
|
function getDownloadURL(fileInfo, version, arch) {
|
||||||
|
|||||||
8557
package-lock.json
generated
8557
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "1.7.1",
|
"version": "1.6.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "setup Julia action",
|
"description": "setup Julia action",
|
||||||
"main": "lib/setup-julia.js",
|
"main": "lib/setup-julia.js",
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ const osMap = {
|
|||||||
}
|
}
|
||||||
const archMap = {
|
const archMap = {
|
||||||
'x86': 'i686',
|
'x86': 'i686',
|
||||||
'x64': 'x86_64',
|
'x64': 'x86_64'
|
||||||
'aarch64': 'aarch64'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store information about the environment
|
// Store information about the environment
|
||||||
@@ -116,23 +115,17 @@ function getNightlyFileName(arch: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getFileInfo(versionInfo, version: string, arch: string) {
|
export function getFileInfo(versionInfo, version: string, arch: string) {
|
||||||
const err = `Could not find ${archMap[arch]}/${version} binaries`
|
|
||||||
|
|
||||||
if (version.endsWith('nightly')) {
|
if (version.endsWith('nightly')) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!versionInfo[version]) {
|
|
||||||
throw err
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let file of versionInfo[version].files) {
|
for (let file of versionInfo[version].files) {
|
||||||
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
if (file.os == osMap[osPlat] && file.arch == archMap[arch]) {
|
||||||
return file
|
return file
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw err
|
throw `Could not find ${archMap[arch]}/${version} binaries`
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getDownloadURL(fileInfo, version: string, arch: string): string {
|
export function getDownloadURL(fileInfo, version: string, arch: string): string {
|
||||||
@@ -211,12 +204,12 @@ export async function installJulia(versionInfo, version: string, arch: string):
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Test if Julia has been installed and print the version.
|
* Test if Julia has been installed and print the version.
|
||||||
*
|
*
|
||||||
* true => always show versioninfo
|
* true => always show versioninfo
|
||||||
* false => only show on nightlies
|
* false => only show on nightlies
|
||||||
* never => never show it anywhere
|
* never => never show it anywhere
|
||||||
*
|
*
|
||||||
* @param showVersionInfoInput
|
* @param showVersionInfoInput
|
||||||
*/
|
*/
|
||||||
export async function showVersionInfo(showVersionInfoInput: string, version: string): Promise<void> {
|
export async function showVersionInfo(showVersionInfoInput: string, version: string): Promise<void> {
|
||||||
// --compile=min -O0 reduces the time from ~1.8-1.9s to ~0.8-0.9s
|
// --compile=min -O0 reduces the time from ~1.8-1.9s to ~0.8-0.9s
|
||||||
@@ -226,7 +219,7 @@ export async function showVersionInfo(showVersionInfoInput: string, version: str
|
|||||||
case 'true':
|
case 'true':
|
||||||
exitCode = await exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()'])
|
exitCode = await exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()'])
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'false':
|
case 'false':
|
||||||
if (version.endsWith('nightly')) {
|
if (version.endsWith('nightly')) {
|
||||||
exitCode = await exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()'])
|
exitCode = await exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()'])
|
||||||
@@ -234,7 +227,7 @@ export async function showVersionInfo(showVersionInfoInput: string, version: str
|
|||||||
exitCode = await exec.exec('julia', ['--version'])
|
exitCode = await exec.exec('julia', ['--version'])
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'never':
|
case 'never':
|
||||||
exitCode = await exec.exec('julia', ['--version'])
|
exitCode = await exec.exec('julia', ['--version'])
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user