pub enum ReleaseStep {
Show 19 variants
CreateTrackerStorage,
InitTrackerDatabase,
RenderTrackerTemplates,
DeployTrackerConfigToRemote,
CreatePrometheusStorage,
RenderPrometheusTemplates,
DeployPrometheusConfigToRemote,
CreateGrafanaStorage,
RenderGrafanaTemplates,
DeployGrafanaProvisioning,
CreateMysqlStorage,
RenderBackupTemplates,
CreateBackupStorage,
DeployBackupConfigToRemote,
InstallBackupCrontab,
RenderCaddyTemplates,
DeployCaddyConfigToRemote,
RenderDockerComposeTemplates,
DeployComposeFilesToRemote,
}Expand description
Steps in the release workflow
Each variant represents a distinct phase in the release process. This allows precise tracking of which step failed during release.
The release workflow follows the three-level architecture:
- Command (Level 1):
ReleaseCommandHandlerorchestrates the workflow - Step (Level 2): Individual steps like
RenderDockerComposeTemplatesStepandDeployComposeFilesStep - Remote Action (Level 3): Ansible playbooks execute on remote hosts
Variants§
CreateTrackerStorage
Creating tracker storage directories on remote host
InitTrackerDatabase
Initializing tracker SQLite database file
RenderTrackerTemplates
Rendering Tracker configuration templates to the build directory
DeployTrackerConfigToRemote
Deploying tracker configuration to the remote host via Ansible
CreatePrometheusStorage
Creating Prometheus storage directories on remote host
RenderPrometheusTemplates
Rendering Prometheus configuration templates to the build directory
DeployPrometheusConfigToRemote
Deploying Prometheus configuration to the remote host via Ansible
CreateGrafanaStorage
Creating Grafana storage directories on remote host
RenderGrafanaTemplates
Rendering Grafana provisioning templates to the build directory
DeployGrafanaProvisioning
Deploying Grafana provisioning configuration to the remote host via Ansible
CreateMysqlStorage
Creating MySQL storage directories on remote host
RenderBackupTemplates
Rendering Backup configuration templates to the build directory (if backup enabled)
CreateBackupStorage
Creating Backup storage directories on remote host (if backup enabled)
DeployBackupConfigToRemote
Deploying Backup configuration to the remote host via Ansible (if backup enabled)
InstallBackupCrontab
Installing backup crontab and maintenance script (if backup enabled)
RenderCaddyTemplates
Rendering Caddy configuration templates to the build directory (if HTTPS enabled)
DeployCaddyConfigToRemote
Deploying Caddy configuration to the remote host via Ansible (if HTTPS enabled)
RenderDockerComposeTemplates
Rendering Docker Compose templates to the build directory
DeployComposeFilesToRemote
Deploying compose files to the remote host via Ansible
Trait Implementations§
Source§impl Clone for ReleaseStep
impl Clone for ReleaseStep
impl Copy for ReleaseStep
Source§impl Debug for ReleaseStep
impl Debug for ReleaseStep
Source§impl<'de> Deserialize<'de> for ReleaseStep
impl<'de> Deserialize<'de> for ReleaseStep
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 Display for ReleaseStep
impl Display for ReleaseStep
impl Eq for ReleaseStep
Source§impl From<ReleaseStep> for ReleaseWorkflowStep
impl From<ReleaseStep> for ReleaseWorkflowStep
Source§fn from(s: ReleaseStep) -> Self
fn from(s: ReleaseStep) -> Self
Source§impl PartialEq for ReleaseStep
impl PartialEq for ReleaseStep
Source§impl Serialize for ReleaseStep
impl Serialize for ReleaseStep
impl StructuralPartialEq for ReleaseStep
Auto Trait Implementations§
impl Freeze for ReleaseStep
impl RefUnwindSafe for ReleaseStep
impl Send for ReleaseStep
impl Sync for ReleaseStep
impl Unpin for ReleaseStep
impl UnsafeUnpin for ReleaseStep
impl UnwindSafe for ReleaseStep
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = !
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.