DevelopersDeploymentSourcesNative

Native Sources

The Native source is used for blueprints that compile to a native binary and release via the release.yml GitHub workflow from the blueprint template.

Requirements

The requirements for running native blueprints are available here

Format

The Native source has the following format:

pub struct NativeSource {
    pub owner: String,
    pub repo: String,
    pub tag: String,
    pub binaries: Vec<BlueprintBinary>,
}
 
pub struct BlueprintBinary {
    pub arch: Architecture,
    pub os: OperatingSystem,
    pub name: String,
}

Where:

  • owner - The owner of the GitHub repository (e.g., tangle-network)
  • repo - The name of the repository (e.g., some-blueprint)
  • tag - The release tag of the binary (e.g., 0.1.0)
  • binaries - A list of binaries (e.g., see below)

And in BlueprintBinary:

  • arch - The architecture the blueprint was built for (see Architecture)
  • os - The operating system the blueprint was built for (see OperatingSystem)
  • name - The name of the binary in the GitHub release (e.g., my-blueprint-bin)

And they can be specified in the manifest of your binary crate like so:

[package.metadata.blueprint]
sources = [
    { type = "Native", owner = "some-github-user", repo = "some-blueprint", tag = "0.1.0", binaries = [
        { arch = "Amd64", os = "Linux", name = "my-blueprint-bin" },
    ] },
]