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 | |
|---|---|---|---|
|
|
d3ce119a16 |
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@@ -1 +0,0 @@
|
|||||||
* @julia-actions/reviewers
|
|
||||||
33
.github/workflows/backup.yml
vendored
33
.github/workflows/backup.yml
vendored
@@ -1,33 +0,0 @@
|
|||||||
name: Backup
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '5 4 * * 0'
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
backup:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Configure cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
${{ env.GITHUB_WORKSPACE }}
|
|
||||||
~/.cache/restic
|
|
||||||
key: ${{ runner.os }}
|
|
||||||
|
|
||||||
- name: Install the correct Python version
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
|
|
||||||
- name: Run backup action
|
|
||||||
uses: julia-actions/restic-action@main
|
|
||||||
env: # Options: https://restic.readthedocs.io/en/latest/040_backup.html#environment-variables
|
|
||||||
RESTIC_REPOSITORY: b2:${{ secrets.B2_BUCKET }}:${{ github.repository }}
|
|
||||||
RESTIC_PASSWORD: ${{ secrets.RESTIC_PASSWORD }}
|
|
||||||
B2_ACCOUNT_ID: ${{ secrets.B2_ACCOUNT_ID }}
|
|
||||||
B2_ACCOUNT_KEY: ${{ secrets.B2_ACCOUNT_KEY }}
|
|
||||||
67
.github/workflows/codeql-analysis.yml
vendored
67
.github/workflows/codeql-analysis.yml
vendored
@@ -1,67 +0,0 @@
|
|||||||
# For most projects, this workflow file will not need changing; you simply need
|
|
||||||
# to commit it to your repository.
|
|
||||||
#
|
|
||||||
# You may wish to alter this file to override the set of languages analyzed,
|
|
||||||
# or to provide custom queries or build logic.
|
|
||||||
#
|
|
||||||
# ******** NOTE ********
|
|
||||||
# We have attempted to detect the languages in your repository. Please check
|
|
||||||
# the `language` matrix defined below to confirm you have the correct set of
|
|
||||||
# supported CodeQL languages.
|
|
||||||
#
|
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master, releases/* ]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ master ]
|
|
||||||
schedule:
|
|
||||||
- cron: '32 22 * * 6'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyze:
|
|
||||||
name: Analyze
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
language: [ 'javascript' ]
|
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
|
||||||
# Learn more:
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v1
|
|
||||||
with:
|
|
||||||
languages: ${{ matrix.language }}
|
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v1
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v1
|
|
||||||
74
README.md
74
README.md
@@ -1,6 +1,5 @@
|
|||||||
# setup-julia Action
|
# setup-julia Action
|
||||||
|
|
||||||
[](https://securitylab.github.com/tools/codeql)
|
|
||||||
[](https://dependabot.com)
|
[](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.
|
||||||
@@ -8,64 +7,18 @@ This action sets up a Julia environment for use in actions by downloading a spec
|
|||||||
## Table of Contents
|
## Table of Contents
|
||||||
- [Table of Contents](#table-of-contents)
|
- [Table of Contents](#table-of-contents)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
- [Inputs](#inputs)
|
|
||||||
- [Outputs](#outputs)
|
|
||||||
- [Basic](#basic)
|
- [Basic](#basic)
|
||||||
- [Julia Versions](#julia-versions)
|
- [Julia Versions](#julia-versions)
|
||||||
- [Matrix Testing](#matrix-testing)
|
- [Matrix Testing](#matrix-testing)
|
||||||
- [versioninfo](#versioninfo)
|
|
||||||
- [Versioning](#versioning)
|
- [Versioning](#versioning)
|
||||||
- [Debug logs](#debug-logs)
|
- [Debug logs](#debug-logs)
|
||||||
- [Third party information](#third-party-information)
|
- [Third party information](#third-party-information)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Inputs
|
See [action.yml](action.yml).
|
||||||
|
|
||||||
```yaml
|
You can find a list of example workflows making use of this action here: [julia-actions/example-workflows](https://github.com/julia-actions/example-workflows).
|
||||||
- uses: julia-actions/setup-julia@v1
|
|
||||||
with:
|
|
||||||
# The Julia version that will be installed and added as `julia` to the PATH.
|
|
||||||
# See "Julia Versions" below for a list of valid values.
|
|
||||||
#
|
|
||||||
# Warning: It is strongly recommended to wrap this value 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`.
|
|
||||||
#
|
|
||||||
# Default: '1'
|
|
||||||
version: ''
|
|
||||||
|
|
||||||
# The architecture of the Julia binaries.
|
|
||||||
#
|
|
||||||
# Supported values: x64 | x86
|
|
||||||
#
|
|
||||||
# Default: x64
|
|
||||||
arch: ''
|
|
||||||
|
|
||||||
# If true, display the output of InteractiveUtils.versioninfo() after installing.
|
|
||||||
# See "versioninfo" below for example usage.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
show-versioninfo: ''
|
|
||||||
```
|
|
||||||
|
|
||||||
### Outputs
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
outputs:
|
|
||||||
# The installed Julia version.
|
|
||||||
# May vary from the version input if a version range was given as input.
|
|
||||||
#
|
|
||||||
# Example output: '1.5.3'
|
|
||||||
|
|
||||||
julia-version: ''
|
|
||||||
# Path to the directory containing the Julia executable.
|
|
||||||
# Equivalent to JULIA_BINDIR: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR
|
|
||||||
#
|
|
||||||
# Example output: '/opt/hostedtoolcache/julia/1.5.3/x64/bin'
|
|
||||||
julia-bindir: ''
|
|
||||||
```
|
|
||||||
|
|
||||||
### Basic
|
### Basic
|
||||||
|
|
||||||
@@ -82,7 +35,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:** 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`.
|
**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` is parsed as `1`.
|
||||||
|
|
||||||
#### Examples
|
#### Examples
|
||||||
|
|
||||||
@@ -176,21 +129,6 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### versioninfo
|
|
||||||
|
|
||||||
By default, only a brief version identifier is printed in the run log. You can display the full `versioninfo` by adding `show-versioninfo`.
|
|
||||||
Here's an example that prints this information just for `nightly`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
- uses: julia-actions/setup-julia@v1
|
|
||||||
with:
|
|
||||||
version: ${{ matrix.version }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
show-versioninfo: ${{ matrix.version == 'nightly' }}
|
|
||||||
```
|
|
||||||
|
|
||||||
You use `'true'` if you want it printed for all Julia versions.
|
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
This action follows [GitHub's advice](https://help.github.com/en/articles/about-actions#versioning-your-action) on versioning actions, with an additional `latest` tag.
|
This action follows [GitHub's advice](https://help.github.com/en/articles/about-actions#versioning-your-action) on versioning actions, with an additional `latest` tag.
|
||||||
@@ -203,11 +141,11 @@ You can specify commits, branches or tags in your workflows as follows:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: julia-actions/setup-julia@d3ce119a16594ea9e5d7974813970c73b6ab9e94 # commit SHA of the tagged 1.4.1 commit
|
- uses: julia-actions/setup-julia@d26d1111976eae5f00db04f0515ab744ec9cd79e # commit SHA of the tagged 1.3.1 commit
|
||||||
|
- uses: julia-actions/setup-julia@master # branch
|
||||||
- uses: julia-actions/setup-julia@latest # latest version tag (may break existing workflows)
|
- uses: julia-actions/setup-julia@latest # latest version tag (may break existing workflows)
|
||||||
- uses: julia-actions/setup-julia@v1 # major version tag
|
- uses: julia-actions/setup-julia@v1 # major version tag
|
||||||
- uses: julia-actions/setup-julia@v1.4 # minor version tag
|
- uses: julia-actions/setup-julia@v0.1.0 # specific version tag
|
||||||
- uses: julia-actions/setup-julia@v1.4.1 # specific version tag
|
|
||||||
```
|
```
|
||||||
|
|
||||||
If your workflow requires access to secrets, you should always pin it to a commit SHA instead of a tag.
|
If your workflow requires access to secrets, you should always pin it to a commit SHA instead of a tag.
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: 'false'
|
default: 'false'
|
||||||
outputs:
|
outputs:
|
||||||
julia-version:
|
|
||||||
description: 'The installed Julia version. May vary from the version input if a version range was given as input.'
|
|
||||||
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:
|
||||||
|
|||||||
13
dist/index.js
vendored
13
dist/index.js
vendored
@@ -4009,7 +4009,6 @@ function run() {
|
|||||||
const availableReleases = yield installer.getJuliaVersions(versionInfo);
|
const availableReleases = yield installer.getJuliaVersions(versionInfo);
|
||||||
const version = installer.getJuliaVersion(availableReleases, versionInput);
|
const version = installer.getJuliaVersion(availableReleases, versionInput);
|
||||||
core.debug(`selected Julia version: ${arch}/${version}`);
|
core.debug(`selected Julia version: ${arch}/${version}`);
|
||||||
core.setOutput('julia-version', version);
|
|
||||||
// Search in cache
|
// Search in cache
|
||||||
let juliaPath;
|
let juliaPath;
|
||||||
juliaPath = tc.find('julia', version, arch);
|
juliaPath = tc.find('julia', version, arch);
|
||||||
@@ -4029,15 +4028,11 @@ function run() {
|
|||||||
core.addPath(path.join(juliaPath, 'bin'));
|
core.addPath(path.join(juliaPath, 'bin'));
|
||||||
// Set output
|
// Set output
|
||||||
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'));
|
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'));
|
||||||
// Test if Julia has been installed and print the version
|
// Test if Julia has been installed
|
||||||
|
exec.exec('julia', ['--version']);
|
||||||
|
// If enabled, also show the full version info
|
||||||
if (core.getInput('show-versioninfo') == 'true') {
|
if (core.getInput('show-versioninfo') == 'true') {
|
||||||
// If enabled, show the full version info
|
exec.exec('julia', ['-e', 'using InteractiveUtils; versioninfo()']);
|
||||||
// --compile=min -O0 reduces the time from ~1.8-1.9s to ~0.8-0.9s
|
|
||||||
exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()']);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Otherwise only print julia --version to save time
|
|
||||||
exec.exec('julia', ['--version']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
|
|||||||
13
lib/setup-julia.js
generated
13
lib/setup-julia.js
generated
@@ -58,7 +58,6 @@ function run() {
|
|||||||
const availableReleases = yield installer.getJuliaVersions(versionInfo);
|
const availableReleases = yield installer.getJuliaVersions(versionInfo);
|
||||||
const version = installer.getJuliaVersion(availableReleases, versionInput);
|
const version = installer.getJuliaVersion(availableReleases, versionInput);
|
||||||
core.debug(`selected Julia version: ${arch}/${version}`);
|
core.debug(`selected Julia version: ${arch}/${version}`);
|
||||||
core.setOutput('julia-version', version);
|
|
||||||
// Search in cache
|
// Search in cache
|
||||||
let juliaPath;
|
let juliaPath;
|
||||||
juliaPath = tc.find('julia', version, arch);
|
juliaPath = tc.find('julia', version, arch);
|
||||||
@@ -78,15 +77,11 @@ function run() {
|
|||||||
core.addPath(path.join(juliaPath, 'bin'));
|
core.addPath(path.join(juliaPath, 'bin'));
|
||||||
// Set output
|
// Set output
|
||||||
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'));
|
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'));
|
||||||
// Test if Julia has been installed and print the version
|
// Test if Julia has been installed
|
||||||
|
exec.exec('julia', ['--version']);
|
||||||
|
// If enabled, also show the full version info
|
||||||
if (core.getInput('show-versioninfo') == 'true') {
|
if (core.getInput('show-versioninfo') == 'true') {
|
||||||
// If enabled, show the full version info
|
exec.exec('julia', ['-e', 'using InteractiveUtils; versioninfo()']);
|
||||||
// --compile=min -O0 reduces the time from ~1.8-1.9s to ~0.8-0.9s
|
|
||||||
exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()']);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Otherwise only print julia --version to save time
|
|
||||||
exec.exec('julia', ['--version']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
|
|||||||
15
package-lock.json
generated
15
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "1.5.1",
|
"version": "1.4.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -2861,6 +2861,12 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"ini": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
@@ -3443,13 +3449,6 @@
|
|||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ini": {
|
|
||||||
"version": "1.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
|
|
||||||
"integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"invariant": {
|
"invariant": {
|
||||||
"version": "2.2.4",
|
"version": "2.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "1.5.1",
|
"version": "1.4.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "setup Julia action",
|
"description": "setup Julia action",
|
||||||
"main": "lib/setup-julia.js",
|
"main": "lib/setup-julia.js",
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ async function run() {
|
|||||||
const availableReleases = await installer.getJuliaVersions(versionInfo)
|
const availableReleases = await installer.getJuliaVersions(versionInfo)
|
||||||
const version = installer.getJuliaVersion(availableReleases, versionInput)
|
const version = installer.getJuliaVersion(availableReleases, versionInput)
|
||||||
core.debug(`selected Julia version: ${arch}/${version}`)
|
core.debug(`selected Julia version: ${arch}/${version}`)
|
||||||
core.setOutput('julia-version', version)
|
|
||||||
|
|
||||||
// Search in cache
|
// Search in cache
|
||||||
let juliaPath: string;
|
let juliaPath: string;
|
||||||
@@ -73,15 +72,13 @@ async function run() {
|
|||||||
|
|
||||||
// Set output
|
// Set output
|
||||||
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'))
|
core.setOutput('julia-bindir', path.join(juliaPath, 'bin'))
|
||||||
|
|
||||||
|
// Test if Julia has been installed
|
||||||
|
exec.exec('julia', ['--version'])
|
||||||
|
|
||||||
// Test if Julia has been installed and print the version
|
// If enabled, also show the full version info
|
||||||
if (core.getInput('show-versioninfo') == 'true') {
|
if (core.getInput('show-versioninfo') == 'true') {
|
||||||
// If enabled, show the full version info
|
exec.exec('julia', ['-e', 'using InteractiveUtils; versioninfo()'])
|
||||||
// --compile=min -O0 reduces the time from ~1.8-1.9s to ~0.8-0.9s
|
|
||||||
exec.exec('julia', ['--compile=min', '-O0', '-e', 'using InteractiveUtils; versioninfo()'])
|
|
||||||
} else {
|
|
||||||
// Otherwise only print julia --version to save time
|
|
||||||
exec.exec('julia', ['--version'])
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message)
|
core.setFailed(error.message)
|
||||||
|
|||||||
Reference in New Issue
Block a user