diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 8a075b7..2cd897b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -22,9 +22,15 @@ jobs: ~/.cargo/git target key: musl-cargo-${{ hashFiles('**/Cargo.toml') }} + - name: Remove files for a build with correct version info + run: | + find target/ -name 'shadow*' -exec rm -r {} + || true + find target/ -name 'tsumugu' -delete || true - name: Test & Compile run: | mkdir -p ~/.cargo/{git,registry} + # Fix git permission issue with Docker and shadow-rs + sudo chown -R root . docker run --rm -t \ --mount type=bind,source=${{ github.workspace }},target=/volume \ --mount type=bind,source=$HOME/.cargo/registry,target=/root/.cargo/registry \ @@ -40,7 +46,9 @@ jobs: clux/muslrust:stable \ cargo build --release sudo chown -R runner ~/.cargo/ - sudo chown -R runner target/ + sudo chown -R runner . + # show version info + RUST_LOG=debug target/x86_64-unknown-linux-musl/release/yukina --version - name: Deploy - Create and Upload Release if: startsWith(github.ref, 'refs/tags/') diff --git a/src/main.rs b/src/main.rs index 7c8073a..ba3fabf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,10 +27,14 @@ fn parse_bytes(s: &str) -> Result { } fn get_version() -> &'static str { - if build::SHORT_COMMIT.is_empty() { - build::LAST_TAG + let tag = build::TAG; + let clean = build::GIT_CLEAN; + if !clean { + return Box::leak(format!("{} (dirty)", build::SHORT_COMMIT).into_boxed_str()); + } else if tag.is_empty() { + return build::SHORT_COMMIT; } else { - build::SHORT_COMMIT + return tag; } }