mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-03-05 21:23:19 +08:00
Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c2e035e86 | ||
|
|
210e196714 | ||
|
|
c8ff8a1937 | ||
|
|
101e139aea | ||
|
|
44a615affb | ||
|
|
4c0cb0fce8 | ||
|
|
7fe7427ed9 | ||
|
|
b0504def29 | ||
|
|
7242f2d36e | ||
|
|
1ade3ab195 | ||
|
|
67e9ca1177 | ||
|
|
a29b9e4c77 | ||
|
|
7449f781cd | ||
|
|
8dccd20879 | ||
|
|
96b12c59b6 | ||
|
|
75f97ff30b | ||
|
|
99376169b2 | ||
|
|
946b8945ed | ||
|
|
9ededf8091 | ||
|
|
45280051d6 | ||
|
|
b3ecfef5e8 | ||
|
|
5d51882ecc | ||
|
|
14bdca5404 | ||
|
|
ca8072aa45 | ||
|
|
32e4823075 | ||
|
|
d0db705ab1 | ||
|
|
3e78fcb3ae | ||
|
|
72fa5ed0d6 | ||
|
|
fcde44f420 | ||
|
|
9e20c521eb | ||
|
|
83661cac11 | ||
|
|
68c5d57bec | ||
|
|
1fccbf1fae | ||
|
|
154fe254d8 | ||
|
|
89905e6bd4 | ||
|
|
ef03891851 | ||
|
|
2e147ef522 | ||
|
|
60afaeb367 | ||
|
|
887a1b8574 | ||
|
|
1e6e69ac02 | ||
|
|
2edba243f1 | ||
|
|
e4eeff6f60 | ||
|
|
3094e57881 | ||
|
|
8cc4ff0bf6 |
15
.github/dependabot.yml
vendored
15
.github/dependabot.yml
vendored
@@ -5,15 +5,30 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: monthly
|
interval: monthly
|
||||||
open-pull-requests-limit: 99
|
open-pull-requests-limit: 99
|
||||||
|
groups:
|
||||||
|
# Group all Git submodules PRs into a single PR:
|
||||||
|
all-gitsubmodule-actions:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|
||||||
- package-ecosystem: 'github-actions'
|
- package-ecosystem: 'github-actions'
|
||||||
directory: '/'
|
directory: '/'
|
||||||
schedule:
|
schedule:
|
||||||
interval: 'monthly'
|
interval: 'monthly'
|
||||||
open-pull-requests-limit: 99
|
open-pull-requests-limit: 99
|
||||||
|
groups:
|
||||||
|
# Group all GitHub Actions PRs into a single PR:
|
||||||
|
all-github-actions:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: monthly
|
interval: monthly
|
||||||
open-pull-requests-limit: 99
|
open-pull-requests-limit: 99
|
||||||
|
groups:
|
||||||
|
# Group all NPM PRs into a single PR:
|
||||||
|
all-npm-actions:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|||||||
8
.github/workflows/codeql-analysis.yml
vendored
8
.github/workflows/codeql-analysis.yml
vendored
@@ -42,11 +42,11 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6.0.2
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3
|
uses: github/codeql-action/init@v4
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v3
|
uses: github/codeql-action/autobuild@v4
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -71,4 +71,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v3
|
uses: github/codeql-action/analyze@v4
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ jobs:
|
|||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6.0.2
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
|
|||||||
@@ -18,20 +18,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: [nightly, 1.10-nightly]
|
julia-version: [nightly, 1.13-nightly]
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- windows-latest
|
- windows-latest
|
||||||
# - macos-11 # Intel
|
- macos-15-intel # Intel
|
||||||
- macos-12 # Intel
|
|
||||||
- macos-13 # Intel
|
|
||||||
- macos-14 # Apple Silicon
|
- macos-14 # Apple Silicon
|
||||||
- macos-latest # Currently Intel, but will probably point to Apple Silicon in the future
|
- macos-latest # Apple Silicon
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6.0.2
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
|
|||||||
33
.github/workflows/example-builds-nightly.yml
vendored
33
.github/workflows/example-builds-nightly.yml
vendored
@@ -20,18 +20,28 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
julia-version: [nightly, 1.10-nightly]
|
julia-version:
|
||||||
julia-arch: [x64, x86]
|
- nightly
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
- 1.13-nightly
|
||||||
|
julia-wordsize:
|
||||||
|
- 64
|
||||||
|
- 32
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- windows-latest
|
||||||
|
- macos-15-intel # Intel
|
||||||
|
- macos-latest # Apple Silicon
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# 32-bit Julia binaries are not available on macOS
|
||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macos-15-intel # Intel
|
||||||
julia-arch: x86
|
julia-wordsize: 32
|
||||||
|
- os: macos-latest # Apple Silicon
|
||||||
|
julia-wordsize: 32
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6.0.2
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
@@ -47,7 +57,14 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.julia-version }}
|
version: ${{ matrix.julia-version }}
|
||||||
arch: ${{ matrix.julia-arch }}
|
# If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
|
||||||
|
# 32-bit builds of Julia are only available for x86.
|
||||||
|
#
|
||||||
|
# If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
|
||||||
|
# GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
|
||||||
|
# based on the architecture of the underlying GitHub Runner (virtual machine).
|
||||||
|
arch: ${{ matrix.julia-wordsize == '32' && 'x86' || runner.arch }}
|
||||||
|
|
||||||
- run: julia --version
|
- run: julia --version
|
||||||
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'
|
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'
|
||||||
- name: "Check that the correct julia is used and that archive mtimes are maintained"
|
- name: "Check that the correct julia is used and that archive mtimes are maintained"
|
||||||
|
|||||||
60
.github/workflows/example-builds.yml
vendored
60
.github/workflows/example-builds.yml
vendored
@@ -12,6 +12,9 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
@@ -19,26 +22,42 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
# include '1.6' here to test info message about lts tag existing
|
julia-version:
|
||||||
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1', '1.6', 'lts', 'pre']
|
- '1.0.5'
|
||||||
julia-arch: [x64, x86]
|
- '1.2'
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
- '^1.5.0-beta1'
|
||||||
|
- '1'
|
||||||
|
- '1.6'
|
||||||
|
- '1.10' # include '1.10' here to test info message about lts tag existing
|
||||||
|
- 'lts'
|
||||||
|
- 'pre'
|
||||||
|
julia-wordsize:
|
||||||
|
- 64
|
||||||
|
- 32
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- windows-latest
|
||||||
|
- macos-15-intel # Intel
|
||||||
|
- macos-latest # Apple Silicon
|
||||||
# 32-bit Julia binaries are not available on macOS
|
# 32-bit Julia binaries are not available on macOS
|
||||||
exclude:
|
exclude:
|
||||||
- os: macOS-latest
|
- os: macos-15-intel # Intel
|
||||||
julia-arch: x86
|
julia-wordsize: 32
|
||||||
include:
|
- os: macos-latest # Apple Silicon
|
||||||
- os: macOS-latest
|
julia-wordsize: 32
|
||||||
julia-arch: aarch64
|
# Julia versions prior to 1.8 do not have native builds for Apple Silicon
|
||||||
julia-version: 'lts'
|
- os: macos-latest # Apple Silicon
|
||||||
- os: macOS-latest
|
julia-version: '1.0.5'
|
||||||
julia-arch: aarch64
|
- os: macos-latest # Apple Silicon
|
||||||
julia-version: '1'
|
julia-version: '1.2'
|
||||||
|
- os: macos-latest # Apple Silicon
|
||||||
|
julia-version: '1.6'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6.0.2
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
@@ -55,7 +74,14 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.julia-version }}
|
version: ${{ matrix.julia-version }}
|
||||||
arch: ${{ matrix.julia-arch }}
|
# If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
|
||||||
|
# Tier 1 32-bit builds of Julia are only available for x86.
|
||||||
|
#
|
||||||
|
# If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
|
||||||
|
# GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
|
||||||
|
# based on the architecture of the underlying GitHub Runner (virtual machine).
|
||||||
|
arch: ${{ matrix.julia-wordsize == '32' && 'x86' || runner.arch }}
|
||||||
|
|
||||||
- run: julia --version
|
- run: julia --version
|
||||||
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'
|
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'
|
||||||
- name: "Check that the correct julia is used and that archive mtimes are maintained"
|
- name: "Check that the correct julia is used and that archive mtimes are maintained"
|
||||||
|
|||||||
30
.github/workflows/pr_checks.yml
vendored
30
.github/workflows/pr_checks.yml
vendored
@@ -39,21 +39,21 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
### Check out the repo:
|
### Check out the repo:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
### Cleanall:
|
### Cleanall:
|
||||||
- run: make cleanall
|
- run: make cleanall
|
||||||
### Install NodeJS
|
### Install NodeJS
|
||||||
# Unix (non-Windows):
|
# Unix (non-Windows):
|
||||||
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
- run: make unix-asdf-install
|
- run: make unix-asdf-install
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
# Windows:
|
# Windows:
|
||||||
# Windows does not support asdf, so we have to use `actions/setup-node`
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
# to install asdf:
|
# to install asdf:
|
||||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
|
||||||
if: runner.os == 'Windows'
|
if: runner.os == 'Windows'
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
@@ -71,7 +71,7 @@ jobs:
|
|||||||
### Clean (not cleanall!):
|
### Clean (not cleanall!):
|
||||||
- run: make clean
|
- run: make clean
|
||||||
### Make sure there are no uncommited changes
|
### Make sure there are no uncommited changes
|
||||||
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
|
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
|
||||||
with:
|
with:
|
||||||
version: '1'
|
version: '1'
|
||||||
- run: git --no-pager status
|
- run: git --no-pager status
|
||||||
@@ -82,21 +82,21 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
### Check out the repo:
|
### Check out the repo:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
### Cleanall:
|
### Cleanall:
|
||||||
- run: make cleanall
|
- run: make cleanall
|
||||||
### Install NodeJS
|
### Install NodeJS
|
||||||
# Unix (non-Windows):
|
# Unix (non-Windows):
|
||||||
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
- run: make unix-asdf-install
|
- run: make unix-asdf-install
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
# Windows:
|
# Windows:
|
||||||
# Windows does not support asdf, so we have to use `actions/setup-node`
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
# to install asdf:
|
# to install asdf:
|
||||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
|
||||||
if: runner.os == 'Windows'
|
if: runner.os == 'Windows'
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
@@ -126,21 +126,21 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
### Check out the repo:
|
### Check out the repo:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
### Cleanall:
|
### Cleanall:
|
||||||
- run: make cleanall
|
- run: make cleanall
|
||||||
### Install NodeJS
|
### Install NodeJS
|
||||||
# Unix (non-Windows):
|
# Unix (non-Windows):
|
||||||
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
- run: make unix-asdf-install
|
- run: make unix-asdf-install
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
# Windows:
|
# Windows:
|
||||||
# Windows does not support asdf, so we have to use `actions/setup-node`
|
# Windows does not support asdf, so we have to use `actions/setup-node`
|
||||||
# to install asdf:
|
# to install asdf:
|
||||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b
|
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
|
||||||
if: runner.os == 'Windows'
|
if: runner.os == 'Windows'
|
||||||
with:
|
with:
|
||||||
node-version-file: '.tool-versions'
|
node-version-file: '.tool-versions'
|
||||||
@@ -161,14 +161,14 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
### Check out the repo:
|
### Check out the repo:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
### Cleanall:
|
### Cleanall:
|
||||||
- run: make cleanall
|
- run: make cleanall
|
||||||
### Install NodeJS
|
### Install NodeJS
|
||||||
# Unix (non-Windows):
|
# Unix (non-Windows):
|
||||||
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
- run: make unix-asdf-install
|
- run: make unix-asdf-install
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
@@ -199,12 +199,12 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
### Check out the repo:
|
### Check out the repo:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
### Install NodeJS
|
### Install NodeJS
|
||||||
# Unix (non-Windows):
|
# Unix (non-Windows):
|
||||||
- uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
|
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
- run: make unix-asdf-install
|
- run: make unix-asdf-install
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
@@ -214,7 +214,7 @@ jobs:
|
|||||||
# - run: npm install --package-lock-only
|
# - run: npm install --package-lock-only
|
||||||
- run: npm install
|
- run: npm install
|
||||||
### Make sure there are no uncommited changes
|
### Make sure there are no uncommited changes
|
||||||
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
|
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
|
||||||
with:
|
with:
|
||||||
version: '1'
|
version: '1'
|
||||||
- run: git --no-pager status
|
- run: git --no-pager status
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
nodejs 20.11.1
|
nodejs 24.13.0
|
||||||
|
|||||||
24
README.md
24
README.md
@@ -41,7 +41,7 @@ This action sets up a Julia environment for use in actions by downloading a spec
|
|||||||
# For example, `1.10` may be parsed as `1.1`.
|
# For example, `1.10` may be parsed as `1.1`.
|
||||||
#
|
#
|
||||||
# Default: '1'
|
# Default: '1'
|
||||||
version: ''
|
version: '1'
|
||||||
|
|
||||||
# The architecture of the Julia binaries.
|
# The architecture of the Julia binaries.
|
||||||
#
|
#
|
||||||
@@ -53,8 +53,20 @@ This action sets up a Julia environment for use in actions by downloading a spec
|
|||||||
#
|
#
|
||||||
# Note: you can use X64, X86, and ARM64 as synonyms for x64, x86, and aarch64, respectively.
|
# Note: you can use X64, X86, and ARM64 as synonyms for x64, x86, and aarch64, respectively.
|
||||||
#
|
#
|
||||||
# Defaults to the architecture of the runner executing the job.
|
# Specifying 'default' uses the architecture of the runner executing the job.
|
||||||
arch: ''
|
arch: 'default'
|
||||||
|
|
||||||
|
# Force the use of the specified architecture even when it may be suboptimal on the runner.
|
||||||
|
#
|
||||||
|
# By default, requesting x86 or x64 on an aarch64 macOS runner (Apple Silicon) will fail with an error,
|
||||||
|
# as this is usually a misconfiguration. Set this to 'true' to override the error and allow the installation.
|
||||||
|
#
|
||||||
|
# Note: x64 Julia can run on Apple Silicon via Rosetta 2, but native aarch64 is typically preferred.
|
||||||
|
#
|
||||||
|
# Supported values: true | false
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
force-arch: 'false'
|
||||||
|
|
||||||
# Set the display setting for printing InteractiveUtils.versioninfo() after installing.
|
# Set the display setting for printing InteractiveUtils.versioninfo() after installing.
|
||||||
#
|
#
|
||||||
@@ -70,12 +82,12 @@ This action sets up a Julia environment for use in actions by downloading a spec
|
|||||||
# never: Never print versioninfo
|
# never: Never print versioninfo
|
||||||
#
|
#
|
||||||
# Default: false
|
# Default: false
|
||||||
show-versioninfo: ''
|
show-versioninfo: 'false'
|
||||||
|
|
||||||
# Set the path to the project directory or file to use when resolving some versions (e.g. `min`).
|
# Set the path to the project directory or file to use when resolving some versions (e.g. `min`).
|
||||||
#
|
#
|
||||||
# Defaults to using JULIA_PROJECT if defined, otherwise '.'
|
# Defaults to using JULIA_PROJECT if defined, otherwise '.'
|
||||||
project: ''
|
project: ${{ env.JULIA_PROJECT }} or '.' (if JULIA_PROJECT is unset)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Outputs
|
### Outputs
|
||||||
@@ -127,7 +139,7 @@ You can either specify specific Julia versions or version ranges. If you specify
|
|||||||
- `'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.
|
||||||
- `'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.
|
||||||
- `'min'` will install the earliest supported version of Julia compatible with the project. Especially useful in monorepos.
|
- `'min'` will install the earliest supported major/minor version of Julia compatible with the project. Especially useful in monorepos. Note: `min` chooses the lowest major/minor, but gives the latest patch. For example, for a Julia `[compat]` entry of `julia = "1.10"`, `min` would resolve to e.g. `1.10.10` (NOT `1.10.0`). If you specifically require e.g. 1.10.0, please specify that manually (instead of using `min`).
|
||||||
|
|
||||||
Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic).
|
Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic).
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ inputs:
|
|||||||
description: 'Architecture of the Julia binaries. Defaults to the architecture of the runner executing the job.'
|
description: 'Architecture of the Julia binaries. Defaults to the architecture of the runner executing the job.'
|
||||||
required: false
|
required: false
|
||||||
default: 'default'
|
default: 'default'
|
||||||
|
force-arch:
|
||||||
|
description: 'Force the use of the specified architecture even when it may be suboptimal on the runner (e.g., x86 on Apple Silicon macOS runners). By default, requesting x86/x64 on aarch64 macOS runners will fail with an error.'
|
||||||
|
required: false
|
||||||
|
default: 'false'
|
||||||
show-versioninfo:
|
show-versioninfo:
|
||||||
description: 'Display InteractiveUtils.versioninfo() after installing'
|
description: 'Display InteractiveUtils.versioninfo() after installing'
|
||||||
required: false
|
required: false
|
||||||
@@ -27,7 +31,7 @@ outputs:
|
|||||||
julia-bindir:
|
julia-bindir:
|
||||||
description: 'Path to the directory containing the Julia executable. Equivalent to JULIA_BINDIR: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR'
|
description: 'Path to the directory containing the Julia executable. Equivalent to JULIA_BINDIR: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR'
|
||||||
runs:
|
runs:
|
||||||
using: 'node20'
|
using: 'node24'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
branding:
|
branding:
|
||||||
icon: 'download'
|
icon: 'download'
|
||||||
|
|||||||
510
dist/index.js
vendored
510
dist/index.js
vendored
File diff suppressed because it is too large
Load Diff
24
lib/installer.js
generated
24
lib/installer.js
generated
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||||||
}) : function(o, v) {
|
}) : function(o, v) {
|
||||||
o["default"] = v;
|
o["default"] = v;
|
||||||
});
|
});
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
if (mod && mod.__esModule) return mod;
|
var ownKeys = function(o) {
|
||||||
var result = {};
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
var ar = [];
|
||||||
__setModuleDefault(result, mod);
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
return result;
|
return ar;
|
||||||
};
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
|||||||
32
lib/setup-julia.js
generated
32
lib/setup-julia.js
generated
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||||||
}) : function(o, v) {
|
}) : function(o, v) {
|
||||||
o["default"] = v;
|
o["default"] = v;
|
||||||
});
|
});
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || (function () {
|
||||||
if (mod && mod.__esModule) return mod;
|
var ownKeys = function(o) {
|
||||||
var result = {};
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
var ar = [];
|
||||||
__setModuleDefault(result, mod);
|
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||||
return result;
|
return ar;
|
||||||
};
|
};
|
||||||
|
return ownKeys(o);
|
||||||
|
};
|
||||||
|
return function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
})();
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
@@ -73,6 +83,7 @@ function run() {
|
|||||||
const versionInput = core.getInput('version').trim();
|
const versionInput = core.getInput('version').trim();
|
||||||
const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true';
|
const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true';
|
||||||
const originalArchInput = core.getInput('arch').trim();
|
const originalArchInput = core.getInput('arch').trim();
|
||||||
|
const forceArch = core.getInput('force-arch').trim() == 'true';
|
||||||
const projectInput = core.getInput('project').trim(); // Julia project file
|
const projectInput = core.getInput('project').trim(); // Julia project file
|
||||||
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
|
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
|
||||||
// while the strategy matrix only contains a key `${{ matrix.version }}`.
|
// while the strategy matrix only contains a key `${{ matrix.version }}`.
|
||||||
@@ -89,7 +100,12 @@ 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') {
|
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).');
|
if (forceArch) {
|
||||||
|
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. The "force-arch" input is set to "true", so proceeding with x64 installation. Note that this will mean Julia will be run under Rosetta emulation.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error('[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 "default" or left it unspecified for the correct default). To force the use of x64 on this runner, set the "force-arch" input to "true".');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let processedArchInput;
|
let processedArchInput;
|
||||||
if (originalArchInput == "default") {
|
if (originalArchInput == "default") {
|
||||||
|
|||||||
5812
package-lock.json
generated
5812
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -23,23 +23,23 @@
|
|||||||
"@actions/core": "^1.11.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.2",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.3",
|
||||||
"semver": "^7.6.3",
|
"semver": "^7.7.0",
|
||||||
"toml": "^3.0.0"
|
"toml": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async-retry": "^1.4.9",
|
"@types/async-retry": "^1.4.9",
|
||||||
"@types/jest": "^29.5.14",
|
"@types/jest": "^30.0.0",
|
||||||
"@types/node": "^22.9.0",
|
"@types/node": "^25.2.0",
|
||||||
"@types/retry": "^0.12.5",
|
"@types/retry": "^0.12.5",
|
||||||
"@types/semver": "^7.5.8",
|
"@types/semver": "^7.7.0",
|
||||||
"@vercel/ncc": "^0.38.2",
|
"@vercel/ncc": "^0.38.3",
|
||||||
"jest": "^29.7.0",
|
"jest": "^30.0.5",
|
||||||
"jest-circus": "^29.7.0",
|
"jest-circus": "^30.0.3",
|
||||||
"nock": "^13.5.4",
|
"nock": "^14.0.8",
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.6.2",
|
||||||
"ts-jest": "^29.2.5",
|
"ts-jest": "^29.4.0",
|
||||||
"typescript": "^5.6.3"
|
"typescript": "^5.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,7 +179,15 @@ export function getJuliaVersion(availableReleases: string[], versionInput: strin
|
|||||||
if (!juliaCompatRange) {
|
if (!juliaCompatRange) {
|
||||||
throw new Error('Unable to use version "min" when the Julia project file does not specify a compat for Julia')
|
throw new Error('Unable to use version "min" when the Julia project file does not specify a compat for Julia')
|
||||||
}
|
}
|
||||||
version = semver.minSatisfying(availableReleases, juliaCompatRange, {includePrerelease})
|
// true_min_version is the actual minimum
|
||||||
|
// E.g. if the Julia [compat] entry is "1.10", then true_min_version is v"1.10.0"
|
||||||
|
let true_min_version = semver.minSatisfying(availableReleases, juliaCompatRange, {includePrerelease})
|
||||||
|
let my_tilde_range = `~${true_min_version}`
|
||||||
|
// min_with_latest_patch is the minimum major/minor, but latest patch
|
||||||
|
// E.g. if the Julia [compat] entry is "1.10", then true__version is v"1.10.10" (or whatever the latest 1.10.x patch is)
|
||||||
|
// https://github.com/julia-actions/setup-julia/issues/372
|
||||||
|
min_with_latest_patch = semver.maxSatisfying(availableReleases, my_tilde_range, {includePrerelease})
|
||||||
|
version = min_with_latest_patch
|
||||||
} else if (versionInput == "lts") {
|
} else if (versionInput == "lts") {
|
||||||
version = semver.maxSatisfying(availableReleases, LTS_VERSION, { includePrerelease: false });
|
version = semver.maxSatisfying(availableReleases, LTS_VERSION, { includePrerelease: false });
|
||||||
} else if (versionInput == "pre") {
|
} else if (versionInput == "pre") {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ async function run() {
|
|||||||
const versionInput = core.getInput('version').trim()
|
const versionInput = core.getInput('version').trim()
|
||||||
const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true'
|
const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true'
|
||||||
const originalArchInput = core.getInput('arch').trim()
|
const originalArchInput = core.getInput('arch').trim()
|
||||||
|
const forceArch = core.getInput('force-arch').trim() == 'true'
|
||||||
const projectInput = core.getInput('project').trim() // Julia project file
|
const projectInput = core.getInput('project').trim() // Julia project file
|
||||||
|
|
||||||
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
|
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
|
||||||
@@ -63,7 +64,11 @@ async function run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (originalArchInput == 'x64' && os.platform() == 'darwin' && os.arch() == 'arm64') {
|
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).')
|
if (forceArch) {
|
||||||
|
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. The "force-arch" input is set to "true", so proceeding with x64 installation. Note that this will mean Julia will be run under Rosetta emulation.')
|
||||||
|
} else {
|
||||||
|
throw new Error('[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 "default" or left it unspecified for the correct default). To force the use of x64 on this runner, set the "force-arch" input to "true".')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let processedArchInput: string;
|
let processedArchInput: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user