GitHub action for setting up a V build environment by downloading and unpacking the V compiler or building it from sources.
- Simple syntax with defaults according to the best performance and practices.
- Convenient version specification -
master
,weekly
,latest
,X.Y.Z
,<commit hash>
. - Downloading an unpacking pre-built binaries is preferred to building from sources.
- An already unpacked or built version is cached to speed up the build pipeline.
- Automatic installation of module dependencies from
v.mod
. - GitHub workflow token is used by default.
Install V from the most recent weekly release:
- uses: prantlf/setup-v-action@v2
Test against multiple versions of V using the matrix strategy:
jobs:
test:
strategy:
matrix:
v-version: ["latest", "weekly", "master"]
steps:
- uses: actions/checkout@v4
- uses: prantlf/setup-v-action@v2
with:
version: ${{ matrix.v-version }}
- run: v test .
If you want to install module dependencies from v.mod
automatically, run this action after checking out the sources.
The following parameters can be specified using the with
object:
Type: String
Default: weekly
One of the following values is supported:
-
master
- built from the most recent commit to themaster
branch -
weekly
- downloaded from the most recent weekly release (default) -
latest
- downloaded from the most recent (semantic) version release -
vX.Y.Z
orX.Y.Z
- downloaded from a specific (semantic) version release -
<commit hash>
- built from a specific commit
The default - weekly
should work the best by using the most recent development version. V is still in rapid development and the latest
might be too limiting. Once V becomes mature, the default will change and th elist of available values probably as well.
Type: Boolean
Default: true
Set to false
to ignore the cache and always perform the full installation, either by downloading and unpacking a binary, or by downloading sources and building. The default is true
.
Type: Boolean
Default: false
Set to true
to always build V from sources, even if the binary archive is available. The default is false
.
Type: Boolean
Default: true
Set to false
to prevent module dependencies from v.mod
from being installed automatically. The default is true
.
Type: Boolean
Default: true
Set to false
to install module dependencies from v.mod
to ./modules
instead of to ~/.vmodules
.
Type: String
Default: src/modules
or modules
Set the directory for the locally installed dependencies. It is src/modules
if src
exists, otherwise modules
.
Type: String
Default: ${{ github.token }}
Authorization token to inspect releases and commits in the vlang/v
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 V, as returned by v -V
, for example: V 0.3.4 692624b
.
Type: String
The complete path to the directory with the V compiler.
Type: String
The complete path to the V compiler executable.
Type: Boolean
A boolean value indicating if the installation succeeded from the cache.
Type: Boolean
A boolean value indicating if the V compiler was built from sources.
Copyright (C) 2023-2024 Ferdinand Prantl
Licensed under the MIT License.