Publish Software Artifacts
Upload a file to a Nexigon repository, attach it to a package version, and make that version available through a tag. This guide demonstrates the repository workflow with one file. Updaters can require additional filenames and metadata; use their release tooling when publishing deployable software.
For Rugix system images, follow the Rugix release workflow. It publishes the system-specific bundle filename and image-version metadata required by the OTA integration.
For a release with several files or a scripted workflow, follow Publish a Package Version in the Nexigon CLI docs.
Before You Start
You need:
- Nexigon CLI configured with a token authorized to manage repository
assets, packages, and versions. The commands below assume it is on your
PATH. - A repository with working S3 storage.
- A file to publish, such as
firmware.rugixb.
This example uses a repository named my-repo and a package named
controller. Replace both with your own names. See
Repositories for the resource
model.
Upload the File
nexigon-cli repositories assets upload my-repo firmware.rugixb
Copy the returned asset ID. Uploading stores the file, but does not yet attach it to a release.
Create a Package Version
Create the package once, or use an existing one:
nexigon-cli repositories packages create my-repo controller
Create a version and copy its returned version ID. Its display name describes the release; it does not create a tag:
nexigon-cli repositories versions create my-repo/controller --name "Release 2.0.0"
Keep the version untagged while attaching its files. This lets you inspect the contents before consumers resolve the release through a tag.
Attach the File and Tag the Version
Use the IDs returned above:
nexigon-cli repositories versions assets add <version-id> <asset-id> firmware.rugixb
The attachment gives the stored asset a filename within the version. Uploading and attaching are separate operations, so the same stored content can be reused in more than one release. Inspect the version and confirm its filename and metadata before adding the release tag:
nexigon-cli repositories versions info <version-id>
Publish a locked release tag:
nexigon-cli repositories versions tag <version-id> --tag v2.0.0,locked
The tag makes the version resolvable at my-repo/controller/v2.0.0. Locking
keeps this release name assigned to the same version. It does not protect the
version’s contents; sealing provides
that protection after the release is complete.
Resolve the tag and request a download URL:
nexigon-cli repositories versions info my-repo/controller/v2.0.0
nexigon-cli repositories issue-url my-repo/controller/v2.0.0/firmware.rugixb
The second command returns a JSON object with a url field. This is a temporary
storage URL authorizing a download. Keep the asset path as the durable reference
and request a fresh URL when needed. Copy the returned URL and download the file:
curl --fail --location '<download-url>' --output downloaded-firmware.rugixb
Compare the downloaded file with the original to verify the publication.
Promote an Update Channel
To make devices tracking stable resolve this version, assign or reassign the
floating tag:
nexigon-cli repositories versions tag <version-id> --tag stable,reassign
The floating stable tag can move between versions as you promote releases.
Devices tracking that channel resolve the selected release on their next check.
You can promote the same uploaded version through testing and production
channels without uploading its bytes again.
For device deployment, continue with Deploy System Updates or Application Workloads. Complete and verify a release’s contents before sealing it to prevent later edits or deletion.