feat: allow specifying binary name (#71)

This commit is contained in:
Leo Kettmeir
2024-09-12 03:46:45 -07:00
committed by GitHub
parent fa660b328d
commit 3a041055d2
4 changed files with 43 additions and 1 deletions

View File

@@ -61,3 +61,19 @@ jobs:
- name: Check version
run: deno -V | grep -q "deno 1\.43\.1"
test-binary-name:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
steps:
- uses: actions/checkout@v3
- name: Setup Deno
uses: ./
with:
deno-binary-name: deno_foo
- name: Check binary exists
run: deno_foo -V

View File

@@ -73,3 +73,11 @@ The extension can also automatically read the file from
with:
deno-version-file: .dvmrc
```
### Specifying binary name
```yaml
- uses: denoland/setup-deno@v1
with:
deno-binary-name: deno_latest
```

View File

@@ -10,6 +10,9 @@ inputs:
default: "1.x"
deno-version-file:
description: File containing the Deno version to install such as .dvmrc or .tool-versions.
deno-binary-name:
description: The name to use for the binary.
default: "deno"
outputs:
deno-version:
description: "The Deno version that was installed."

View File

@@ -1,5 +1,6 @@
const os = require("os");
const path = require("path");
const fs = require("fs/promises");
const process = require("process");
const core = require("@actions/core");
const tc = require("@actions/tool-cache");
@@ -28,9 +29,23 @@ async function install(version) {
const zipPath = await tc.downloadTool(url);
const extractedFolder = await tc.extractZip(zipPath);
const binaryName = core.getInput("deno-binary-name");
if (binaryName !== "deno") {
await fs.rename(
path.join(
extractedFolder,
process.platform === "win32" ? "deno.exe" : "deno",
),
path.join(
extractedFolder,
process.platform === "win32" ? binaryName + ".exe" : binaryName,
),
);
}
const newCachedPath = await tc.cacheDir(
extractedFolder,
"deno",
binaryName,
version.isCanary ? `0.0.0-${version.version}` : version.version,
);
core.info(`Cached Deno to ${newCachedPath}.`);