Skip to content

Commit

Permalink
feat: allow specifying binary name (#71)
Browse files Browse the repository at this point in the history
  • Loading branch information
crowlKats authored Sep 12, 2024
1 parent fa660b3 commit 3a04105
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 1 deletion.
16 changes: 16 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand Down
17 changes: 16 additions & 1 deletion src/install.js
Original file line number Diff line number Diff line change
@@ -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");
Expand Down Expand Up @@ -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}.`);
Expand Down

0 comments on commit 3a04105

Please sign in to comment.