Skip to content

Commit ff64ff9

Browse files
committed
Refactor new milestone creation to allow for parametrized duration
1 parent b2a0ecb commit ff64ff9

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

lib/fastlane/plugin/wpmreleasetoolkit/actions/common/create_new_milestone_action.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ def self.run(params)
1212
last_stone = Fastlane::Helper::GithubHelper.get_last_milestone(repository)
1313
UI.message("Last detected milestone: #{last_stone[:title]} due on #{last_stone[:due_on]}.")
1414
milestone_duedate = last_stone[:due_on]
15-
newmilestone_duedate = (milestone_duedate.to_datetime.next_day(14).to_time).utc
15+
newmilestone_duration = params[:milestone_duration]
16+
newmilestone_duedate = (milestone_duedate.to_datetime.next_day(newmilestone_duration).to_time).utc
1617
newmilestone_number = Fastlane::Helper::Ios::VersionHelper.calc_next_release_version(last_stone[:title])
1718
UI.message("Next milestone: #{newmilestone_number} due on #{newmilestone_duedate}.")
18-
Fastlane::Helper::GithubHelper.create_milestone(repository, newmilestone_number, newmilestone_duedate, params[:need_appstore_submission])
19+
Fastlane::Helper::GithubHelper.create_milestone(repository, newmilestone_number, newmilestone_duedate, newmilestone_duration, params[:need_appstore_submission])
1920
end
2021

2122
def self.description
@@ -48,6 +49,12 @@ def self.available_options
4849
optional: true,
4950
is_string: false,
5051
default_value: false),
52+
FastlaneCore::ConfigItem.new(key: :milestone_duration,
53+
env_name: 'GHHELPER_MILESTONE_DURATION',
54+
description: 'Milestone duration in number of days',
55+
optional: true,
56+
is_string: false,
57+
default_value: 14),
5158
]
5259
end
5360

lib/fastlane/plugin/wpmreleasetoolkit/helper/github_helper.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,13 @@ def self.get_last_milestone(repository)
8080
last_stone
8181
end
8282

83-
def self.create_milestone(repository, newmilestone_number, newmilestone_duedate, need_submission)
84-
submission_date = need_submission ? newmilestone_duedate.to_datetime.next_day(11) : newmilestone_duedate.to_datetime.next_day(14)
85-
release_date = newmilestone_duedate.to_datetime.next_day(14)
83+
def self.create_milestone(repository, newmilestone_number, newmilestone_duedate, newmilestone_duration, need_submission)
84+
# If there is a review process, we want to submit the binary 3 days before its release
85+
#
86+
# Using 3 days is mostly for historical reasons where we release the apps on Monday and submit them on Friday.
87+
days_until_submission = need_submission ? (newmilestone_duration - 3) : newmilestone_duration
88+
submission_date = newmilestone_duedate.to_datetime.next_day(days_until_submission)
89+
release_date = newmilestone_duedate.to_datetime.next_day(newmilestone_duration)
8690
comment = "Code freeze: #{newmilestone_duedate.to_datetime.strftime('%B %d, %Y')} App Store submission: #{submission_date.strftime('%B %d, %Y')} Release: #{release_date.strftime('%B %d, %Y')}"
8791

8892
options = {}

0 commit comments

Comments
 (0)