Valist Docs
  • Quick Start
    • 🌄Intro to Valist
      • 🎮Valist For Gamers
      • 👨‍💻Valist For Game Developers
    • 🚀Creating an Account & Project
    • 🌐Web Dashboard
    • 💎Sapphire Launcher
    • 💻CLI
    • 🧩GitHub Action
  • Publishing
    • 🌐Publishing Web Apps
      • Publishing a Next JS App
      • Publishing a React JS App
    • 🎮Publishing Unity Projects
    • 🚀Publishing using CI/CD
    • ⚙️Publishing Binaries & Executables
  • Monetization
    • 💰Intro to Software License NFTs
    • 💱Configuring Pricing for your Products
    • 🔐Token-gating Unity Projects
  • TypeScript SDK
    • TypeScript SDK
    • TypeDoc
  • Golang SDK
    • Golang SDK
  • Live Deployments
    • Smart Contracts
    • Subgraph
    • Gas Tank
Powered by GitBook
On this page
  • Valist GitHub Action
  • Configuring the workflow file
  1. Quick Start

GitHub Action

PreviousCLINextPublishing Web Apps

Last updated 2 years ago

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 GitHub Action

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-action@v2.5.6
        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!

Configuring the workflow file

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.

Setting up the GitHub Action's Private Key

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!

Configuring the account, project, path, and release version

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.

Advanced Configuration (Cross-Platform Releases)

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:

Want to add your example to these docs? Please feel free to open a PR or contact us at hello@valist.io 😄

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:

Here's an of a React app being published:

You can also configure cross-platform releases with the install field, similarly to the .

🧩
example run
🚀Creating an Account & Project
🌐Publishing Web Apps
⚙️Publishing Binaries & Executables
🚀Creating an Account & Project
CLI
Valist Action - GitHub MarketplaceGitHub
valist-publish-gha-example/publish.yml at main · awantoch/valist-publish-gha-exampleGitHub
Simple Valist Publish with Timestamp as the Release Name
berty/valist.yml at master · berty/bertyGitHub
Berty Messenger publishing cross-platform builds from their GitHub Releases
Next.js project built and published with the Valist GHA
example-projects/nextjs-project.yml at main · valist-io/example-projectsGitHub
Logo
example-projects/multi-platform.yml at main · valist-io/example-projectsGitHub
Multi-platform Go binary (Mac, Windows, Linux)
NFTicket/valist.yml at main · Abbas-Khann/NFTicketGitHub
NFTicket Website deployment
Logo
Logo
Logo
Logo
Logo