Compare commits

..

1 Commits

Author SHA1 Message Date
Sascha Mann
0b9b1d2cd2 Add production dependencies & build 2021-01-13 11:30:58 +01:00
12 changed files with 58 additions and 8619 deletions

View File

@@ -1,7 +0,0 @@
version: 2
updates:
- package-ecosystem: gitsubmodule
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10

View File

@@ -8,7 +8,7 @@ jobs:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: "npm ci" - name: "npm ci"
run: npm ci --legacy-peer-deps run: npm ci
- name: "npm run build" - name: "npm run build"
run: npm run build run: npm run build

View File

@@ -1,33 +0,0 @@
name: Example builds (default arch)
on:
push:
branches: ['main', 'master', 'releases/*']
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
julia-version: ['1']
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v1.0.0
- name: "Install dependencies"
run: |
npm install --legacy-peer-deps
npm run build
npm run pack
- name: "Set up Julia"
id: setup-julia
uses: ./
with:
version: ${{ matrix.julia-version }}
- run: julia --version
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'

View File

@@ -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
@@ -26,7 +26,7 @@ jobs:
- name: "Install dependencies" - name: "Install dependencies"
run: | run: |
npm install --legacy-peer-deps npm install
npm run build npm run build
npm run pack npm run pack

View File

@@ -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:
@@ -25,7 +24,7 @@ jobs:
- name: "Install dependencies" - name: "Install dependencies"
run: | run: |
npm install --legacy-peer-deps npm install
npm run build npm run build
npm run pack npm run pack

View File

@@ -38,15 +38,9 @@ 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
#
# Note: you can use X64, X86, and ARM64 as synonyms for x64, x86, and aarch64, respectively.
#
# Defaults to the architecture of the runner executing the job.
arch: '' arch: ''
# Set the display setting for printing InteractiveUtils.versioninfo() after installing. # Set the display setting for printing InteractiveUtils.versioninfo() after installing.
@@ -109,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).

View File

@@ -6,9 +6,9 @@ inputs:
description: 'The Julia version to download (if necessary) and use. Example: 1.0.4' description: 'The Julia version to download (if necessary) and use. Example: 1.0.4'
default: '1' default: '1'
arch: arch:
description: 'Architecture of the Julia binaries. Defaults to the architecture of the runner executing the job.' description: 'Architecture of the Julia binaries. Defaults to x64.'
required: false required: false
default: '${{ runner.arch }}' default: 'x64'
show-versioninfo: show-versioninfo:
description: 'Display InteractiveUtils.versioninfo() after installing' description: 'Display InteractiveUtils.versioninfo() after installing'
required: false required: false
@@ -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'

12
dist/index.js vendored
View File

@@ -4268,11 +4268,7 @@ const osMap = {
}; };
const archMap = { const archMap = {
'x86': 'i686', 'x86': 'i686',
'X86': 'i686', 'x64': 'x86_64'
'x64': 'x86_64',
'X64': 'x86_64',
'aarch64': 'aarch64',
'ARM64': '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)
@@ -4364,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) {

12
lib/installer.js generated
View File

@@ -32,11 +32,7 @@ const osMap = {
}; };
const archMap = { const archMap = {
'x86': 'i686', 'x86': 'i686',
'X86': 'i686', 'x64': 'x86_64'
'x64': 'x86_64',
'X64': 'x86_64',
'aarch64': 'aarch64',
'ARM64': '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)
@@ -128,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) {

8554
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "setup-julia", "name": "setup-julia",
"version": "1.8.0", "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",

View File

@@ -18,11 +18,7 @@ const osMap = {
} }
const archMap = { const archMap = {
'x86': 'i686', 'x86': 'i686',
'X86': 'i686', 'x64': 'x86_64'
'x64': 'x86_64',
'X64': 'x86_64',
'aarch64': 'aarch64',
'ARM64': 'aarch64'
} }
// Store information about the environment // Store information about the environment
@@ -119,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 {