fix: Git sha not present during cargo install (#176)
This commit is contained in:
parent
ad7a0f075e
commit
c2abf3fcb8
7 changed files with 32 additions and 64 deletions
20
Cargo.lock
generated
20
Cargo.lock
generated
|
|
@ -405,9 +405,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "const_fn"
|
||||
version = "0.4.9"
|
||||
version = "0.4.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
|
||||
checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d"
|
||||
|
||||
[[package]]
|
||||
name = "const_format"
|
||||
|
|
@ -641,9 +641,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "git2"
|
||||
version = "0.18.2"
|
||||
version = "0.18.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
|
||||
checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"libc",
|
||||
|
|
@ -790,9 +790,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
|
|||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
version = "0.1.28"
|
||||
version = "0.1.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
|
||||
checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
|
@ -849,9 +849,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.15"
|
||||
version = "1.1.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
|
||||
checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
|
|
@ -1676,9 +1676,9 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
|
|||
|
||||
[[package]]
|
||||
name = "unicode-normalization"
|
||||
version = "0.1.22"
|
||||
version = "0.1.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
||||
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
|
||||
dependencies = [
|
||||
"tinyvec",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -48,7 +48,8 @@ license.workspace = true
|
|||
[package.metadata.release]
|
||||
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
|
||||
pre-release-replacements = [
|
||||
{ file = "install.sh", search="VERSION=v\\d+\\.\\d+\\.\\d+", replace = "VERSION=v{{version}}" }
|
||||
{ file = "install.sh", search = "VERSION=v\\d+\\.\\d+\\.\\d+", replace = "VERSION=v{{version}}" },
|
||||
{ file = "README.md", search = "v\\d+\\.\\d+\\.\\d+", replace = "v{{version}}" }
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
|
|
@ -64,7 +65,7 @@ open = "5"
|
|||
os_info = "3.7" # update os module config and tests when upgrading os_info
|
||||
requestty = { version = "0.5", features = ["macros", "termion"] }
|
||||
semver = { version = "1.0.22", features = ["serde"] }
|
||||
shadow-rs = { version = "0.26" }
|
||||
shadow-rs = "0.26"
|
||||
urlencoding = "2.1.3"
|
||||
users = "0.11.0"
|
||||
|
||||
|
|
@ -88,7 +89,7 @@ default = []
|
|||
rusty-hook = "0.11.2"
|
||||
|
||||
[build-dependencies]
|
||||
shadow-rs = { version = "0.26.1", default-features = false }
|
||||
shadow-rs = "0.26"
|
||||
dunce = "1.0.4"
|
||||
|
||||
[lints]
|
||||
|
|
|
|||
12
Earthfile
12
Earthfile
|
|
@ -53,15 +53,21 @@ build-scripts:
|
|||
FROM alpine
|
||||
LABEL org.opencontainers.image.source="https://github.com/blue-build/cli"
|
||||
COPY --dir scripts/ /
|
||||
FOR script IN $(ls /scripts | grep -e '.*\.sh$')
|
||||
FOR script IN "$(ls /scripts | grep -e '.*\.sh$')"
|
||||
RUN echo "Making ${script} executable" && \
|
||||
chmod +x scripts/${script}
|
||||
chmod +x "scripts/${script}"
|
||||
END
|
||||
|
||||
DO --pass-args +LABELS
|
||||
|
||||
ARG EARTHLY_GIT_HASH
|
||||
SAVE IMAGE --push $IMAGE:$EARTHLY_GIT_HASH-build-scripts
|
||||
SAVE IMAGE --push "$IMAGE:$EARTHLY_GIT_HASH-build-scripts"
|
||||
|
||||
ARG TAGGED="false"
|
||||
ARG LATEST="false"
|
||||
IF [ "$TAGGED" = "true" ] && [ "$LATEST" ]
|
||||
SAVE IMAGE --push "$IMAGE:latest-build-scripts"
|
||||
END
|
||||
|
||||
blue-build-cli:
|
||||
ARG BASE_IMAGE="registry.fedoraproject.org/fedora-toolbox"
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ A CLI tool built for creating Containerfile templates based on the Ublue Communi
|
|||
This is the best way to install as it gives you the opportunity to build for your specific environment.
|
||||
|
||||
```bash
|
||||
cargo install --locked blue-build
|
||||
cargo install --git https://github.com/blue-build/cli.git --tag v0.8.6
|
||||
```
|
||||
|
||||
### Podman/Docker
|
||||
|
|
|
|||
42
build.rs
42
build.rs
|
|
@ -1,45 +1,5 @@
|
|||
use shadow_rs::SdResult;
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
use std::process::Command;
|
||||
|
||||
fn main() -> SdResult<()> {
|
||||
shadow_rs::new_hook(hook)
|
||||
}
|
||||
|
||||
fn hook(mut file: &File) -> SdResult<()> {
|
||||
let hash = Command::new("git")
|
||||
.args(["rev-parse", "HEAD"])
|
||||
.output()
|
||||
.map(|x| {
|
||||
String::from_utf8(x.stdout)
|
||||
.ok()
|
||||
.map(|x| x.trim().to_string())
|
||||
})
|
||||
.unwrap_or(None);
|
||||
|
||||
let short_hash = Command::new("git")
|
||||
.args(["rev-parse", "--short", "HEAD"])
|
||||
.output()
|
||||
.map(|x| {
|
||||
String::from_utf8(x.stdout)
|
||||
.ok()
|
||||
.map(|x| x.trim().to_string())
|
||||
})
|
||||
.unwrap_or(None);
|
||||
|
||||
let hook_const: &str = &format!(
|
||||
"{}\n{}",
|
||||
&format!(
|
||||
"pub const BB_COMMIT_HASH: &str = \"{}\";",
|
||||
hash.unwrap_or_default()
|
||||
),
|
||||
&format!(
|
||||
"pub const BB_COMMIT_HASH_SHORT: &str = \"{}\";",
|
||||
short_hash.unwrap_or_default()
|
||||
)
|
||||
);
|
||||
|
||||
writeln!(file, "{hook_const}")?;
|
||||
Ok(())
|
||||
shadow_rs::new()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,10 +33,7 @@ pub struct BugReportCommand {
|
|||
|
||||
impl BlueBuildCommand for BugReportCommand {
|
||||
fn try_run(&mut self) -> anyhow::Result<()> {
|
||||
debug!(
|
||||
"Generating bug report for hash: {}\n",
|
||||
shadow::BB_COMMIT_HASH
|
||||
);
|
||||
debug!("Generating bug report for hash: {}\n", shadow::COMMIT_HASH);
|
||||
debug!("Shadow Versioning:\n{}", shadow::VERSION.trim());
|
||||
|
||||
self.create_bugreport()
|
||||
|
|
@ -295,7 +292,7 @@ fn generate_github_issue(
|
|||
.bb_version(shadow::PKG_VERSION)
|
||||
.build_rust_channel(shadow::BUILD_RUST_CHANNEL)
|
||||
.build_time(shadow::BUILD_TIME)
|
||||
.git_commit_hash(shadow::BB_COMMIT_HASH)
|
||||
.git_commit_hash(shadow::COMMIT_HASH)
|
||||
.os_name(format!("{}", environment.os_type))
|
||||
.os_version(format!("{}", environment.os_version))
|
||||
.pkg_branch_tag(get_pkg_branch_tag())
|
||||
|
|
|
|||
|
|
@ -119,7 +119,11 @@ impl TemplateCommand {
|
|||
.recipe(&recipe_de)
|
||||
.recipe_path(recipe_path.as_path())
|
||||
.registry(self.get_registry())
|
||||
.exports_tag(shadow::BB_COMMIT_HASH)
|
||||
.exports_tag(if shadow::COMMIT_HASH.is_empty() {
|
||||
"latest"
|
||||
} else {
|
||||
shadow::COMMIT_HASH
|
||||
})
|
||||
.build();
|
||||
|
||||
let output_str = template.render()?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue