💻CLI
Last updated
Last updated
Note: An account and project is required for the following section. If you haven't created an account or project yet, visit the following page to learn how:
🚀Creating an Account & ProjectThe Valist CLI allows you to easily publish, download, and install releases from the command line! It's a great way to easily work with releases without navigating through a frontend. You can also use it to integrate your existing CI/CD workflows.
The Valist CLI supports all of the core publishing functionality of Valist, including:
Secure key management with keytar
Publishing releases, for example valist publish example-account/go-binary/0.0.1 dist/*
Downloading releases, for example valist download example-account/go-binary
Gasless meta-transactions powered by OpenGSN
To install the CLI, you will need Node.js v16+ installed.
Note: An account and project is required for the following section. If you haven't created an account or project yet, visit the following page to learn how:
🚀Creating an Account & ProjectGenerating a fresh key (recommended, most secure method)
The most recommended configuration is to generate a fresh key in the CLI, then add that address to the designated account or project you wish to publish to.
To generate a new key and store it directly into your secure keystore, run the following:
This will print out an address like so:
Next, you will need to add this key to your desired project or account members to give it access to publish. Navigate to your project or account settings in the web dashboard, and add the key like so, and hit enter
-- this will trigger a transaction to add the account to the project:
This step is required before the CLI can publish under the account or project.
Importing a Key (easiest, less secure)
The Valist CLI also supports importing the following key formats:
Private Key Hex string
Encrypted JSON Keystore (MyCrypto, Geth, etc)
Mnemonic phrase
To import your key into your secure keystore, run the following:
This will prompt you to import the key into your system's secure credential storage. You will then be able to use this key for publishing.
Your key is only accessible by you -- this simply copies your key into your system's native secure keystore.
Publishing a Release with the CLI is very simple. You simply need to give it the account/project/tag
path to publish, and the set of files to include in the Release.
The format is the following:
An example of this looks like this:
This will upload the files to IPFS, and trigger the publish. Meta-transactions are enabled by default, so you won't need to spend any gas.
This is a flexible and simple way to publish in any environment that supports Node.js!
Feel free to publish your static website's build folder, a Unity project build folder, binaries, you name it! (Just make sure, it's just your build folder! 😜)
You can configure the CLI to support advanced behaviors, like cross-platform builds by creating a valist.yml
file in the root of your project.
The valist.yml
file looks like the following:
The account
, project
, release
, and path
variables are all the same, however, an additional install
field is available to enable mapping native static binaries to their designated platforms.
The following platform/architecture combinations are supported:
darwin_amd64
darwin_arm64
linux_amd64
linux_arm64
windows_amd64
Downloading a Release with the CLI is just as easy.
Simply provide the release path, and it will download a .tar
bundle containing the Release:
If you don't specify a tag, the CLI will automatically download the latest Release:
Voila! This will fetch the Release metadata and the corresponding artifacts from IPFS into your working directory.