mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-02-14 03:56:53 +08:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c9647d97b | ||
|
|
17468e89a3 | ||
|
|
c861e46bed | ||
|
|
2fa18025fe | ||
|
|
05e75bd682 | ||
|
|
9b79636afc | ||
|
|
0360370b20 | ||
|
|
4e3f1d687a | ||
|
|
1068b5ed3f | ||
|
|
f42f7fb072 | ||
|
|
a06d998188 | ||
|
|
83c1b1f3c9 | ||
|
|
be1659352d | ||
|
|
d6ffb3065b | ||
|
|
95d7bc0174 | ||
|
|
6cb24233ff | ||
|
|
a0a0978e28 | ||
|
|
54be0dc244 |
36
.github/workflows/checkin.yml
vendored
36
.github/workflows/checkin.yml
vendored
@@ -1,36 +0,0 @@
|
|||||||
name: "PR Checks"
|
|
||||||
on: [pull_request, push]
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
# Skip intermediate builds: all builds except for builds on the `master`, `main`, or `release-*` branches
|
|
||||||
# Cancel intermediate builds: only pull request builds
|
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.ref != 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release-') || github.run_number }}
|
|
||||||
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check_pr:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version-file: '.tool-versions'
|
|
||||||
|
|
||||||
- name: "npm ci"
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: "npm run build"
|
|
||||||
run: npm run build
|
|
||||||
|
|
||||||
- name: "npm run test"
|
|
||||||
run: npm run test
|
|
||||||
|
|
||||||
- name: "check for uncommitted changes"
|
|
||||||
# Ensure no changes, but ignore node_modules dir since dev/fresh ci deps installed.
|
|
||||||
run: |
|
|
||||||
git diff --exit-code --stat -- . ':!node_modules' \
|
|
||||||
|| (echo "##[error] found changed files after build. please 'npm ci && npm run build'" \
|
|
||||||
"and check in all changes" \
|
|
||||||
&& exit 1)
|
|
||||||
7
.github/workflows/example-builds.yml
vendored
7
.github/workflows/example-builds.yml
vendored
@@ -27,6 +27,13 @@ jobs:
|
|||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macOS-latest
|
||||||
julia-arch: x86
|
julia-arch: x86
|
||||||
|
include:
|
||||||
|
- os: macOS-latest
|
||||||
|
julia-arch: aarch64
|
||||||
|
julia-version: 'lts'
|
||||||
|
- os: macOS-latest
|
||||||
|
julia-arch: aarch64
|
||||||
|
julia-version: '1'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
222
.github/workflows/pr_checks.yml
vendored
Normal file
222
.github/workflows/pr_checks.yml
vendored
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
name: PR Checks
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
tags: '*'
|
||||||
|
concurrency:
|
||||||
|
# Skip intermediate builds: all builds except for builds on the `master` branch
|
||||||
|
# Cancel intermediate builds: only pull request builds
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }}
|
||||||
|
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
jobs:
|
||||||
|
finalize-pr-checks:
|
||||||
|
if: always() # this line is important to keep the `finalize` job from being marked as skipped; do not change or delete this line
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
needs:
|
||||||
|
- checked-in-files
|
||||||
|
- build
|
||||||
|
- npm-run-test
|
||||||
|
- make-targets
|
||||||
|
- stalecheck-npm-install
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
echo checked-in-files: ${{ needs.checked-in-files.result }}
|
||||||
|
echo build: ${{ needs.build.result }}
|
||||||
|
echo npm-run-test: ${{ needs.npm-run-test.result }}
|
||||||
|
echo make-targets: ${{ needs.make-targets.result }}
|
||||||
|
echo stalecheck-npm-install: ${{ needs.stalecheck-npm-install.result }}
|
||||||
|
- run: exit 1
|
||||||
|
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
|
||||||
|
checked-in-files:
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
### Check out the repo:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
### Cleanall:
|
||||||
|
- run: make cleanall
|
||||||
|
### Install NodeJS
|
||||||
|
# Unix (non-Windows):
|
||||||
|
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
- run: make unix-asdf-install
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
# Windows:
|
||||||
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
|
# to install asdf:
|
||||||
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
with:
|
||||||
|
node-version-file: '.tool-versions'
|
||||||
|
### Install the NodeJS packages that we depend on:
|
||||||
|
- run: make install-packages
|
||||||
|
### Print some debugging info:
|
||||||
|
- name: Print the NodeJS version (for debugging)
|
||||||
|
run: |
|
||||||
|
which -a node
|
||||||
|
node --version
|
||||||
|
which -a npm
|
||||||
|
npm --version
|
||||||
|
### Build:
|
||||||
|
- run: make pack
|
||||||
|
### Clean (not cleanall!):
|
||||||
|
- run: make clean
|
||||||
|
### Make sure there are no uncommited changes
|
||||||
|
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
|
||||||
|
with:
|
||||||
|
version: '1'
|
||||||
|
- run: git --no-pager status
|
||||||
|
- run: git --no-pager diff
|
||||||
|
- run: julia ./ci/check_uncommitted_changes.jl
|
||||||
|
build:
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
### Check out the repo:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
### Cleanall:
|
||||||
|
- run: make cleanall
|
||||||
|
### Install NodeJS
|
||||||
|
# Unix (non-Windows):
|
||||||
|
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
- run: make unix-asdf-install
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
# Windows:
|
||||||
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
|
# to install asdf:
|
||||||
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
with:
|
||||||
|
node-version-file: '.tool-versions'
|
||||||
|
### Install the NodeJS packages that we depend on:
|
||||||
|
- run: make install-packages
|
||||||
|
### Print some debugging info:
|
||||||
|
- name: Print the NodeJS version (for debugging)
|
||||||
|
run: |
|
||||||
|
which -a node
|
||||||
|
node --version
|
||||||
|
which -a npm
|
||||||
|
npm --version
|
||||||
|
### Build:
|
||||||
|
- run: make build
|
||||||
|
- run: make pack
|
||||||
|
### Make sure some other `make` targets don't bitrot:
|
||||||
|
- name: Run some other `make` targets to ensure that they don't bitrot
|
||||||
|
run: |
|
||||||
|
make clean
|
||||||
|
make cleanall
|
||||||
|
- name: Run all of the "cleaning" `make` targets to ensure that they don't bitrot
|
||||||
|
run: |
|
||||||
|
make clean
|
||||||
|
make cleanall
|
||||||
|
npm-run-test:
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
### Check out the repo:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
### Cleanall:
|
||||||
|
- run: make cleanall
|
||||||
|
### Install NodeJS
|
||||||
|
# Unix (non-Windows):
|
||||||
|
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
- run: make unix-asdf-install
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
# Windows:
|
||||||
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
|
# to install asdf:
|
||||||
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
with:
|
||||||
|
node-version-file: '.tool-versions'
|
||||||
|
### Install the NodeJS packages that we depend on:
|
||||||
|
- run: make install-packages
|
||||||
|
### Print some debugging info:
|
||||||
|
- name: Print the NodeJS version (for debugging)
|
||||||
|
run: |
|
||||||
|
which -a node
|
||||||
|
node --version
|
||||||
|
which -a npm
|
||||||
|
npm --version
|
||||||
|
### Build:
|
||||||
|
- run: make build
|
||||||
|
- run: make test
|
||||||
|
make-targets: # This is a job to make sure that none of the `make` targets bitrot
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
### Check out the repo:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
### Cleanall:
|
||||||
|
- run: make cleanall
|
||||||
|
### Install NodeJS
|
||||||
|
# Unix (non-Windows):
|
||||||
|
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
- run: make unix-asdf-install
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
### Install the NodeJS packages that we depend on:
|
||||||
|
- run: make install-packages
|
||||||
|
### Make sure some other `make` targets don't bitrot:
|
||||||
|
- name: Run some other `make` targets to ensure that they don't bitrot
|
||||||
|
run: |
|
||||||
|
make unix-asdf-install
|
||||||
|
make install-packages
|
||||||
|
make build
|
||||||
|
make pack
|
||||||
|
make everything-from-scratch
|
||||||
|
- name: Run all of the "cleaning" `make` targets to ensure that they don't bitrot
|
||||||
|
run: |
|
||||||
|
make clean
|
||||||
|
make cleanall
|
||||||
|
stalecheck-npm-install:
|
||||||
|
# In this job, we are basically trying to check if `package-lock.json` is in
|
||||||
|
# sync with `package-lock.json`.
|
||||||
|
#
|
||||||
|
# So, for example, if someone manually edits the `package.json` file, we want
|
||||||
|
# to make sure that the `package-lock.json` file is not out of sync with the
|
||||||
|
# `package.json` file.
|
||||||
|
timeout-minutes: 30
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
### Check out the repo:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
### Install NodeJS
|
||||||
|
# Unix (non-Windows):
|
||||||
|
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
- run: make unix-asdf-install
|
||||||
|
if: runner.os != 'Windows'
|
||||||
|
### Run the master commands for this job:
|
||||||
|
- run: make clean
|
||||||
|
- run: npm ci
|
||||||
|
# - run: npm install --package-lock-only
|
||||||
|
- run: npm install
|
||||||
|
### Make sure there are no uncommited changes
|
||||||
|
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
|
||||||
|
with:
|
||||||
|
version: '1'
|
||||||
|
- run: git --no-pager status
|
||||||
|
- run: git --no-pager diff
|
||||||
|
- run: julia ./ci/check_uncommitted_changes.jl
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
__tests__/runner/*
|
__tests__/runner/*
|
||||||
dist/
|
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
|||||||
[submodule "bin"]
|
|
||||||
path = bin
|
|
||||||
url = git@github.com:julia-actions/bin.git
|
|
||||||
|
|||||||
49
Makefile
Normal file
49
Makefile
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
.NOTPARALLEL:
|
||||||
|
|
||||||
|
# This is the default target:
|
||||||
|
.PHONY: pack
|
||||||
|
pack: build
|
||||||
|
npm run pack
|
||||||
|
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.PHONY: everything-from-scratch
|
||||||
|
everything-from-scratch: cleanall install-packages build pack clean
|
||||||
|
|
||||||
|
# build does `npm run build`, but does not run `npm run pack`
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
npm run test
|
||||||
|
|
||||||
|
.PHONY: install-packages
|
||||||
|
install-packages:
|
||||||
|
rm -rf node_modules/
|
||||||
|
# Note: we use `npm ci` instead of `npm install`, because we want to make sure
|
||||||
|
# that we respect the versions in the `package-lock.json` lockfile.
|
||||||
|
npm ci
|
||||||
|
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf node_modules/
|
||||||
|
|
||||||
|
.PHONY: cleanall
|
||||||
|
cleanall: clean
|
||||||
|
rm -rf lib/
|
||||||
|
rm -rf dist/
|
||||||
|
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
# asdf does not support Windows.
|
||||||
|
# On Windows, users need to install the correct version of NodeJS themselves.
|
||||||
|
.PHONY: unix-asdf-install
|
||||||
|
unix-asdf-install:
|
||||||
|
asdf plugin add nodejs # update this list when we add more tools to `.tool-versions`
|
||||||
|
asdf install
|
||||||
|
|
||||||
|
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
11
README.md
11
README.md
@@ -122,6 +122,7 @@ 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`.
|
||||||
|
- `'1'` will install the latest v1 version of Julia.
|
||||||
- `'lts'` will install the latest LTS build.
|
- `'lts'` will install the latest LTS build.
|
||||||
- `'pre'` will install the latest prerelease build (RCs, betas, and alphas).
|
- `'pre'` will install the latest prerelease build (RCs, betas, and alphas).
|
||||||
- `'nightly'` will install the latest nightly build.
|
- `'nightly'` will install the latest nightly build.
|
||||||
@@ -193,12 +194,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: ['1.0', '1.2.0', '^1.3.0-rc1']
|
julia-version: ['1.0', '1.2.0', '^1.3.0-rc1']
|
||||||
julia-arch: [x64, x86]
|
julia-arch: [x64, x86, aarch64]
|
||||||
os: [ubuntu-latest, windows-latest, macOS-latest]
|
os: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# exclude unavailable/unwanted architectures
|
||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macOS-latest
|
||||||
julia-arch: x86
|
julia-arch: x86
|
||||||
|
- os: macOS-latest
|
||||||
|
julia-arch: x64 # can be run but via rosetta on apple silicon runners
|
||||||
|
- os: ubuntu-latest
|
||||||
|
julia-arch: aarch64
|
||||||
|
- os: windows-latest
|
||||||
|
julia-arch: aarch64
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -26,8 +26,8 @@ const testVersions = [
|
|||||||
'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.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.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.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.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.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.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.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.10.3', '1.10.4', '1.10.5',
|
||||||
'1.11.0-alpha1', '1.11.0-alpha2', '1.11.0-beta1'
|
'1.11.0', '1.11.0-alpha1', '1.11.0-alpha2', '1.11.0-beta1', '1.11.0-beta2', '1.11.0-rc1', '1.11.0-rc2', '1.11.0-rc3', '1.11.0-rc4',
|
||||||
]
|
]
|
||||||
|
|
||||||
const toolDir = path.join(__dirname, 'runner', 'tools')
|
const toolDir = path.join(__dirname, 'runner', 'tools')
|
||||||
@@ -187,30 +187,30 @@ describe('version matching tests', () => {
|
|||||||
|
|
||||||
it('LTS', () => {
|
it('LTS', () => {
|
||||||
// Update test when LTS is updated
|
// Update test when LTS is updated
|
||||||
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual(installer.getJuliaVersion(testVersions, '1.6'))
|
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual(installer.getJuliaVersion(testVersions, '1.10'))
|
||||||
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual('1.6.7')
|
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual('1.10.5')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('pre', () => {
|
it('pre', () => {
|
||||||
expect(installer.getJuliaVersion(testVersions, 'pre')).toEqual('1.11.0-beta1')
|
expect(installer.getJuliaVersion(testVersions, 'pre')).toEqual('1.11.0')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
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.11.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.11.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.11.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.10.0-rc1')).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.10.0-rc1')).toEqual('1.11.0')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
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.11.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.11.0-beta1')
|
expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.11.0')
|
||||||
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.10.2')
|
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.11.0')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
1
bin
1
bin
Submodule bin deleted from 0f674f357d
16
ci/check_uncommitted_changes.jl
Normal file
16
ci/check_uncommitted_changes.jl
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
const cmd = `git --no-pager diff --exit-code --stat`
|
||||||
|
|
||||||
|
const proc = run(pipeline(cmd; stdin, stdout, stderr); wait = false)
|
||||||
|
|
||||||
|
wait(proc)
|
||||||
|
|
||||||
|
@info "" success(proc) proc.exitcode
|
||||||
|
|
||||||
|
if !success(proc)
|
||||||
|
recommended_cmd = "make everything-from-scratch"
|
||||||
|
msg = "##[error] found changed files after build. " *
|
||||||
|
"Please run `$(recommended_cmd)` and " *
|
||||||
|
"then check in all changes."
|
||||||
|
println(stderr, msg)
|
||||||
|
exit(1)
|
||||||
|
end
|
||||||
@@ -42,6 +42,8 @@ First, `cd` to your clone of the repo. Now you can run the following commands:
|
|||||||
npm ci
|
npm ci
|
||||||
|
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
npm run pack
|
||||||
```
|
```
|
||||||
|
|
||||||
When you are ready, you can commit your changes and push them to your PR.
|
When you are ready, you can commit your changes and push them to your PR.
|
||||||
|
|||||||
@@ -1,128 +1,56 @@
|
|||||||
# Making a new release of this action (requires commit access)
|
# Making a new release of this action (requires commit access)
|
||||||
|
|
||||||
If you have commit access to this repo, you can make a new release.
|
In this guide, as an example, `v2.2.0` refers to the version number of the new release that you want to make.
|
||||||
|
|
||||||
Here are the instructions.
|
## Part 1: Use the Git CLI to create and push the Git tags
|
||||||
|
|
||||||
## Step 1: Clone a fresh copy of the repo
|
Step 1: Create a new lightweight tag of the form `vMAJOR.MINOR.PATCH`.
|
||||||
|
|
||||||
We intentionally work in a brand-new copy of the repo.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:julia-actions/setup-julia.git
|
git clone git@github.com:julia-actions/setup-julia.git
|
||||||
cd setup-julia
|
cd setup-julia
|
||||||
git checkout master
|
git fetch --all --tags
|
||||||
git submodule init
|
|
||||||
git submodule update
|
git checkout main
|
||||||
|
|
||||||
|
git --no-pager log -1
|
||||||
|
# Take note of the commit hash here.
|
||||||
|
|
||||||
|
# Now, create a new lightweight tag of the form `vMAJOR.MINOR.PATCH`.
|
||||||
|
#
|
||||||
|
# Replace `commit_hash` with the commit hash that you obtained from the
|
||||||
|
# `git log -1` step.
|
||||||
|
#
|
||||||
|
# Replace `v2.2.0` with the actual version number that you want to use.
|
||||||
|
git tag v2.2.0 commit_hash
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 2: Make sure you have the right version of NodeJS
|
Step 2: Once you've created the new release, you need to update the `v2` tag to point to the new release. For example, suppose that the previous release was `v2.1.0`, and suppose that you just created the new release `v2.2.0`. You need to update the `v2` tag so that it points to `v2.2.0`. Here are the commands:
|
||||||
|
|
||||||
If you use [`asdf`](https://asdf-vm.com/), this is as simple as:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
asdf plugin add nodejs
|
# Create/update the new v2 tag locally, where the new v2 tag will point to the
|
||||||
asdf install
|
# release that you created in the previous step.
|
||||||
|
#
|
||||||
|
# Make sure to change `v2.2.0` to the actual value for the tag that you just
|
||||||
|
# created in the previous step.
|
||||||
|
#
|
||||||
|
# The `-f` flag forcibly overwrites the old
|
||||||
|
# `v2` tag (if it exists).
|
||||||
|
git tag -f v2 v2.2.0
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't use `asdf`, then you need to:
|
Step 3: Now you need to push the tags:
|
||||||
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
|
```bash
|
||||||
vim package.json
|
# Regular-push the new `v2.2.0` tag:
|
||||||
|
git push origin tag v2.2.0
|
||||||
|
|
||||||
# Edit the `version` number (should be line 2)
|
# Force-push the new v2 tag:
|
||||||
# Save your changes in Vim. Then exit Vim.
|
git push origin tag v2 --force
|
||||||
|
|
||||||
# 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
|
## Part 2: Create the GitHub Release
|
||||||
|
|
||||||
```bash
|
Go to the [Releases](https://github.com/julia-actions/setup-julia/releases) section of this repo and create a new release (using the GitHub web interface).
|
||||||
vim .gitignore
|
|
||||||
# Delete the line that says `dist/` (it should be line 3)
|
|
||||||
# Save your changes in Vim. Then exit Vim.
|
|
||||||
|
|
||||||
git add .gitignore
|
For the "choose a tag" drop-down field, select the `v2.2.0` tag that you created and pushed in Part 1 of this guide.
|
||||||
|
|
||||||
# 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
|
|
||||||
```
|
|
||||||
|
|||||||
37793
dist/index.js
vendored
Normal file
37793
dist/index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
lib/installer.js
generated
2
lib/installer.js
generated
@@ -52,7 +52,7 @@ 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 toml = __importStar(require("toml"));
|
const toml = __importStar(require("toml"));
|
||||||
const LTS_VERSION = '1.6';
|
const LTS_VERSION = '1.10';
|
||||||
const MAJOR_VERSION = '1'; // Could be deduced from versions.json
|
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 = {
|
||||||
|
|||||||
4
lib/setup-julia.js
generated
4
lib/setup-julia.js
generated
@@ -46,6 +46,7 @@ const installer = __importStar(require("./installer"));
|
|||||||
const archSynonyms = {
|
const archSynonyms = {
|
||||||
'x86': 'x86',
|
'x86': 'x86',
|
||||||
'x64': 'x64',
|
'x64': 'x64',
|
||||||
|
'x86_64': 'x64',
|
||||||
'aarch64': 'aarch64',
|
'aarch64': 'aarch64',
|
||||||
'arm64': 'aarch64'
|
'arm64': 'aarch64'
|
||||||
};
|
};
|
||||||
@@ -87,6 +88,9 @@ function run() {
|
|||||||
if (!originalArchInput) { // if `originalArchInput` is an empty string
|
if (!originalArchInput) { // if `originalArchInput` is an empty string
|
||||||
throw new Error(`Arch input must not be null`);
|
throw new Error(`Arch input must not be null`);
|
||||||
}
|
}
|
||||||
|
if (originalArchInput == 'x64' && os.platform() == 'darwin' && os.arch() == 'arm64') {
|
||||||
|
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. You may have meant to use the "aarch64" arch instead (or left it unspecified for the correct default).');
|
||||||
|
}
|
||||||
let processedArchInput;
|
let processedArchInput;
|
||||||
if (originalArchInput == "default") {
|
if (originalArchInput == "default") {
|
||||||
// If the user sets the `arch` input to `default`, then we use the
|
// If the user sets the `arch` input to `default`, then we use the
|
||||||
|
|||||||
111
package-lock.json
generated
111
package-lock.json
generated
@@ -1,15 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.3.0",
|
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.3.0",
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
@@ -18,27 +16,27 @@
|
|||||||
"toml": "^3.0.0"
|
"toml": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.8",
|
"@types/async-retry": "^1.4.9",
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.14",
|
||||||
"@types/node": "^22.5.1",
|
"@types/node": "^22.9.0",
|
||||||
"@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.2",
|
||||||
"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.3",
|
"prettier": "^3.3.3",
|
||||||
"ts-jest": "^29.2.5",
|
"ts-jest": "^29.2.5",
|
||||||
"typescript": "^5.5.4"
|
"typescript": "^5.6.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/core": {
|
"node_modules/@actions/core": {
|
||||||
"version": "1.10.1",
|
"version": "1.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
|
||||||
"integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
|
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/http-client": "^2.0.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"uuid": "^8.3.2"
|
"@actions/http-client": "^2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/exec": {
|
"node_modules/@actions/exec": {
|
||||||
@@ -1059,9 +1057,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/async-retry": {
|
"node_modules/@types/async-retry": {
|
||||||
"version": "1.4.8",
|
"version": "1.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.8.tgz",
|
"resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.9.tgz",
|
||||||
"integrity": "sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA==",
|
"integrity": "sha512-s1ciZQJzRh3708X/m3vPExr5KJlzlZJvXsKpbtE2luqNcbROr64qU+3KpJsYHqWMeaxI839OvXf9PrUSw1Xtyg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/retry": "*"
|
"@types/retry": "*"
|
||||||
@@ -1142,9 +1140,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/jest": {
|
"node_modules/@types/jest": {
|
||||||
"version": "29.5.12",
|
"version": "29.5.14",
|
||||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
|
||||||
"integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
|
"integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"expect": "^29.0.0",
|
"expect": "^29.0.0",
|
||||||
@@ -1152,12 +1150,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "22.5.1",
|
"version": "22.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
|
||||||
"integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==",
|
"integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~6.19.2"
|
"undici-types": "~6.19.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/retry": {
|
"node_modules/@types/retry": {
|
||||||
@@ -1194,9 +1192,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vercel/ncc": {
|
"node_modules/@vercel/ncc": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.2.tgz",
|
||||||
"integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==",
|
"integrity": "sha512-3yel3jaxUg9pHBv4+KeC9qlbdZPug+UMtUOlhvpDYCMSgcNSrS2Hv1LoqMsOV7hf2lYscx+BESfJOIla1WsmMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"ncc": "dist/ncc/cli.js"
|
"ncc": "dist/ncc/cli.js"
|
||||||
@@ -3663,9 +3661,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.5.4",
|
"version": "5.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||||
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
@@ -3722,14 +3720,6 @@
|
|||||||
"browserslist": ">= 4.21.0"
|
"browserslist": ">= 4.21.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/uuid": {
|
|
||||||
"version": "8.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
||||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
|
||||||
"bin": {
|
|
||||||
"uuid": "dist/bin/uuid"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/v8-to-istanbul": {
|
"node_modules/v8-to-istanbul": {
|
||||||
"version": "9.3.0",
|
"version": "9.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
|
||||||
@@ -3861,12 +3851,12 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": {
|
"@actions/core": {
|
||||||
"version": "1.10.1",
|
"version": "1.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
|
||||||
"integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
|
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@actions/http-client": "^2.0.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"uuid": "^8.3.2"
|
"@actions/http-client": "^2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@actions/exec": {
|
"@actions/exec": {
|
||||||
@@ -4655,9 +4645,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/async-retry": {
|
"@types/async-retry": {
|
||||||
"version": "1.4.8",
|
"version": "1.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.8.tgz",
|
"resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.9.tgz",
|
||||||
"integrity": "sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA==",
|
"integrity": "sha512-s1ciZQJzRh3708X/m3vPExr5KJlzlZJvXsKpbtE2luqNcbROr64qU+3KpJsYHqWMeaxI839OvXf9PrUSw1Xtyg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/retry": "*"
|
"@types/retry": "*"
|
||||||
@@ -4738,9 +4728,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/jest": {
|
"@types/jest": {
|
||||||
"version": "29.5.12",
|
"version": "29.5.14",
|
||||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
|
||||||
"integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
|
"integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"expect": "^29.0.0",
|
"expect": "^29.0.0",
|
||||||
@@ -4748,12 +4738,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "22.5.1",
|
"version": "22.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
|
||||||
"integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==",
|
"integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"undici-types": "~6.19.2"
|
"undici-types": "~6.19.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/retry": {
|
"@types/retry": {
|
||||||
@@ -4790,9 +4780,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vercel/ncc": {
|
"@vercel/ncc": {
|
||||||
"version": "0.38.1",
|
"version": "0.38.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.2.tgz",
|
||||||
"integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==",
|
"integrity": "sha512-3yel3jaxUg9pHBv4+KeC9qlbdZPug+UMtUOlhvpDYCMSgcNSrS2Hv1LoqMsOV7hf2lYscx+BESfJOIla1WsmMQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ansi-escapes": {
|
"ansi-escapes": {
|
||||||
@@ -6581,9 +6571,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "5.5.4",
|
"version": "5.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||||
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"undici": {
|
"undici": {
|
||||||
@@ -6610,11 +6600,6 @@
|
|||||||
"picocolors": "^1.0.1"
|
"picocolors": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uuid": {
|
|
||||||
"version": "8.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
||||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
|
||||||
},
|
|
||||||
"v8-to-istanbul": {
|
"v8-to-istanbul": {
|
||||||
"version": "9.3.0",
|
"version": "9.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
|
||||||
|
|||||||
13
package.json
13
package.json
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-julia",
|
"name": "setup-julia",
|
||||||
"version": "2.3.0",
|
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "setup Julia action",
|
"description": "setup Julia action",
|
||||||
"main": "lib/setup-julia.js",
|
"main": "lib/setup-julia.js",
|
||||||
@@ -21,7 +20,7 @@
|
|||||||
"author": "Sascha Mann <git@mail.saschamann.eu>",
|
"author": "Sascha Mann <git@mail.saschamann.eu>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
@@ -30,17 +29,17 @@
|
|||||||
"toml": "^3.0.0"
|
"toml": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.8",
|
"@types/async-retry": "^1.4.9",
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.14",
|
||||||
"@types/node": "^22.5.1",
|
"@types/node": "^22.9.0",
|
||||||
"@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.2",
|
||||||
"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.3",
|
"prettier": "^3.3.3",
|
||||||
"ts-jest": "^29.2.5",
|
"ts-jest": "^29.2.5",
|
||||||
"typescript": "^5.5.4"
|
"typescript": "^5.6.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import retry = require('async-retry')
|
|||||||
import * as semver from 'semver'
|
import * as semver from 'semver'
|
||||||
import * as toml from 'toml'
|
import * as toml from 'toml'
|
||||||
|
|
||||||
const LTS_VERSION = '1.6'
|
const LTS_VERSION = '1.10'
|
||||||
const MAJOR_VERSION = '1' // Could be deduced from versions.json
|
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
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import * as installer from './installer'
|
|||||||
const archSynonyms = {
|
const archSynonyms = {
|
||||||
'x86': 'x86',
|
'x86': 'x86',
|
||||||
'x64': 'x64',
|
'x64': 'x64',
|
||||||
|
'x86_64': 'x64',
|
||||||
'aarch64': 'aarch64',
|
'aarch64': 'aarch64',
|
||||||
'arm64': 'aarch64'
|
'arm64': 'aarch64'
|
||||||
}
|
}
|
||||||
@@ -61,6 +62,10 @@ async function run() {
|
|||||||
throw new Error(`Arch input must not be null`)
|
throw new Error(`Arch input must not be null`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalArchInput == 'x64' && os.platform() == 'darwin' && os.arch() == 'arm64') {
|
||||||
|
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. You may have meant to use the "aarch64" arch instead (or left it unspecified for the correct default).')
|
||||||
|
}
|
||||||
|
|
||||||
let processedArchInput: string;
|
let processedArchInput: string;
|
||||||
if (originalArchInput == "default") {
|
if (originalArchInput == "default") {
|
||||||
// If the user sets the `arch` input to `default`, then we use the
|
// If the user sets the `arch` input to `default`, then we use the
|
||||||
|
|||||||
Reference in New Issue
Block a user