mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-02-13 03:26:53 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81d42b556a | ||
|
|
573f41e471 | ||
|
|
c1c88a7c1b |
2
.github/workflows/checkin.yml
vendored
2
.github/workflows/checkin.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version: 20
|
||||||
|
|
||||||
- name: "npm ci"
|
- name: "npm ci"
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version: 16
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version: 16
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
|
|||||||
2
.github/workflows/example-builds-nightly.yml
vendored
2
.github/workflows/example-builds-nightly.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version: 16
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
|
|||||||
4
.github/workflows/example-builds.yml
vendored
4
.github/workflows/example-builds.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1', 'lts', 'pre']
|
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1']
|
||||||
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
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version: 16
|
||||||
|
|
||||||
- name: "Install dependencies"
|
- name: "Install dependencies"
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
__tests__/runner/*
|
__tests__/runner/*
|
||||||
!dist/
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
nodejs 20.11.1
|
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
# Contributing
|
# Dev docs / Contributing guide
|
||||||
|
|
||||||
Please see the README in the [`devdocs/`](devdocs/) folder.
|
## Building and tagging a release (requires write access)
|
||||||
|
|
||||||
|
1. Test your changes, merge into `master`.
|
||||||
|
2. Checkout `master`.
|
||||||
|
3. Bump the version number in [`package.json`](package.json).
|
||||||
|
4. Run `./bin/build-release julia-actions/setup-julia` to create a release branch and build a release.
|
||||||
|
5. Push the branch (**without tags**) and verify that CI is passing on it.
|
||||||
|
6. Run `git push --tags --force` to update the tags.
|
||||||
|
7. Create a release for the `vX.Y.Z` tag.
|
||||||
|
|||||||
@@ -109,8 +109,6 @@ You can either specify specific Julia versions or version ranges. If you specify
|
|||||||
- `'~1.3.0-rc1'` is a **tilde** version range that includes pre-releases of `1.3.0` starting at `rc1`. It matches all versions `≥ 1.3.0-rc1` and `< 1.4.0`.
|
- `'~1.3.0-rc1'` is a **tilde** version range that includes pre-releases of `1.3.0` starting at `rc1`. It matches all versions `≥ 1.3.0-rc1` and `< 1.4.0`.
|
||||||
- `'^1.3.0-0'` is a **caret** version range that includes _all_ pre-releases of `1.3.0`. 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 of `1.3.0`. 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 of `1.3.0`. 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 of `1.3.0`. It matches all versions `≥ 1.3.0-` and `< 1.4.0`.
|
||||||
- `'lts'` will install the latest LTS build.
|
|
||||||
- `'pre'` will install the latest prerelease build.
|
|
||||||
- `'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.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.
|
||||||
|
|
||||||
@@ -285,7 +283,3 @@ Note that when debug logs are enabled, a request will be sent to `https://httpbi
|
|||||||
## Third party information
|
## Third party information
|
||||||
Parts of this software have been derived from other open source software.
|
Parts of this software have been derived from other open source software.
|
||||||
See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details.
|
See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details.
|
||||||
|
|
||||||
## Contributing to this repo
|
|
||||||
|
|
||||||
Please see the README in the [`devdocs/`](devdocs/) folder.
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,30 +4,30 @@
|
|||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
|
|
||||||
import * as io from '@actions/io'
|
import * as io from '@actions/io'
|
||||||
import * as semver from 'semver'
|
|
||||||
|
|
||||||
import nock = require('nock')
|
import nock = require('nock')
|
||||||
|
import * as semver from 'semver'
|
||||||
|
|
||||||
const testVersions = [
|
const testVersions = [
|
||||||
'0.1.2',
|
'0.1.2', '0.2.0', '0.2.1', '0.3.0',
|
||||||
'0.2.0', '0.2.1',
|
'0.3.1', '0.3.10', '0.3.11', '0.3.12',
|
||||||
'0.3.0', '0.3.1', '0.3.10', '0.3.11', '0.3.12', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9',
|
'0.3.2', '0.3.3', '0.3.4', '0.3.5',
|
||||||
'0.4.0', '0.4.0-rc1', '0.4.0-rc2', '0.4.0-rc3', '0.4.0-rc4', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7',
|
'0.3.6', '0.3.7', '0.3.8', '0.3.9',
|
||||||
'0.5.0', '0.5.0-rc0', '0.5.0-rc1', '0.5.0-rc2', '0.5.0-rc3', '0.5.0-rc4', '0.5.1', '0.5.2',
|
'0.4.0', '0.4.0-rc1', '0.4.0-rc2', '0.4.0-rc3',
|
||||||
'0.6.0', '0.6.0-pre.alpha', '0.6.0-pre.beta', '0.6.0-rc1', '0.6.0-rc2', '0.6.0-rc3', '0.6.1', '0.6.2', '0.6.3', '0.6.4',
|
'0.4.0-rc4', '0.4.1', '0.4.2', '0.4.3',
|
||||||
'0.7.0', '0.7.0-alpha', '0.7.0-beta', '0.7.0-beta2', '0.7.0-rc1', '0.7.0-rc2', '0.7.0-rc3',
|
'0.4.4', '0.4.5', '0.4.6', '0.4.7',
|
||||||
'1.0.0', '1.0.0-rc1', '1.0.1', '1.0.2', '1.0.3', '1.0.4', '1.0.5',
|
'0.5.0', '0.5.0-rc0', '0.5.0-rc1', '0.5.0-rc2',
|
||||||
'1.1.0', '1.1.0-rc1', '1.1.0-rc2', '1.1.1',
|
'0.5.0-rc3', '0.5.0-rc4', '0.5.1', '0.5.2',
|
||||||
'1.2.0', '1.2.0-rc1', '1.2.0-rc2', '1.2.0-rc3',
|
'0.6.0', '0.6.0-pre.alpha', '0.6.0-pre.beta', '0.6.0-rc1',
|
||||||
'1.3.0', '1.3.0-alpha', '1.3.0-rc1', '1.3.0-rc2', '1.3.0-rc3', '1.3.0-rc4', '1.3.0-rc5', '1.3.1',
|
'0.6.0-rc2', '0.6.0-rc3', '0.6.1', '0.6.2',
|
||||||
'1.4.0', '1.4.0-rc1', '1.4.0-rc2', '1.4.1', '1.4.2',
|
'0.6.3', '0.6.4', '0.7.0', '0.7.0-alpha',
|
||||||
'1.5.0', '1.5.0-beta1', '1.5.0-rc1', '1.5.0-rc2', '1.5.1', '1.5.2', '1.5.3', '1.5.4',
|
'0.7.0-beta', '0.7.0-beta2', '0.7.0-rc1', '0.7.0-rc2',
|
||||||
'1.6.0', '1.6.0-beta1', '1.6.0-rc1', '1.6.0-rc2', '1.6.0-rc3', '1.6.1', '1.6.2', '1.6.3', '1.6.4', '1.6.5', '1.6.6', '1.6.7',
|
'0.7.0-rc3', '1.0.0', '1.0.0-rc1', '1.0.1',
|
||||||
'1.7.0', '1.7.0-beta1', '1.7.0-beta2', '1.7.0-beta3', '1.7.0-beta4', '1.7.0-rc1', '1.7.0-rc2', '1.7.0-rc3', '1.7.1', '1.7.2', '1.7.3',
|
'1.0.2', '1.0.3', '1.0.4', '1.0.5',
|
||||||
'1.8.0', '1.8.0-beta1', '1.8.0-beta2', '1.8.0-beta3', '1.8.0-rc1', '1.8.0-rc2', '1.8.0-rc3', '1.8.0-rc4', '1.8.1', '1.8.2', '1.8.3', '1.8.4', '1.8.5',
|
'1.1.0', '1.1.0-rc1', '1.1.0-rc2', '1.1.1',
|
||||||
'1.9.0', '1.9.0-alpha1', '1.9.0-beta1', '1.9.0-beta2', '1.9.0-beta3', '1.9.0-beta4', '1.9.0-rc1', '1.9.0-rc2', '1.9.0-rc3', '1.9.1', '1.9.2', '1.9.3', '1.9.4',
|
'1.2.0', '1.2.0-rc1', '1.2.0-rc2', '1.2.0-rc3',
|
||||||
'1.10.0', '1.10.0-alpha1', '1.10.0-beta1', '1.10.0-beta2', '1.10.0-beta3', '1.10.0-rc1', '1.10.0-rc2', '1.10.0-rc3', '1.10.1', '1.10.2',
|
'1.3.0-alpha', '1.3.0-rc1', '1.3.0-rc2', '1.3.0-rc3',
|
||||||
'1.11.0-alpha1', '1.11.0-alpha2', '1.11.0-beta1'
|
'1.3.0-rc4'
|
||||||
]
|
]
|
||||||
|
|
||||||
const toolDir = path.join(__dirname, 'runner', 'tools')
|
const toolDir = path.join(__dirname, 'runner', 'tools')
|
||||||
@@ -55,33 +55,22 @@ describe('version matching tests', () => {
|
|||||||
expect(installer.getJuliaVersion([], 'nightly')).toEqual('nightly')
|
expect(installer.getJuliaVersion([], 'nightly')).toEqual('nightly')
|
||||||
expect(installer.getJuliaVersion(testVersions, 'nightly')).toEqual('nightly')
|
expect(installer.getJuliaVersion(testVersions, 'nightly')).toEqual('nightly')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('LTS', () => {
|
|
||||||
// Update test when LTS is updated
|
|
||||||
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual(installer.getJuliaVersion(testVersions, '1.6'))
|
|
||||||
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual('1.6.7')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('pre', () => {
|
|
||||||
expect(installer.getJuliaVersion(testVersions, 'pre')).toEqual('1.11.0-beta1')
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('version ranges', () => {
|
describe('version ranges', () => {
|
||||||
it('Chooses the highest available version that matches the input', () => {
|
it('Chooses the highest available version that matches the input', () => {
|
||||||
expect(installer.getJuliaVersion(testVersions, '1')).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '1')).toEqual('1.2.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '1.0')).toEqual('1.0.5')
|
expect(installer.getJuliaVersion(testVersions, '1.0')).toEqual('1.0.5')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.3.0-rc1')).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.3.0-rc1')).toEqual('1.3.0-rc4')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.2.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.10.0-rc1')).toEqual('1.10.2')
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('include-prereleases', () => {
|
describe('include-prereleases', () => {
|
||||||
it('Chooses the highest available version that matches the input including prereleases', () => {
|
it('Chooses the highest available version that matches the input including prereleases', () => {
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', true)).toEqual('1.11.0-beta1')
|
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', true)).toEqual('1.3.0-rc4')
|
||||||
expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.11.0-beta1')
|
expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.3.0-rc4')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.2.0')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# Devdocs for the `setup-julia` repo
|
|
||||||
|
|
||||||
If you want to make a pull request to this repo, please read the following:
|
|
||||||
1. [Local development](local_setup.md)
|
|
||||||
|
|
||||||
If you have commit access to this repo, you may be interested in the following:
|
|
||||||
1. [Making a new release of this action](making_a_new_release.md)
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
# Local development
|
|
||||||
|
|
||||||
## 1. Clone the repo
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone git@github.com:julia-actions/setup-julia.git
|
|
||||||
cd setup-julia
|
|
||||||
```
|
|
||||||
|
|
||||||
## 2. Install NodeJS
|
|
||||||
|
|
||||||
### Unix, using `asdf` (recommended, but not required)
|
|
||||||
|
|
||||||
First, make sure that you have installed [`asdf`](https://asdf-vm.com/) on your local machine.
|
|
||||||
|
|
||||||
Then, `cd` to your clone of the repo and run the following commands:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
asdf plugin add nodejs
|
|
||||||
asdf install
|
|
||||||
```
|
|
||||||
|
|
||||||
This will use `asdf` to install the correct version of NodeJS.
|
|
||||||
|
|
||||||
### Unix, but not using `asdf`
|
|
||||||
|
|
||||||
Instead of using `asdf`, you can instead choose to install NodeJS manually.
|
|
||||||
|
|
||||||
First, check the `.tool-versions` file in this repo, and see what version of NodeJS you need. Then, install that same version of NodejS on your local machine.
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
`asdf` does not (currently) support Windows. So on Windows, you have to install NodeJS manually.
|
|
||||||
|
|
||||||
First, check the `.tool-versions` file in this repo, and see what version of NodeJS you need. Then, install that same version of NodejS on your local machine.
|
|
||||||
|
|
||||||
## 3. Working locally
|
|
||||||
|
|
||||||
First, `cd` to your clone of the repo. Now you can run the following commands:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm ci
|
|
||||||
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
When you are ready, you can commit your changes and push them to your PR.
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
# Making a new release of this action (requires commit access)
|
|
||||||
|
|
||||||
If you have commit access to this repo, you can make a new release.
|
|
||||||
|
|
||||||
Here are the instructions.
|
|
||||||
|
|
||||||
## Step 1: Clone a fresh copy of the repo
|
|
||||||
|
|
||||||
We intentionally work in a brand-new copy of the repo.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone git@github.com:julia-actions/setup-julia.git
|
|
||||||
cd setup-julia
|
|
||||||
git checkout master
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 2: Make sure you have the right version of NodeJS
|
|
||||||
|
|
||||||
If you use [`asdf`](https://asdf-vm.com/), this is as simple as:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
asdf plugin add nodejs
|
|
||||||
asdf install
|
|
||||||
```
|
|
||||||
|
|
||||||
If you don't use `asdf`, then you need to:
|
|
||||||
1. Open the `./tool-versions` file in the root of the repo.
|
|
||||||
2. Make note of the NodeJS version listed in the `.tool-versions` file.
|
|
||||||
3. Install that same version of NodeJS on your machine.
|
|
||||||
4. Make sure that you are currently using that version of NodeJS (i.e. it is at the front of your PATH).
|
|
||||||
|
|
||||||
## Step 3: Edit the `version` field in `package.json`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
vim package.json
|
|
||||||
|
|
||||||
# Edit the `version` number (should be line 2)
|
|
||||||
# Save your changes in Vim. Then exit Vim.
|
|
||||||
|
|
||||||
# For the remaining of this guide, let MAJOR.MINOR.PATCH refer
|
|
||||||
# to the new version number that you set.
|
|
||||||
|
|
||||||
git add package.json
|
|
||||||
|
|
||||||
# No need to commit yet.
|
|
||||||
# The release script will run `git commit`.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 4: Remove the `dist/` line from the `.gitignore` file
|
|
||||||
|
|
||||||
```bash
|
|
||||||
vim .gitignore
|
|
||||||
# Delete the line that says `dist/` (it should be line 3)
|
|
||||||
# Save your changes in Vim. Then exit Vim.
|
|
||||||
|
|
||||||
git add .gitignore
|
|
||||||
|
|
||||||
# No need to commit yet.
|
|
||||||
# The release script will run `git commit`.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 5: Make sure you have the necessary dependencies
|
|
||||||
|
|
||||||
The `build-release.sh` script requires the following dependencies:
|
|
||||||
|
|
||||||
1. Bash
|
|
||||||
2. `curl`
|
|
||||||
3. `git`
|
|
||||||
4. `jq`
|
|
||||||
5. `sed`
|
|
||||||
|
|
||||||
## Step 6: Run the `build-release.sh` script
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ls -l bin/build-release.sh
|
|
||||||
chmod +x bin/build-release.sh
|
|
||||||
ls -l bin/build-release.sh
|
|
||||||
|
|
||||||
./bin/build-release.sh julia-actions/setup-julia
|
|
||||||
```
|
|
||||||
|
|
||||||
Wait a minute or two. The script will build everything and will create a new release branch named `releases/vMAJOR.MINOR.PATCH`.
|
|
||||||
|
|
||||||
## Step 7: Push ONLY the `releases/vMAJOR.MINOR.PATCH` branch
|
|
||||||
|
|
||||||
Only push the `releases/` branch. Do NOT push any tags yet.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git push origin releases/vMAJOR.MINOR.PATCH
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you need to go to https://github.com/julia-actions/setup-julia/tree/releases/vMAJOR.MINOR.PATCH and wait for CI to finish running.
|
|
||||||
|
|
||||||
Do NOT proceed to the next step until CI is all green on the `releases/vMAJOR.MINOR.PATCH` branch.
|
|
||||||
|
|
||||||
## Step 8: Push the tags (only after CI is all green)
|
|
||||||
|
|
||||||
Once CI is all green on the `releases/vMAJOR.MINOR.PATCH` branch, you can push the tags.
|
|
||||||
|
|
||||||
You need to force-push.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git push --tags --force
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 9: Use the GitHub web UI to create a new GitHub Release
|
|
||||||
|
|
||||||
Go to https://github.com/julia-actions/setup-julia/releases and create a new release for the now-existant `vMAJOR.MINOR.PATCH` tag using the GitHub web interface.
|
|
||||||
|
|
||||||
## Step 10: Clean up your local repo
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git submodule deinit --force .
|
|
||||||
git submodule update --init
|
|
||||||
git fetch --all --prune
|
|
||||||
git checkout master
|
|
||||||
git reset --hard origin/master
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 11: Delete your local repo
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ..
|
|
||||||
ls setup-julia
|
|
||||||
rm -rf setup-julia
|
|
||||||
```
|
|
||||||
856
dist/index.js
vendored
856
dist/index.js
vendored
@@ -49,8 +49,6 @@ const os = __importStar(__nccwpck_require__(2037));
|
|||||||
const path = __importStar(__nccwpck_require__(1017));
|
const path = __importStar(__nccwpck_require__(1017));
|
||||||
const retry = __nccwpck_require__(3415);
|
const retry = __nccwpck_require__(3415);
|
||||||
const semver = __importStar(__nccwpck_require__(1383));
|
const semver = __importStar(__nccwpck_require__(1383));
|
||||||
const LTS_VERSION = '1.6';
|
|
||||||
const MAJOR_VERSION = '1'; // Could be deduced from versions.json
|
|
||||||
// Translations between actions input and Julia arch names
|
// Translations between actions input and Julia arch names
|
||||||
const osMap = {
|
const osMap = {
|
||||||
'win32': 'winnt',
|
'win32': 'winnt',
|
||||||
@@ -120,12 +118,6 @@ function getJuliaVersion(availableReleases, versionInput, includePrerelease = fa
|
|||||||
// versionInput is a valid version or a nightly version, use it directly
|
// versionInput is a valid version or a nightly version, use it directly
|
||||||
return versionInput;
|
return versionInput;
|
||||||
}
|
}
|
||||||
if (versionInput == 'lts') {
|
|
||||||
return getJuliaVersion(availableReleases, LTS_VERSION, false);
|
|
||||||
}
|
|
||||||
if (versionInput == 'pre') {
|
|
||||||
return getJuliaVersion(availableReleases, MAJOR_VERSION, true);
|
|
||||||
}
|
|
||||||
// Use the highest available version that matches versionInput
|
// Use the highest available version that matches versionInput
|
||||||
let version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease });
|
let version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease });
|
||||||
if (version == null) {
|
if (version == null) {
|
||||||
@@ -7388,8 +7380,8 @@ class Range {
|
|||||||
|
|
||||||
module.exports = Range
|
module.exports = Range
|
||||||
|
|
||||||
const LRU = __nccwpck_require__(5339)
|
const LRU = __nccwpck_require__(1196)
|
||||||
const cache = new LRU()
|
const cache = new LRU({ max: 1000 })
|
||||||
|
|
||||||
const parseOptions = __nccwpck_require__(785)
|
const parseOptions = __nccwpck_require__(785)
|
||||||
const Comparator = __nccwpck_require__(1532)
|
const Comparator = __nccwpck_require__(1532)
|
||||||
@@ -7660,10 +7652,9 @@ const replaceGTE0 = (comp, options) => {
|
|||||||
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
|
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
|
||||||
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
|
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
|
||||||
// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
|
// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
|
||||||
// TODO build?
|
|
||||||
const hyphenReplace = incPr => ($0,
|
const hyphenReplace = incPr => ($0,
|
||||||
from, fM, fm, fp, fpr, fb,
|
from, fM, fm, fp, fpr, fb,
|
||||||
to, tM, tm, tp, tpr) => {
|
to, tM, tm, tp, tpr, tb) => {
|
||||||
if (isX(fM)) {
|
if (isX(fM)) {
|
||||||
from = ''
|
from = ''
|
||||||
} else if (isX(fm)) {
|
} else if (isX(fm)) {
|
||||||
@@ -7895,7 +7886,7 @@ class SemVer {
|
|||||||
do {
|
do {
|
||||||
const a = this.build[i]
|
const a = this.build[i]
|
||||||
const b = other.build[i]
|
const b = other.build[i]
|
||||||
debug('build compare', i, a, b)
|
debug('prerelease compare', i, a, b)
|
||||||
if (a === undefined && b === undefined) {
|
if (a === undefined && b === undefined) {
|
||||||
return 0
|
return 0
|
||||||
} else if (b === undefined) {
|
} else if (b === undefined) {
|
||||||
@@ -8682,53 +8673,6 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 5339:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
class LRUCache {
|
|
||||||
constructor () {
|
|
||||||
this.max = 1000
|
|
||||||
this.map = new Map()
|
|
||||||
}
|
|
||||||
|
|
||||||
get (key) {
|
|
||||||
const value = this.map.get(key)
|
|
||||||
if (value === undefined) {
|
|
||||||
return undefined
|
|
||||||
} else {
|
|
||||||
// Remove the key from the map and add it to the end
|
|
||||||
this.map.delete(key)
|
|
||||||
this.map.set(key, value)
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
delete (key) {
|
|
||||||
return this.map.delete(key)
|
|
||||||
}
|
|
||||||
|
|
||||||
set (key, value) {
|
|
||||||
const deleted = this.delete(key)
|
|
||||||
|
|
||||||
if (!deleted && value !== undefined) {
|
|
||||||
// If cache is full, delete the least recently used item
|
|
||||||
if (this.map.size >= this.max) {
|
|
||||||
const firstKey = this.map.keys().next().value
|
|
||||||
this.delete(firstKey)
|
|
||||||
}
|
|
||||||
|
|
||||||
this.map.set(key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = LRUCache
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 785:
|
/***/ 785:
|
||||||
@@ -8975,6 +8919,798 @@ createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$')
|
|||||||
createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$')
|
createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$')
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 1196:
|
||||||
|
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
|
||||||
|
// A linked list to keep track of recently-used-ness
|
||||||
|
const Yallist = __nccwpck_require__(220)
|
||||||
|
|
||||||
|
const MAX = Symbol('max')
|
||||||
|
const LENGTH = Symbol('length')
|
||||||
|
const LENGTH_CALCULATOR = Symbol('lengthCalculator')
|
||||||
|
const ALLOW_STALE = Symbol('allowStale')
|
||||||
|
const MAX_AGE = Symbol('maxAge')
|
||||||
|
const DISPOSE = Symbol('dispose')
|
||||||
|
const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')
|
||||||
|
const LRU_LIST = Symbol('lruList')
|
||||||
|
const CACHE = Symbol('cache')
|
||||||
|
const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')
|
||||||
|
|
||||||
|
const naiveLength = () => 1
|
||||||
|
|
||||||
|
// lruList is a yallist where the head is the youngest
|
||||||
|
// item, and the tail is the oldest. the list contains the Hit
|
||||||
|
// objects as the entries.
|
||||||
|
// Each Hit object has a reference to its Yallist.Node. This
|
||||||
|
// never changes.
|
||||||
|
//
|
||||||
|
// cache is a Map (or PseudoMap) that matches the keys to
|
||||||
|
// the Yallist.Node object.
|
||||||
|
class LRUCache {
|
||||||
|
constructor (options) {
|
||||||
|
if (typeof options === 'number')
|
||||||
|
options = { max: options }
|
||||||
|
|
||||||
|
if (!options)
|
||||||
|
options = {}
|
||||||
|
|
||||||
|
if (options.max && (typeof options.max !== 'number' || options.max < 0))
|
||||||
|
throw new TypeError('max must be a non-negative number')
|
||||||
|
// Kind of weird to have a default max of Infinity, but oh well.
|
||||||
|
const max = this[MAX] = options.max || Infinity
|
||||||
|
|
||||||
|
const lc = options.length || naiveLength
|
||||||
|
this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc
|
||||||
|
this[ALLOW_STALE] = options.stale || false
|
||||||
|
if (options.maxAge && typeof options.maxAge !== 'number')
|
||||||
|
throw new TypeError('maxAge must be a number')
|
||||||
|
this[MAX_AGE] = options.maxAge || 0
|
||||||
|
this[DISPOSE] = options.dispose
|
||||||
|
this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false
|
||||||
|
this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false
|
||||||
|
this.reset()
|
||||||
|
}
|
||||||
|
|
||||||
|
// resize the cache when the max changes.
|
||||||
|
set max (mL) {
|
||||||
|
if (typeof mL !== 'number' || mL < 0)
|
||||||
|
throw new TypeError('max must be a non-negative number')
|
||||||
|
|
||||||
|
this[MAX] = mL || Infinity
|
||||||
|
trim(this)
|
||||||
|
}
|
||||||
|
get max () {
|
||||||
|
return this[MAX]
|
||||||
|
}
|
||||||
|
|
||||||
|
set allowStale (allowStale) {
|
||||||
|
this[ALLOW_STALE] = !!allowStale
|
||||||
|
}
|
||||||
|
get allowStale () {
|
||||||
|
return this[ALLOW_STALE]
|
||||||
|
}
|
||||||
|
|
||||||
|
set maxAge (mA) {
|
||||||
|
if (typeof mA !== 'number')
|
||||||
|
throw new TypeError('maxAge must be a non-negative number')
|
||||||
|
|
||||||
|
this[MAX_AGE] = mA
|
||||||
|
trim(this)
|
||||||
|
}
|
||||||
|
get maxAge () {
|
||||||
|
return this[MAX_AGE]
|
||||||
|
}
|
||||||
|
|
||||||
|
// resize the cache when the lengthCalculator changes.
|
||||||
|
set lengthCalculator (lC) {
|
||||||
|
if (typeof lC !== 'function')
|
||||||
|
lC = naiveLength
|
||||||
|
|
||||||
|
if (lC !== this[LENGTH_CALCULATOR]) {
|
||||||
|
this[LENGTH_CALCULATOR] = lC
|
||||||
|
this[LENGTH] = 0
|
||||||
|
this[LRU_LIST].forEach(hit => {
|
||||||
|
hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)
|
||||||
|
this[LENGTH] += hit.length
|
||||||
|
})
|
||||||
|
}
|
||||||
|
trim(this)
|
||||||
|
}
|
||||||
|
get lengthCalculator () { return this[LENGTH_CALCULATOR] }
|
||||||
|
|
||||||
|
get length () { return this[LENGTH] }
|
||||||
|
get itemCount () { return this[LRU_LIST].length }
|
||||||
|
|
||||||
|
rforEach (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
for (let walker = this[LRU_LIST].tail; walker !== null;) {
|
||||||
|
const prev = walker.prev
|
||||||
|
forEachStep(this, fn, walker, thisp)
|
||||||
|
walker = prev
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
forEach (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
for (let walker = this[LRU_LIST].head; walker !== null;) {
|
||||||
|
const next = walker.next
|
||||||
|
forEachStep(this, fn, walker, thisp)
|
||||||
|
walker = next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
keys () {
|
||||||
|
return this[LRU_LIST].toArray().map(k => k.key)
|
||||||
|
}
|
||||||
|
|
||||||
|
values () {
|
||||||
|
return this[LRU_LIST].toArray().map(k => k.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
reset () {
|
||||||
|
if (this[DISPOSE] &&
|
||||||
|
this[LRU_LIST] &&
|
||||||
|
this[LRU_LIST].length) {
|
||||||
|
this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))
|
||||||
|
}
|
||||||
|
|
||||||
|
this[CACHE] = new Map() // hash of items by key
|
||||||
|
this[LRU_LIST] = new Yallist() // list of items in order of use recency
|
||||||
|
this[LENGTH] = 0 // length of items in the list
|
||||||
|
}
|
||||||
|
|
||||||
|
dump () {
|
||||||
|
return this[LRU_LIST].map(hit =>
|
||||||
|
isStale(this, hit) ? false : {
|
||||||
|
k: hit.key,
|
||||||
|
v: hit.value,
|
||||||
|
e: hit.now + (hit.maxAge || 0)
|
||||||
|
}).toArray().filter(h => h)
|
||||||
|
}
|
||||||
|
|
||||||
|
dumpLru () {
|
||||||
|
return this[LRU_LIST]
|
||||||
|
}
|
||||||
|
|
||||||
|
set (key, value, maxAge) {
|
||||||
|
maxAge = maxAge || this[MAX_AGE]
|
||||||
|
|
||||||
|
if (maxAge && typeof maxAge !== 'number')
|
||||||
|
throw new TypeError('maxAge must be a number')
|
||||||
|
|
||||||
|
const now = maxAge ? Date.now() : 0
|
||||||
|
const len = this[LENGTH_CALCULATOR](value, key)
|
||||||
|
|
||||||
|
if (this[CACHE].has(key)) {
|
||||||
|
if (len > this[MAX]) {
|
||||||
|
del(this, this[CACHE].get(key))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
const node = this[CACHE].get(key)
|
||||||
|
const item = node.value
|
||||||
|
|
||||||
|
// dispose of the old one before overwriting
|
||||||
|
// split out into 2 ifs for better coverage tracking
|
||||||
|
if (this[DISPOSE]) {
|
||||||
|
if (!this[NO_DISPOSE_ON_SET])
|
||||||
|
this[DISPOSE](key, item.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
item.now = now
|
||||||
|
item.maxAge = maxAge
|
||||||
|
item.value = value
|
||||||
|
this[LENGTH] += len - item.length
|
||||||
|
item.length = len
|
||||||
|
this.get(key)
|
||||||
|
trim(this)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
const hit = new Entry(key, value, len, now, maxAge)
|
||||||
|
|
||||||
|
// oversized objects fall out of cache automatically.
|
||||||
|
if (hit.length > this[MAX]) {
|
||||||
|
if (this[DISPOSE])
|
||||||
|
this[DISPOSE](key, value)
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
this[LENGTH] += hit.length
|
||||||
|
this[LRU_LIST].unshift(hit)
|
||||||
|
this[CACHE].set(key, this[LRU_LIST].head)
|
||||||
|
trim(this)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
has (key) {
|
||||||
|
if (!this[CACHE].has(key)) return false
|
||||||
|
const hit = this[CACHE].get(key).value
|
||||||
|
return !isStale(this, hit)
|
||||||
|
}
|
||||||
|
|
||||||
|
get (key) {
|
||||||
|
return get(this, key, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
peek (key) {
|
||||||
|
return get(this, key, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
pop () {
|
||||||
|
const node = this[LRU_LIST].tail
|
||||||
|
if (!node)
|
||||||
|
return null
|
||||||
|
|
||||||
|
del(this, node)
|
||||||
|
return node.value
|
||||||
|
}
|
||||||
|
|
||||||
|
del (key) {
|
||||||
|
del(this, this[CACHE].get(key))
|
||||||
|
}
|
||||||
|
|
||||||
|
load (arr) {
|
||||||
|
// reset the cache
|
||||||
|
this.reset()
|
||||||
|
|
||||||
|
const now = Date.now()
|
||||||
|
// A previous serialized cache has the most recent items first
|
||||||
|
for (let l = arr.length - 1; l >= 0; l--) {
|
||||||
|
const hit = arr[l]
|
||||||
|
const expiresAt = hit.e || 0
|
||||||
|
if (expiresAt === 0)
|
||||||
|
// the item was created without expiration in a non aged cache
|
||||||
|
this.set(hit.k, hit.v)
|
||||||
|
else {
|
||||||
|
const maxAge = expiresAt - now
|
||||||
|
// dont add already expired items
|
||||||
|
if (maxAge > 0) {
|
||||||
|
this.set(hit.k, hit.v, maxAge)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prune () {
|
||||||
|
this[CACHE].forEach((value, key) => get(this, key, false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const get = (self, key, doUse) => {
|
||||||
|
const node = self[CACHE].get(key)
|
||||||
|
if (node) {
|
||||||
|
const hit = node.value
|
||||||
|
if (isStale(self, hit)) {
|
||||||
|
del(self, node)
|
||||||
|
if (!self[ALLOW_STALE])
|
||||||
|
return undefined
|
||||||
|
} else {
|
||||||
|
if (doUse) {
|
||||||
|
if (self[UPDATE_AGE_ON_GET])
|
||||||
|
node.value.now = Date.now()
|
||||||
|
self[LRU_LIST].unshiftNode(node)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hit.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const isStale = (self, hit) => {
|
||||||
|
if (!hit || (!hit.maxAge && !self[MAX_AGE]))
|
||||||
|
return false
|
||||||
|
|
||||||
|
const diff = Date.now() - hit.now
|
||||||
|
return hit.maxAge ? diff > hit.maxAge
|
||||||
|
: self[MAX_AGE] && (diff > self[MAX_AGE])
|
||||||
|
}
|
||||||
|
|
||||||
|
const trim = self => {
|
||||||
|
if (self[LENGTH] > self[MAX]) {
|
||||||
|
for (let walker = self[LRU_LIST].tail;
|
||||||
|
self[LENGTH] > self[MAX] && walker !== null;) {
|
||||||
|
// We know that we're about to delete this one, and also
|
||||||
|
// what the next least recently used key will be, so just
|
||||||
|
// go ahead and set it now.
|
||||||
|
const prev = walker.prev
|
||||||
|
del(self, walker)
|
||||||
|
walker = prev
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const del = (self, node) => {
|
||||||
|
if (node) {
|
||||||
|
const hit = node.value
|
||||||
|
if (self[DISPOSE])
|
||||||
|
self[DISPOSE](hit.key, hit.value)
|
||||||
|
|
||||||
|
self[LENGTH] -= hit.length
|
||||||
|
self[CACHE].delete(hit.key)
|
||||||
|
self[LRU_LIST].removeNode(node)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Entry {
|
||||||
|
constructor (key, value, length, now, maxAge) {
|
||||||
|
this.key = key
|
||||||
|
this.value = value
|
||||||
|
this.length = length
|
||||||
|
this.now = now
|
||||||
|
this.maxAge = maxAge || 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const forEachStep = (self, fn, node, thisp) => {
|
||||||
|
let hit = node.value
|
||||||
|
if (isStale(self, hit)) {
|
||||||
|
del(self, node)
|
||||||
|
if (!self[ALLOW_STALE])
|
||||||
|
hit = undefined
|
||||||
|
}
|
||||||
|
if (hit)
|
||||||
|
fn.call(thisp, hit.value, hit.key, self)
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = LRUCache
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 5327:
|
||||||
|
/***/ ((module) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = function (Yallist) {
|
||||||
|
Yallist.prototype[Symbol.iterator] = function* () {
|
||||||
|
for (let walker = this.head; walker; walker = walker.next) {
|
||||||
|
yield walker.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 220:
|
||||||
|
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = Yallist
|
||||||
|
|
||||||
|
Yallist.Node = Node
|
||||||
|
Yallist.create = Yallist
|
||||||
|
|
||||||
|
function Yallist (list) {
|
||||||
|
var self = this
|
||||||
|
if (!(self instanceof Yallist)) {
|
||||||
|
self = new Yallist()
|
||||||
|
}
|
||||||
|
|
||||||
|
self.tail = null
|
||||||
|
self.head = null
|
||||||
|
self.length = 0
|
||||||
|
|
||||||
|
if (list && typeof list.forEach === 'function') {
|
||||||
|
list.forEach(function (item) {
|
||||||
|
self.push(item)
|
||||||
|
})
|
||||||
|
} else if (arguments.length > 0) {
|
||||||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||||||
|
self.push(arguments[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.removeNode = function (node) {
|
||||||
|
if (node.list !== this) {
|
||||||
|
throw new Error('removing node which does not belong to this list')
|
||||||
|
}
|
||||||
|
|
||||||
|
var next = node.next
|
||||||
|
var prev = node.prev
|
||||||
|
|
||||||
|
if (next) {
|
||||||
|
next.prev = prev
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prev) {
|
||||||
|
prev.next = next
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node === this.head) {
|
||||||
|
this.head = next
|
||||||
|
}
|
||||||
|
if (node === this.tail) {
|
||||||
|
this.tail = prev
|
||||||
|
}
|
||||||
|
|
||||||
|
node.list.length--
|
||||||
|
node.next = null
|
||||||
|
node.prev = null
|
||||||
|
node.list = null
|
||||||
|
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.unshiftNode = function (node) {
|
||||||
|
if (node === this.head) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.list) {
|
||||||
|
node.list.removeNode(node)
|
||||||
|
}
|
||||||
|
|
||||||
|
var head = this.head
|
||||||
|
node.list = this
|
||||||
|
node.next = head
|
||||||
|
if (head) {
|
||||||
|
head.prev = node
|
||||||
|
}
|
||||||
|
|
||||||
|
this.head = node
|
||||||
|
if (!this.tail) {
|
||||||
|
this.tail = node
|
||||||
|
}
|
||||||
|
this.length++
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.pushNode = function (node) {
|
||||||
|
if (node === this.tail) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.list) {
|
||||||
|
node.list.removeNode(node)
|
||||||
|
}
|
||||||
|
|
||||||
|
var tail = this.tail
|
||||||
|
node.list = this
|
||||||
|
node.prev = tail
|
||||||
|
if (tail) {
|
||||||
|
tail.next = node
|
||||||
|
}
|
||||||
|
|
||||||
|
this.tail = node
|
||||||
|
if (!this.head) {
|
||||||
|
this.head = node
|
||||||
|
}
|
||||||
|
this.length++
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.push = function () {
|
||||||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||||||
|
push(this, arguments[i])
|
||||||
|
}
|
||||||
|
return this.length
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.unshift = function () {
|
||||||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||||||
|
unshift(this, arguments[i])
|
||||||
|
}
|
||||||
|
return this.length
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.pop = function () {
|
||||||
|
if (!this.tail) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
var res = this.tail.value
|
||||||
|
this.tail = this.tail.prev
|
||||||
|
if (this.tail) {
|
||||||
|
this.tail.next = null
|
||||||
|
} else {
|
||||||
|
this.head = null
|
||||||
|
}
|
||||||
|
this.length--
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.shift = function () {
|
||||||
|
if (!this.head) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
var res = this.head.value
|
||||||
|
this.head = this.head.next
|
||||||
|
if (this.head) {
|
||||||
|
this.head.prev = null
|
||||||
|
} else {
|
||||||
|
this.tail = null
|
||||||
|
}
|
||||||
|
this.length--
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.forEach = function (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
for (var walker = this.head, i = 0; walker !== null; i++) {
|
||||||
|
fn.call(thisp, walker.value, i, this)
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.forEachReverse = function (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
|
||||||
|
fn.call(thisp, walker.value, i, this)
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.get = function (n) {
|
||||||
|
for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
|
||||||
|
// abort out of the list early if we hit a cycle
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
if (i === n && walker !== null) {
|
||||||
|
return walker.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.getReverse = function (n) {
|
||||||
|
for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
|
||||||
|
// abort out of the list early if we hit a cycle
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
if (i === n && walker !== null) {
|
||||||
|
return walker.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.map = function (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
var res = new Yallist()
|
||||||
|
for (var walker = this.head; walker !== null;) {
|
||||||
|
res.push(fn.call(thisp, walker.value, this))
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.mapReverse = function (fn, thisp) {
|
||||||
|
thisp = thisp || this
|
||||||
|
var res = new Yallist()
|
||||||
|
for (var walker = this.tail; walker !== null;) {
|
||||||
|
res.push(fn.call(thisp, walker.value, this))
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.reduce = function (fn, initial) {
|
||||||
|
var acc
|
||||||
|
var walker = this.head
|
||||||
|
if (arguments.length > 1) {
|
||||||
|
acc = initial
|
||||||
|
} else if (this.head) {
|
||||||
|
walker = this.head.next
|
||||||
|
acc = this.head.value
|
||||||
|
} else {
|
||||||
|
throw new TypeError('Reduce of empty list with no initial value')
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; walker !== null; i++) {
|
||||||
|
acc = fn(acc, walker.value, i)
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.reduceReverse = function (fn, initial) {
|
||||||
|
var acc
|
||||||
|
var walker = this.tail
|
||||||
|
if (arguments.length > 1) {
|
||||||
|
acc = initial
|
||||||
|
} else if (this.tail) {
|
||||||
|
walker = this.tail.prev
|
||||||
|
acc = this.tail.value
|
||||||
|
} else {
|
||||||
|
throw new TypeError('Reduce of empty list with no initial value')
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = this.length - 1; walker !== null; i--) {
|
||||||
|
acc = fn(acc, walker.value, i)
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.toArray = function () {
|
||||||
|
var arr = new Array(this.length)
|
||||||
|
for (var i = 0, walker = this.head; walker !== null; i++) {
|
||||||
|
arr[i] = walker.value
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.toArrayReverse = function () {
|
||||||
|
var arr = new Array(this.length)
|
||||||
|
for (var i = 0, walker = this.tail; walker !== null; i++) {
|
||||||
|
arr[i] = walker.value
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.slice = function (from, to) {
|
||||||
|
to = to || this.length
|
||||||
|
if (to < 0) {
|
||||||
|
to += this.length
|
||||||
|
}
|
||||||
|
from = from || 0
|
||||||
|
if (from < 0) {
|
||||||
|
from += this.length
|
||||||
|
}
|
||||||
|
var ret = new Yallist()
|
||||||
|
if (to < from || to < 0) {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
if (from < 0) {
|
||||||
|
from = 0
|
||||||
|
}
|
||||||
|
if (to > this.length) {
|
||||||
|
to = this.length
|
||||||
|
}
|
||||||
|
for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
for (; walker !== null && i < to; i++, walker = walker.next) {
|
||||||
|
ret.push(walker.value)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.sliceReverse = function (from, to) {
|
||||||
|
to = to || this.length
|
||||||
|
if (to < 0) {
|
||||||
|
to += this.length
|
||||||
|
}
|
||||||
|
from = from || 0
|
||||||
|
if (from < 0) {
|
||||||
|
from += this.length
|
||||||
|
}
|
||||||
|
var ret = new Yallist()
|
||||||
|
if (to < from || to < 0) {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
if (from < 0) {
|
||||||
|
from = 0
|
||||||
|
}
|
||||||
|
if (to > this.length) {
|
||||||
|
to = this.length
|
||||||
|
}
|
||||||
|
for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
for (; walker !== null && i > from; i--, walker = walker.prev) {
|
||||||
|
ret.push(walker.value)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.splice = function (start, deleteCount, ...nodes) {
|
||||||
|
if (start > this.length) {
|
||||||
|
start = this.length - 1
|
||||||
|
}
|
||||||
|
if (start < 0) {
|
||||||
|
start = this.length + start;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
|
||||||
|
walker = walker.next
|
||||||
|
}
|
||||||
|
|
||||||
|
var ret = []
|
||||||
|
for (var i = 0; walker && i < deleteCount; i++) {
|
||||||
|
ret.push(walker.value)
|
||||||
|
walker = this.removeNode(walker)
|
||||||
|
}
|
||||||
|
if (walker === null) {
|
||||||
|
walker = this.tail
|
||||||
|
}
|
||||||
|
|
||||||
|
if (walker !== this.head && walker !== this.tail) {
|
||||||
|
walker = walker.prev
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
|
walker = insert(this, walker, nodes[i])
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
Yallist.prototype.reverse = function () {
|
||||||
|
var head = this.head
|
||||||
|
var tail = this.tail
|
||||||
|
for (var walker = head; walker !== null; walker = walker.prev) {
|
||||||
|
var p = walker.prev
|
||||||
|
walker.prev = walker.next
|
||||||
|
walker.next = p
|
||||||
|
}
|
||||||
|
this.head = tail
|
||||||
|
this.tail = head
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
function insert (self, node, value) {
|
||||||
|
var inserted = node === self.head ?
|
||||||
|
new Node(value, null, node, self) :
|
||||||
|
new Node(value, node, node.next, self)
|
||||||
|
|
||||||
|
if (inserted.next === null) {
|
||||||
|
self.tail = inserted
|
||||||
|
}
|
||||||
|
if (inserted.prev === null) {
|
||||||
|
self.head = inserted
|
||||||
|
}
|
||||||
|
|
||||||
|
self.length++
|
||||||
|
|
||||||
|
return inserted
|
||||||
|
}
|
||||||
|
|
||||||
|
function push (self, item) {
|
||||||
|
self.tail = new Node(item, self.tail, null, self)
|
||||||
|
if (!self.head) {
|
||||||
|
self.head = self.tail
|
||||||
|
}
|
||||||
|
self.length++
|
||||||
|
}
|
||||||
|
|
||||||
|
function unshift (self, item) {
|
||||||
|
self.head = new Node(item, null, self.head, self)
|
||||||
|
if (!self.tail) {
|
||||||
|
self.tail = self.head
|
||||||
|
}
|
||||||
|
self.length++
|
||||||
|
}
|
||||||
|
|
||||||
|
function Node (value, prev, next, list) {
|
||||||
|
if (!(this instanceof Node)) {
|
||||||
|
return new Node(value, prev, next, list)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.list = list
|
||||||
|
this.value = value
|
||||||
|
|
||||||
|
if (prev) {
|
||||||
|
prev.next = this
|
||||||
|
this.prev = prev
|
||||||
|
} else {
|
||||||
|
this.prev = null
|
||||||
|
}
|
||||||
|
|
||||||
|
if (next) {
|
||||||
|
next.prev = this
|
||||||
|
this.next = next
|
||||||
|
} else {
|
||||||
|
this.next = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// add if support for Symbol.iterator is present
|
||||||
|
__nccwpck_require__(5327)(Yallist)
|
||||||
|
} catch (er) {}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 9380:
|
/***/ 9380:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Misc notes for contributors
|
# Contributors
|
||||||
|
|
||||||
### Checkin
|
### Checkin
|
||||||
|
|
||||||
@@ -19,4 +19,4 @@ git commit -m "Informative commit message" # Commit. This will run Husky
|
|||||||
```
|
```
|
||||||
|
|
||||||
During the commit step, Husky will take care of formatting all files with [Prettier](https://github.com/prettier/prettier) as well as pruning out devDependencies using `npm prune --production`.
|
During the commit step, Husky will take care of formatting all files with [Prettier](https://github.com/prettier/prettier) as well as pruning out devDependencies using `npm prune --production`.
|
||||||
It will also make sure these changes are appropriately included in your commit (no further work is needed)
|
It will also make sure these changes are appropriately included in your commit (no further work is needed)
|
||||||
8
lib/installer.js
generated
8
lib/installer.js
generated
@@ -42,8 +42,6 @@ const os = __importStar(require("os"));
|
|||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
const retry = require("async-retry");
|
const retry = require("async-retry");
|
||||||
const semver = __importStar(require("semver"));
|
const semver = __importStar(require("semver"));
|
||||||
const LTS_VERSION = '1.6';
|
|
||||||
const MAJOR_VERSION = '1'; // Could be deduced from versions.json
|
|
||||||
// Translations between actions input and Julia arch names
|
// Translations between actions input and Julia arch names
|
||||||
const osMap = {
|
const osMap = {
|
||||||
'win32': 'winnt',
|
'win32': 'winnt',
|
||||||
@@ -113,12 +111,6 @@ function getJuliaVersion(availableReleases, versionInput, includePrerelease = fa
|
|||||||
// versionInput is a valid version or a nightly version, use it directly
|
// versionInput is a valid version or a nightly version, use it directly
|
||||||
return versionInput;
|
return versionInput;
|
||||||
}
|
}
|
||||||
if (versionInput == 'lts') {
|
|
||||||
return getJuliaVersion(availableReleases, LTS_VERSION, false);
|
|
||||||
}
|
|
||||||
if (versionInput == 'pre') {
|
|
||||||
return getJuliaVersion(availableReleases, MAJOR_VERSION, true);
|
|
||||||
}
|
|
||||||
// Use the highest available version that matches versionInput
|
// Use the highest available version that matches versionInput
|
||||||
let version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease });
|
let version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease });
|
||||||
if (version == null) {
|
if (version == null) {
|
||||||
|
|||||||
103
package-lock.json
generated
103
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.2.0",
|
"version": "2.1.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.2.0",
|
"version": "2.1.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.1",
|
"@actions/core": "^1.10.1",
|
||||||
@@ -14,20 +14,20 @@
|
|||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.3",
|
||||||
"semver": "^7.6.2"
|
"semver": "^7.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.8",
|
"@types/async-retry": "^1.4.8",
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.12",
|
||||||
"@types/node": "^20.14.6",
|
"@types/node": "^20.12.8",
|
||||||
"@types/retry": "^0.12.5",
|
"@types/retry": "^0.12.5",
|
||||||
"@types/semver": "^7.5.8",
|
"@types/semver": "^7.5.8",
|
||||||
"@vercel/ncc": "^0.38.1",
|
"@vercel/ncc": "^0.38.1",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"jest-circus": "^29.7.0",
|
"jest-circus": "^29.7.0",
|
||||||
"nock": "^13.5.4",
|
"nock": "^13.5.4",
|
||||||
"prettier": "^3.3.2",
|
"prettier": "^3.2.5",
|
||||||
"ts-jest": "^29.1.5",
|
"ts-jest": "^29.1.2",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1467,9 +1467,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.14.6",
|
"version": "20.12.8",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
|
||||||
"integrity": "sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==",
|
"integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
@@ -4585,9 +4585,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "3.3.2",
|
"version": "3.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
|
||||||
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"prettier": "bin/prettier.cjs"
|
"prettier": "bin/prettier.cjs"
|
||||||
@@ -4740,9 +4740,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/semver": {
|
"node_modules/semver": {
|
||||||
"version": "7.6.2",
|
"version": "7.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
||||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
|
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
},
|
},
|
||||||
@@ -4750,6 +4753,22 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/semver/node_modules/lru-cache": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
|
"dependencies": {
|
||||||
|
"yallist": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/semver/node_modules/yallist": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
|
},
|
||||||
"node_modules/shebang-command": {
|
"node_modules/shebang-command": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||||
@@ -4973,9 +4992,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ts-jest": {
|
"node_modules/ts-jest": {
|
||||||
"version": "29.1.5",
|
"version": "29.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
|
||||||
"integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==",
|
"integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bs-logger": "0.x",
|
"bs-logger": "0.x",
|
||||||
@@ -4991,11 +5010,10 @@
|
|||||||
"ts-jest": "cli.js"
|
"ts-jest": "cli.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
|
"node": "^16.10.0 || ^18.0.0 || >=20.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@babel/core": ">=7.0.0-beta.0 <8",
|
"@babel/core": ">=7.0.0-beta.0 <8",
|
||||||
"@jest/transform": "^29.0.0",
|
|
||||||
"@jest/types": "^29.0.0",
|
"@jest/types": "^29.0.0",
|
||||||
"babel-jest": "^29.0.0",
|
"babel-jest": "^29.0.0",
|
||||||
"jest": "^29.0.0",
|
"jest": "^29.0.0",
|
||||||
@@ -5005,9 +5023,6 @@
|
|||||||
"@babel/core": {
|
"@babel/core": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@jest/transform": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@jest/types": {
|
"@jest/types": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
@@ -6400,9 +6415,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "20.14.6",
|
"version": "20.12.8",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
|
||||||
"integrity": "sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==",
|
"integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
@@ -8715,9 +8730,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"version": "3.3.2",
|
"version": "3.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
|
||||||
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pretty-format": {
|
"pretty-format": {
|
||||||
@@ -8817,9 +8832,27 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "7.6.2",
|
"version": "7.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
||||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="
|
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
|
||||||
|
"requires": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
|
"requires": {
|
||||||
|
"yallist": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yallist": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"shebang-command": {
|
"shebang-command": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -8989,9 +9022,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ts-jest": {
|
"ts-jest": {
|
||||||
"version": "29.1.5",
|
"version": "29.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
|
||||||
"integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==",
|
"integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"bs-logger": "0.x",
|
"bs-logger": "0.x",
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.2.0",
|
"version": "2.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "setup Julia action",
|
"description": "setup Julia action",
|
||||||
"main": "lib/setup-julia.js",
|
"main": "lib/setup-julia.js",
|
||||||
@@ -26,20 +26,20 @@
|
|||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.3",
|
||||||
"semver": "^7.6.2"
|
"semver": "^7.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.8",
|
"@types/async-retry": "^1.4.8",
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.12",
|
||||||
"@types/node": "^20.14.6",
|
"@types/node": "^20.12.8",
|
||||||
"@types/retry": "^0.12.5",
|
"@types/retry": "^0.12.5",
|
||||||
"@types/semver": "^7.5.8",
|
"@types/semver": "^7.5.8",
|
||||||
"@vercel/ncc": "^0.38.1",
|
"@vercel/ncc": "^0.38.1",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"jest-circus": "^29.7.0",
|
"jest-circus": "^29.7.0",
|
||||||
"nock": "^13.5.4",
|
"nock": "^13.5.4",
|
||||||
"prettier": "^3.3.2",
|
"prettier": "^3.2.5",
|
||||||
"ts-jest": "^29.1.5",
|
"ts-jest": "^29.1.2",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ import retry = require('async-retry')
|
|||||||
|
|
||||||
import * as semver from 'semver'
|
import * as semver from 'semver'
|
||||||
|
|
||||||
const LTS_VERSION = '1.6'
|
|
||||||
const MAJOR_VERSION = '1' // Could be deduced from versions.json
|
|
||||||
|
|
||||||
// Translations between actions input and Julia arch names
|
// Translations between actions input and Julia arch names
|
||||||
const osMap = {
|
const osMap = {
|
||||||
'win32': 'winnt',
|
'win32': 'winnt',
|
||||||
@@ -85,14 +82,6 @@ export function getJuliaVersion(availableReleases: string[], versionInput: strin
|
|||||||
return versionInput
|
return versionInput
|
||||||
}
|
}
|
||||||
|
|
||||||
if (versionInput == 'lts') {
|
|
||||||
return getJuliaVersion(availableReleases, LTS_VERSION, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (versionInput == 'pre') {
|
|
||||||
return getJuliaVersion(availableReleases, MAJOR_VERSION, true)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use the highest available version that matches versionInput
|
// Use the highest available version that matches versionInput
|
||||||
let version = semver.maxSatisfying(availableReleases, versionInput, {includePrerelease})
|
let version = semver.maxSatisfying(availableReleases, versionInput, {includePrerelease})
|
||||||
if (version == null) {
|
if (version == null) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import * as core from '@actions/core'
|
import * as core from '@actions/core'
|
||||||
|
import * as exec from '@actions/exec'
|
||||||
import * as tc from '@actions/tool-cache'
|
import * as tc from '@actions/tool-cache'
|
||||||
|
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
|
|||||||
Reference in New Issue
Block a user