Native Sources

Use the Native source for blueprints that compile to a native binary and release through the release.yml GitHub workflow from the blueprint template.

Requirements

See the native source requirements.

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" },
    ] },
]