Skip to content
power

GitHub Action

Setup V (Vlang) Build

v2.3.3 Latest version

Setup V (Vlang) Build

power

Setup V (Vlang) Build

Setup a V (Vlang) environment by downloading and unpacking or building the V compiler to the PATH

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Setup V (Vlang) Build

uses: prantlf/setup-v-action@v2.3.3

Learn more about this action in prantlf/setup-v-action

Choose a version

Setup V (Vlang) Build

Latest version Dependency status

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.

Usage

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.

Inputs

The following parameters can be specified using the with object:

version

Type: String
Default: weekly

One of the following values is supported:

  • master - built from the most recent commit to the master branch
  • weekly - downloaded from the most recent weekly release (default)
  • latest - downloaded from the most recent (semantic) version release
  • vX.Y.Z or X.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.

use-cache

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.

force-build

Type: Boolean
Default: false

Set to true to always build V from sources, even if the binary archive is available. The default is false.

install-dependencies

Type: Boolean
Default: true

Set to false to prevent module dependencies from v.mod from being installed automatically. The default is true.

global-dependencies

Type: Boolean
Default: true

Set to false to install module dependencies from v.mod to ./modules instead of to ~/.vmodules.

modules-dir

Type: String
Default: src/modules or modules

Set the directory for the locally installed dependencies. It is src/modules if src exists, otherwise modules.

token

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.

Outputs

The following parameters can be accessed by the github context:

version

Type: String

The actually installed version of V, as returned by v -V, for example: V 0.3.4 692624b.

bin-path

Type: String

The complete path to the directory with the V compiler.

v-bin-path

Type: String

The complete path to the V compiler executable.

used-cache

Type: Boolean

A boolean value indicating if the installation succeeded from the cache.

was-built

Type: Boolean

A boolean value indicating if the V compiler was built from sources.

License

Copyright (C) 2023-2024 Ferdinand Prantl

Licensed under the MIT License.