🧩
GitHub Action
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:
Valist provides an extremely easy to integrate GitHub Action that enables you to publish anything, including websites, binaries, Electron apps, Android apps, Docker images, or anything else that you're building in your existing CI/CD pipeline!
It can be found in the GitHub Marketplace below:
Here's what it looks like to publish a release to Valist using the Valist GitHub Action:
name: Valist Publish
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: valist-io/valist-github-[email protected]
with:
private-key: ${{ secrets.PRIVATE_KEY }}
account: example-acount
project: example-project
release: ${{ github.ref_name }} # this can be whatever tag you wish to use
path: build

Super easy!
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:
There are several values that you will need to update to get your project publishing correctly.
First, you will need to setup the
private-key
variable.- The
private-key
field maps to your GitHub Repository secret that contains a key with permission on the Valist Project. We strongly recommend this is a fresh key that only has access to the corresponding Valist Project, and that you don't use an Account-level admin key here.
To generate a fresh key, you can use any Ethereum wallet that can export private keys. We also have a helper script that makes it even easier here:
npx @valist/keygen eth
This will securely generate and output a private key and a public address that you can use to configure your Valist GitHub Action.

Copy this private key, and add it as a GitHub Repository Secret called
VALIST_SIGNER
:
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, click on
Members
and add the key -- 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.
This will give the key access to the project and enable the GitHub Action to publish to the project!
Next, fill out the rest of the values and match them to your Valist Account and Project:
- The
account
field maps to your Valist Account - The
project
field maps to the Valist Project you wish to publish to
Then, you will need to configure the Release's build path, and the version to tag it with.
Each
release
is immutable and unique, so make sure this is a version tag that matches your workflow.- The
release
field maps to the version/tag you wish to release. You can use SemVer, or some other release versioning system you wish.
Finally, you will need to point the Action at the build path. Make sure this is your build output, or "dist" folder.
- The
path
field is the folder you wish to release.
install-name: 'hello'
install-darwin-amd64: hello-darwin-amd64
install-darwin-arm64: hello-darwin-arm64
install-linux-amd64: hello-linux-amd64
install-windows-amd64: hello-windows-amd64
This will map each binary to its designated platform, enabling the Valist tooling to install the correct version on the correct platforms.
The following platform/architecture combinations are supported:
- install-darwin-amd64
- install-darwin-arm64
- install-linux-amd64
- install-linux-arm64
- install-windows-amd64
For a set of examples, check out these repositories below:

valist-publish-gha-example/publish.yml at main · awantoch/valist-publish-gha-example
GitHub
Simple Valist Publish with Timestamp as the Release Name

berty/valist.yml at master · berty/berty
GitHub
Berty Messenger publishing cross-platform builds from their GitHub Releases

example-projects/nextjs-project.yml at main · valist-io/example-projects
GitHub
Next.js project built and published with the Valist GHA

example-projects/multi-platform.yml at main · valist-io/example-projects
GitHub
Multi-platform Go binary (Mac, Windows, Linux)

NFTicket/valist.yml at main · Abbas-Khann/NFTicket
GitHub
NFTicket Website deployment
Want to add your example to these docs? Please feel free to open a PR or contact us at [email protected] 😄
The Valist Action is built to be modular, and compatible with your existing pipeline. There are many ways to configure it! Take a look at the following pages for more examples of how to use it:
Last modified 11mo ago