GitHub Action
Install Released Tool
GitHub action for downloading, extracting, caching an executable from a GitHub release and putting it to PATH.
- Simple syntax with defaults according to the best performance and practices.
- Convenient version specification -
latest
orX.Y.Z
or any semantic version specification. - An already unpacked version is cached to speed up the build pipeline.
- GitHub workflow token is used by default.
Install jsonlint from the most recent release:
- uses: prantlf/install-release-action@v1
with:
repo: prantlf/v-jsonlint
Install jsonlint from the compatible patch release recent release:
- uses: prantlf/install-release-action@v1
with:
repo: prantlf/v-jsonlint
version: ~0.0.1
The archive with the executable is expected to be:
{name}-{platform}-{architecture}.zip
where:
{name}
is the name of the tool (executable){platform}
is the name of the target platform:linux
,macos
orwindows
{architecture}
is the name of the target architecture:aarch64
orarm64
(64-bit ARM),riscv64
(RISC-V),amd64
,x86_64
,x64
(64-bit AMD) orx86
(32-bit Intel)
The following parameters can be specified using the with
object:
Type: String
Specify the repository in the form owner/name
to download the archive with the executable from. Mandatory.
Type: String
Default: latest
Specify the version of the executable to download and extract. It can be latest
(the latest published semantic version), or a semantic version number, plain or in the form of a git tag (usually vX.Y.Z
, but sometimes only X.Y.Z
), or any semantic version specification.
Type: String
Default: (inferred from platform archives)
Specify the name prefix of the archive to download and the name of the the executable to extract from it. If not specified, the first archive named {name}-{platform}-{architecture}.zip
will be picked and the prefix name
will be used.
Type: Map{String, String[]}
Default:
darwin:macos
linux:
win32:windows
A map where keys are Node.js platforms and values are their aliases which will be recognised in names of the installation archives. The Node.js platform name itself doesn't have to be included in the aliases. This input is a multi-line string, where each line is a map entry. The kay is separated from the value by colon (:). Aliases are separated by commas (,).
Type: Map{String, String[]}
Default:
arm64:aarch64
riscv64:
x64:amd64,x86_64,x86
A map where keys are Node.js architectures and values are their aliases which will be recognised in names of the installation archives. The Node.js architectures name itself doesn't have to be included in the aliases. This input is a multi-line string, where each line is a map entry. The kay is separated from the value by colon (:). Aliases are separated by commas (,).
Type: Boolean
Default: true
Set to false
to ignore the cache and always perform the full installation by downloading and unpacking a binary.
Type: String
Default: ${{ github.token }}
Authorization token to inspect releases and commits in the {repo}
repository. Either a GitHub personal access token or the GitHub workflow token. If not provided, the environment variable GITHUB_TOKEN
will be used as a fallback. And if even that is not set, the GitHub workflow token from the action-execution context will be used as default.
The following parameters can be accessed by the github
context:
Type: String
The actually installed version of the executable, as returned by {executable} -V
., for example: 1.0.0
.
Type: String
The complete path to the directory with the extracted.
Type: String
The complete path to the extracted executable.
Type: Boolean
A boolean value indicating if the installation succeeded from the cache.
Copyright (C) 2023-2024 Ferdinand Prantl
Licensed under the MIT License.