mirror of
https://github.com/discourse/discourse.git
synced 2026-08-05 18:57:20 -05:00
DEV: Automate aliases of release tag (#36903)
These were handled manually in the last release. `latest-release` and `beta` should be exact synonyms of `release`, for backwards compatibility. https://meta.discourse.org/t/383536/47
This commit is contained in:
+17
-3
@@ -1,6 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module ReleaseUtils
|
||||
PRIMARY_RELEASE_TAG = "release"
|
||||
RELEASE_TAGS = [PRIMARY_RELEASE_TAG, "beta", "latest-release"].freeze
|
||||
|
||||
def self.dry_run?
|
||||
!!ENV["DRY_RUN"]
|
||||
end
|
||||
@@ -161,11 +164,22 @@ namespace :release do
|
||||
end
|
||||
|
||||
if existing_releases.last && Gem::Version.new(current_version) > existing_releases.last
|
||||
ReleaseUtils.git "tag", "-a", "release", "-m", "latest release"
|
||||
ReleaseUtils::RELEASE_TAGS.each do |synonym_tag|
|
||||
message =
|
||||
if synonym_tag == ReleaseUtils::PRIMARY_RELEASE_TAG
|
||||
"latest release"
|
||||
else
|
||||
"backwards-compatibility alias for `#{ReleaseUtils::PRIMARY_RELEASE_TAG}` tag"
|
||||
end
|
||||
ReleaseUtils.git "tag", "-a", synonym_tag, "-m", message, "-f"
|
||||
end
|
||||
if ReleaseUtils.dry_run?
|
||||
puts "[DRY RUN] Skipping pushing 'release' tag to origin"
|
||||
puts "[DRY RUN] Skipping pushing #{ReleaseUtils::RELEASE_TAGS.inspect} tags to origin"
|
||||
else
|
||||
ReleaseUtils.git "push", "origin", "-f", "refs/tags/release"
|
||||
ReleaseUtils.git "push",
|
||||
"origin",
|
||||
"-f",
|
||||
*ReleaseUtils::RELEASE_TAGS.map { |tag| "refs/tags/#{tag}" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -103,6 +103,23 @@ RSpec.describe "tasks/version_bump" do
|
||||
expect(output).to include("Tag v2025.05.0 already exists, skipping")
|
||||
end
|
||||
end
|
||||
|
||||
it "creates all release alias tags when version is latest" do
|
||||
Dir.chdir(local_path) do
|
||||
run "git", "tag", "-a", "v2025.01.0", "-m", "version 2025.01.0"
|
||||
|
||||
File.write("lib/version.rb", fake_version_rb("2025.06.0"))
|
||||
run "git", "add", "."
|
||||
run "git", "commit", "-m", "release 2025.06.0"
|
||||
commit_hash = run("git", "rev-parse", "HEAD").strip
|
||||
run "git", "branch", "release/2025.06"
|
||||
|
||||
capture_stdout { invoke_rake_task("release:maybe_tag_release", commit_hash) }
|
||||
|
||||
tags = run("git", "tag").lines.map(&:strip)
|
||||
ReleaseUtils::RELEASE_TAGS.each { |tag| expect(tags).to include(tag) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "can create a new release branch" do
|
||||
|
||||
Reference in New Issue
Block a user