⚙️Publishing Binaries & Executables

Publishing executable binaries is super easy with Valist. Learn how to use publish with the web dashboard, CLI, or GitHub Action!

Publishing executable binaries is super easy with Valist!

Note: currently, only statically linked binaries are supported, since Valist does not have a built-in dependency manager yet.

How native app publishing in Valist works

While standard releases are usually a simple folder upload, in order to get Valist to interpret the platform you are building for, you will need to tell it how to describe your Release.

This is accomplished by:

  • Setting your Project Type to native or cli in your Project Settings. This will signal to the Web Dashboard and other tooling to display a different upload form fit for your use-case.

  • Specifying which binaries belong to their designated platforms during the Release. This can be done from the simple Web Dashboard upload form by clicking the correct platform, or by configuring the install field if using the CLI or GitHub Action

Each Release includes metadata that maps the platform/architecture to the corresponding binary.

The following platform/architecture combinations are supported:

  • darwin_amd64

  • darwin_arm64

  • linux_amd64

  • linux_arm64

  • windows_amd64

Step 1: Setting your Project Type to "native" or "cli"

First, you will need to set your Project Type to native or cli to tell the rest of the Valist tooling to treat this project as a native, non-web application.

Note: the cli type is essentially the same as native, but exists to specify whether or not the native app has a GUI.

Navigate to your Project Settings, and in the Project Details section, set the Project Type to either native or cli:

Awesome! Now, any Releases moving forward will show a different upload form with specific binaries available. Each Release is independently configured, so you can rest assured knowing that changing this later will not break old Releases. This is simply a hint to the tooling to treat upcoming Releases as a certain type.

Step 2: Publishing a native Release

Navigate to your project, then click the New Release button.

The form will ask you for a Release Name, a Display Name, and Description. You can also add an image to the release.

The name field works the same way as the account and project names -- it is an immutable tag that represents the version of the release, and is accessible at the account/project/release path once published.

Next, you will see a list of file upload buttons corresponding to the supported platform/architecture combinations. Choose one or more of your binaries for the right platform, and click Create.

This will fire off a transaction, and successfully publish your release!

Congratulations, you've now published your binaries in a web3-native way! 🚀 Time to pat yourself on the back and share your work with the world!

An example multi-platform project can be found here:

This contains both a CLI example, as well as a GitHub Action workflow example!

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

Last updated