Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prantlf/setup-v-action
Setup a V environment by downloading and unpacking or building the V compiler to the PATH.
https://github.com/prantlf/setup-v-action
actions github github-actions setup v vlang
Last synced: about 1 month ago
JSON representation
Setup a V environment by downloading and unpacking or building the V compiler to the PATH.
- Host: GitHub
- URL: https://github.com/prantlf/setup-v-action
- Owner: prantlf
- License: mit
- Created: 2023-06-11T23:08:05.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-07T14:14:29.000Z (8 months ago)
- Last Synced: 2024-11-16T10:04:56.239Z (about 2 months ago)
- Topics: actions, github, github-actions, setup, v, vlang
- Language: JavaScript
- Homepage: https://github.com/marketplace/actions/setup-v-vlang-build
- Size: 1.08 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Setup V (Vlang) Build
[![Latest version](https://img.shields.io/npm/v/setup-v-action) ![Dependency status](https://img.shields.io/librariesio/release/npm/setup-v-action)](https://www.npmjs.com/package/setup-v-action)
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`, ``.
* 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:
```yml
- uses: prantlf/setup-v-action@v2
```Test against multiple versions of V using the matrix strategy:
```yml
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
* `` - built from a specific commitThe 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].
[MIT License]: http://en.wikipedia.org/wiki/MIT_License