From c444c915fc349ee345080aa4d151f9416b5c0ab8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 28 Mar 2021 13:19:02 +0300 Subject: feat: create git tag for release --- src/git.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/git.rs (limited to 'src/git.rs') diff --git a/src/git.rs b/src/git.rs new file mode 100644 index 0000000..76f6da1 --- /dev/null +++ b/src/git.rs @@ -0,0 +1,25 @@ +use crate::errors::BumperError; +use log::{debug, info}; +use std::process::Command; + +pub fn tag(version: &str) -> Result<(), BumperError> { + let tag_name = format!("v{}", version); + info!("Create git tag {}", tag_name); + let output = Command::new("git") + .arg("tag") + .arg("-am") + .arg(format!("release version {}", version)) + .arg(format!("v{}", version)) + .output(); + let output = match output { + Ok(output) => output, + Err(err) => { + return Err(BumperError::GitInvoke(err)); + } + }; + debug!("git exit code was {:?}", output.status.code()); + if !output.status.success() { + return Err(BumperError::git_tag(&output.stderr)); + } + Ok(()) +} -- cgit v1.2.1