pub struct NightlyConfig {
pub version_template: Option<String>,
pub name_template: Option<String>,
pub tag_name: Option<String>,
pub publish_release: Option<bool>,
pub publish_repo: Option<String>,
pub keep_single_release: Option<bool>,
pub retention: Option<RetentionConfig>,
pub draft: Option<bool>,
pub prerelease: Option<bool>,
pub make_latest: Option<MakeLatestConfig>,
}Fields§
§version_template: Option<String>Template for the rendered version string the nightly run sets on
Version / RawVersion. Default:
"{{ incpatch(v=Version) }}-{{ ShortCommit }}-nightly" — produces
commit-immutable nightly versions (two same-day commits yield two
distinct nightly versions).
The {{ NightlyBuild }} template var (a stateless per-base-version
build counter derived from git rev-list --count <last-tag>..HEAD)
enables nushell-style schemes such as
"{{ Base }}-nightly.{{ NightlyBuild }}+{{ ShortCommit }}".
name_template: Option<String>Template for the release name. Default: "{{ ProjectName }}-nightly".
tag_name: Option<String>Tag name used for the nightly release. Default: "nightly".
Templates allowed.
publish_release: Option<bool>Whether to publish a GitHub Release at all. Default: true.
Set false for nightly-only docker pushes / blob uploads.
publish_repo: Option<String>Publish the nightly release to a DIFFERENT repository than the source
repo, in "owner/repo" form (e.g. "nushell/nightly"). Default
(None) publishes to the configured release.github repo, unchanged.
When set, the nightly release create, asset upload, AND retention
(keep_single_release / retention.keep_last) delete calls all
target this repo. The active SCM token is assumed to have write
access to publish_repo. GitHub-only (the nushell adoption target).
keep_single_release: Option<bool>Delete the prior release that points at the same tag before
creating the new one. Default: false. Set true to maintain a
single rolling nightly release on GitHub.
Back-compat alias for retention: { keep_last: 1 }. When both
keep_single_release and retention are set, retention wins.
Destructive: deletes a published release via the GitHub Releases API.
GitHub-only.
retention: Option<RetentionConfig>Retention policy for nightly releases on GitHub. Generalizes
keep_single_release (which is keep_last: 1): keeps the N newest
nightly releases matching the nightly tag/name and deletes the rest
(releases + the tags anodizer created for them). Operates on
publish_repo when set. Default (None): no retention sweep.
draft: Option<bool>Override release.draft for nightly runs only.
None falls through to release.draft; Some(v) overrides it.
prerelease: Option<bool>Mark the nightly release as a prerelease. Default: true.
Unlike Self::draft, None does NOT fall through to
release.prerelease — that field resolves to false for a nightly
(an unset config is false, and prerelease: auto cannot help
because the default nightly tag is not a parseable semver tag), so
falling through would publish every nightly as a stable release.
Set false to opt out.
make_latest: Option<MakeLatestConfig>Override release.make_latest for nightly runs only. Default:
false — a rolling nightly must not displace the newest stable
release in the GitHub UI, in releases/latest, or for the install
scripts and gh release download invocations that resolve it.
None does not fall through to release.make_latest for the same
reason as Self::prerelease: unset there means GitHub’s own
default, which IS latest.
Implementations§
Source§impl NightlyConfig
impl NightlyConfig
Sourcepub fn resolved_keep_last(&self) -> Option<usize>
pub fn resolved_keep_last(&self) -> Option<usize>
Resolve the effective keep_last retention count, or None when no
retention is requested.
Precedence: an explicit retention: block wins over the legacy
keep_single_release: alias. keep_single_release: true (with no
retention) maps to keep_last: 1; false maps to None. A
retention.keep_last: 0 is floored to 1 so a retention sweep
never deletes the just-created release.
Trait Implementations§
Source§impl Clone for NightlyConfig
impl Clone for NightlyConfig
Source§fn clone(&self) -> NightlyConfig
fn clone(&self) -> NightlyConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NightlyConfig
impl Debug for NightlyConfig
Source§impl Default for NightlyConfig
impl Default for NightlyConfig
Source§fn default() -> NightlyConfig
fn default() -> NightlyConfig
Source§impl<'de> Deserialize<'de> for NightlyConfigwhere
NightlyConfig: Default,
impl<'de> Deserialize<'de> for NightlyConfigwhere
NightlyConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for NightlyConfig
impl JsonSchema for NightlyConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more