Compare commits

..

3 Commits

Author SHA1 Message Date
dependabot[bot]
51d63cdd7a Bump the all-npm-actions group across 1 directory with 7 updates
Bumps the all-npm-actions group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) | `1.11.1` | `3.0.0` |
| [@actions/exec](https://github.com/actions/toolkit/tree/HEAD/packages/exec) | `1.1.1` | `3.0.0` |
| [@actions/io](https://github.com/actions/toolkit/tree/HEAD/packages/io) | `1.1.3` | `3.0.2` |
| [@actions/tool-cache](https://github.com/actions/toolkit/tree/HEAD/packages/tool-cache) | `2.0.2` | `4.0.0` |
| [semver](https://github.com/npm/node-semver) | `7.7.3` | `7.7.4` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.2.0` | `25.3.2` |
| [nock](https://github.com/nock/nock) | `14.0.10` | `14.0.11` |



Updates `@actions/core` from 1.11.1 to 3.0.0
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Updates `@actions/exec` from 1.1.1 to 3.0.0
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/exec/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/exec)

Updates `@actions/io` from 1.1.3 to 3.0.2
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/io/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/io)

Updates `@actions/tool-cache` from 2.0.2 to 4.0.0
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/tool-cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/@actions/cache@4.0.0/packages/tool-cache)

Updates `semver` from 7.7.3 to 7.7.4
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.3...v7.7.4)

Updates `@types/node` from 25.2.0 to 25.3.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `nock` from 14.0.10 to 14.0.11
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.10...v14.0.11)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: "@actions/exec"
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: "@actions/io"
  dependency-version: 3.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: "@actions/tool-cache"
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: semver
  dependency-version: 7.7.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: "@types/node"
  dependency-version: 25.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
- dependency-name: nock
  dependency-version: 14.0.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 20:38:17 +00:00
Dilum Aluthge
101e139aea Breaking: Migrate from Node 20 to Node 24 (#374)
* Update `action.yml` from `node20` to `node24`

* Update `.tool-versions` (`asdf`/`mise`-en-place) from NodeJS 20.11.1 to 24.13.0

* Run `npm install`
2026-03-04 15:36:28 -05:00
Ian Butterworth
44a615affb Require opt-in via force-arch to run x86 on macOS arm (#352)
* require opt-in via `force-arch` to run x86 on macOS arm

* Update src/setup-julia.ts

* Run `make everything-from-scratch`, and check-in

* Fix CI in #352 (#373)

* Fix CI in #352

* Clarify a statement about the support for 32-bit builds

---------

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2026-03-04 15:18:16 -05:00
10 changed files with 184 additions and 110 deletions

View File

@@ -20,13 +20,23 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
julia-version: [nightly, 1.13-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@v6.0.2 - uses: actions/checkout@v6.0.2
@@ -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"

View File

@@ -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,24 +22,40 @@ 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@v6.0.2 - uses: actions/checkout@v6.0.2
with:
persist-credentials: false
- uses: actions/setup-node@v6 - uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
@@ -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"

View File

@@ -1 +1 @@
nodejs 20.11.1 nodejs 24.13.0

View File

@@ -56,6 +56,18 @@ This action sets up a Julia environment for use in actions by downloading a spec
# Specifying 'default' uses the architecture of the runner executing the job. # Specifying 'default' uses the architecture of the runner executing the job.
arch: 'default' 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.
# #
# Starting Julia and running InteractiveUtils.versioninfo() takes a significant amount of time (1s or ~10% of the total build time in testing), # Starting Julia and running InteractiveUtils.versioninfo() takes a significant amount of time (1s or ~10% of the total build time in testing),

View File

@@ -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'

8
dist/index.js vendored
View File

@@ -585,6 +585,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 }}`.
@@ -601,7 +602,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") {

8
lib/setup-julia.js generated
View File

@@ -83,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 }}`.
@@ -99,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") {

152
package-lock.json generated
View File

@@ -7,78 +7,75 @@
"name": "setup-julia", "name": "setup-julia",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1", "@actions/core": "^3.0.0",
"@actions/exec": "^1.1.1", "@actions/exec": "^3.0.0",
"@actions/io": "^1.1.3", "@actions/io": "^3.0.2",
"@actions/tool-cache": "^2.0.2", "@actions/tool-cache": "^4.0.0",
"async-retry": "^1.3.3", "async-retry": "^1.3.3",
"semver": "^7.7.0", "semver": "^7.7.4",
"toml": "^3.0.0" "toml": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/async-retry": "^1.4.9", "@types/async-retry": "^1.4.9",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/node": "^25.2.0", "@types/node": "^25.3.3",
"@types/retry": "^0.12.5", "@types/retry": "^0.12.5",
"@types/semver": "^7.7.0", "@types/semver": "^7.7.0",
"@vercel/ncc": "^0.38.3", "@vercel/ncc": "^0.38.3",
"jest": "^30.0.5", "jest": "^30.0.5",
"jest-circus": "^30.0.3", "jest-circus": "^30.0.3",
"nock": "^14.0.8", "nock": "^14.0.11",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"ts-jest": "^29.4.0", "ts-jest": "^29.4.0",
"typescript": "^5.9.2" "typescript": "^5.9.2"
} }
}, },
"node_modules/@actions/core": { "node_modules/@actions/core": {
"version": "1.11.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz",
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", "integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==",
"license": "MIT",
"dependencies": { "dependencies": {
"@actions/exec": "^1.1.1", "@actions/exec": "^3.0.0",
"@actions/http-client": "^2.0.1" "@actions/http-client": "^4.0.0"
} }
}, },
"node_modules/@actions/exec": { "node_modules/@actions/exec": {
"version": "1.1.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz",
"integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==",
"license": "MIT",
"dependencies": { "dependencies": {
"@actions/io": "^1.0.1" "@actions/io": "^3.0.2"
} }
}, },
"node_modules/@actions/http-client": { "node_modules/@actions/http-client": {
"version": "2.2.3", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz",
"integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", "integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==",
"license": "MIT",
"dependencies": { "dependencies": {
"tunnel": "^0.0.6", "tunnel": "^0.0.6",
"undici": "^5.25.4" "undici": "^6.23.0"
} }
}, },
"node_modules/@actions/io": { "node_modules/@actions/io": {
"version": "1.1.3", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", "resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz",
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==" "integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==",
"license": "MIT"
}, },
"node_modules/@actions/tool-cache": { "node_modules/@actions/tool-cache": {
"version": "2.0.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz", "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-4.0.0.tgz",
"integrity": "sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w==", "integrity": "sha512-L8P9HbXvpvqjZDveb/fdsa55IVC0trfPgQ4ZwGo6r5af6YDVdM9vMGPZ7rgY2fAT9gGj4PSYd6bYlg3p3jD78A==",
"license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1", "@actions/core": "^3.0.0",
"@actions/exec": "^1.0.0", "@actions/exec": "^3.0.0",
"@actions/http-client": "^2.0.1", "@actions/http-client": "^4.0.0",
"@actions/io": "^1.1.1", "@actions/io": "^3.0.0",
"semver": "^6.1.0" "semver": "^7.7.3"
}
},
"node_modules/@actions/tool-cache/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
@@ -591,14 +588,6 @@
"tslib": "^2.4.0" "tslib": "^2.4.0"
} }
}, },
"node_modules/@fastify/busboy": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
"integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
"engines": {
"node": ">=14"
}
},
"node_modules/@isaacs/cliui": { "node_modules/@isaacs/cliui": {
"version": "8.0.2", "version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -1011,10 +1000,11 @@
} }
}, },
"node_modules/@mswjs/interceptors": { "node_modules/@mswjs/interceptors": {
"version": "0.39.8", "version": "0.41.3",
"resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.39.8.tgz", "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz",
"integrity": "sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA==", "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@open-draft/deferred-promise": "^2.2.0", "@open-draft/deferred-promise": "^2.2.0",
"@open-draft/logger": "^0.3.0", "@open-draft/logger": "^0.3.0",
@@ -1043,13 +1033,15 @@
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
"integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/@open-draft/logger": { "node_modules/@open-draft/logger": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
"integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"is-node-process": "^1.2.0", "is-node-process": "^1.2.0",
"outvariant": "^1.4.0" "outvariant": "^1.4.0"
@@ -1059,7 +1051,8 @@
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
"integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/@pkgjs/parseargs": { "node_modules/@pkgjs/parseargs": {
"version": "0.11.0", "version": "0.11.0",
@@ -1202,12 +1195,13 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "25.2.0", "version": "25.3.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
"integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.18.0"
} }
}, },
"node_modules/@types/retry": { "node_modules/@types/retry": {
@@ -2417,7 +2411,8 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
"integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/is-number": { "node_modules/is-number": {
"version": "7.0.0", "version": "7.0.0",
@@ -3315,12 +3310,13 @@
"dev": true "dev": true
}, },
"node_modules/nock": { "node_modules/nock": {
"version": "14.0.10", "version": "14.0.11",
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.10.tgz", "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.11.tgz",
"integrity": "sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==", "integrity": "sha512-u5xUnYE+UOOBA6SpELJheMCtj2Laqx15Vl70QxKo43Wz/6nMHXS7PrEioXLjXAwhmawdEMNImwKCcPhBJWbKVw==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@mswjs/interceptors": "^0.39.5", "@mswjs/interceptors": "^0.41.0",
"json-stringify-safe": "^5.0.1", "json-stringify-safe": "^5.0.1",
"propagate": "^2.0.0" "propagate": "^2.0.0"
}, },
@@ -3389,7 +3385,8 @@
"version": "1.4.3", "version": "1.4.3",
"resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
"integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/p-limit": { "node_modules/p-limit": {
"version": "3.1.0", "version": "3.1.0",
@@ -3665,9 +3662,10 @@
} }
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.7.3", "version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"license": "ISC",
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
}, },
@@ -3758,7 +3756,8 @@
"version": "0.5.1", "version": "0.5.1",
"resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz",
"integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/string-length": { "node_modules/string-length": {
"version": "4.0.2", "version": "4.0.2",
@@ -4155,21 +4154,20 @@
} }
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "5.29.0", "version": "6.23.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
"integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
"dependencies": { "license": "MIT",
"@fastify/busboy": "^2.0.0"
},
"engines": { "engines": {
"node": ">=14.0" "node": ">=18.17"
} }
}, },
"node_modules/undici-types": { "node_modules/undici-types": {
"version": "7.16.0", "version": "7.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/unrs-resolver": { "node_modules/unrs-resolver": {
"version": "1.11.1", "version": "1.11.1",

View File

@@ -20,24 +20,24 @@
"author": "Sascha Mann <git@mail.saschamann.eu>", "author": "Sascha Mann <git@mail.saschamann.eu>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1", "@actions/core": "^3.0.0",
"@actions/exec": "^1.1.1", "@actions/exec": "^3.0.0",
"@actions/io": "^1.1.3", "@actions/io": "^3.0.2",
"@actions/tool-cache": "^2.0.2", "@actions/tool-cache": "^4.0.0",
"async-retry": "^1.3.3", "async-retry": "^1.3.3",
"semver": "^7.7.0", "semver": "^7.7.4",
"toml": "^3.0.0" "toml": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/async-retry": "^1.4.9", "@types/async-retry": "^1.4.9",
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/node": "^25.2.0", "@types/node": "^25.3.3",
"@types/retry": "^0.12.5", "@types/retry": "^0.12.5",
"@types/semver": "^7.7.0", "@types/semver": "^7.7.0",
"@vercel/ncc": "^0.38.3", "@vercel/ncc": "^0.38.3",
"jest": "^30.0.5", "jest": "^30.0.5",
"jest-circus": "^30.0.3", "jest-circus": "^30.0.3",
"nock": "^14.0.8", "nock": "^14.0.11",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"ts-jest": "^29.4.0", "ts-jest": "^29.4.0",
"typescript": "^5.9.2" "typescript": "^5.9.2"

View File

@@ -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;