From 455777f43a5d21ac5fa844982bf164dee8710fd3 Mon Sep 17 00:00:00 2001 From: JoeJoeflyn Date: Tue, 28 Jul 2026 20:14:49 +0700 Subject: [PATCH] Fix version badge showing 0 for non-Docker installs Fall back through a VERSION file and `git describe --tags --always` before reaching "0", so the badge renders correctly for fresh clones without a tagged release. Fixes #447. --- config/initializers/version.rb | 9 ++++++++- test/helpers/version_helper_test.rb | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 test/helpers/version_helper_test.rb diff --git a/config/initializers/version.rb b/config/initializers/version.rb index 3861cc4c..f5f94125 100644 --- a/config/initializers/version.rb +++ b/config/initializers/version.rb @@ -1,2 +1,9 @@ -Rails.application.config.app_version = ENV.fetch("APP_VERSION", "0") +Rails.application.config.app_version = ENV.fetch("APP_VERSION") do + version_file = Rails.root.join("VERSION") + if version_file.exist? + version_file.read.strip + else + `git describe --tags --always 2>/dev/null`.strip.presence || "0" + end +end Rails.application.config.git_revision = ENV["GIT_REVISION"] diff --git a/test/helpers/version_helper_test.rb b/test/helpers/version_helper_test.rb new file mode 100644 index 00000000..f0e55cb6 --- /dev/null +++ b/test/helpers/version_helper_test.rb @@ -0,0 +1,21 @@ +require "test_helper" + +class VersionHelperTest < ActionView::TestCase + def setup + @original_app_version = Rails.application.config.app_version + end + + def teardown + Rails.application.config.app_version = @original_app_version + end + + test "version_badge renders the app version in a span" do + Rails.application.config.app_version = "1.2.0" + assert_equal '1.2.0', version_badge + end + + test "version_badge renders fallback zero when no version is set" do + Rails.application.config.app_version = "0" + assert_equal '0', version_badge + end +end