Skip to content

Commit d136b4f

Browse files
Merge pull request #396 from wordpress-mobile/add/argument-to-update-release-notes
Add optional `release_notes_file_path` arg to `update_release_notes`
2 parents b2a0ecb + 091de20 commit d136b4f

File tree

5 files changed

+139
-2
lines changed

5 files changed

+139
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ _None_
2626

2727
- Add `tools:ignore="InconsistentArrays"` to `available_languages.xml` to avoid a linter warning on repos hosting multiple app flavors. [#390]
2828
- Add the ability to provide a custom message for builds triggered via `buildkite_trigger_build` action [#392]
29+
- Add optional `release_notes_file_path` to `ios_update_release_notes` and `android_update_release_notes` [#396]
2930

3031
### Bug Fixes
3132

lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_release_notes.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def self.run(params)
88
require_relative '../../helper/release_notes_helper'
99
require_relative '../../helper/git_helper'
1010

11-
path = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'RELEASE-NOTES.txt')
11+
path = params[:release_notes_file_path]
1212
next_version = Fastlane::Helper::Android::VersionHelper.calc_next_release_short_version(params[:new_version])
1313

1414
Fastlane::Helper::ReleaseNotesHelper.add_new_section(path: path, section_title: next_version)
@@ -35,6 +35,11 @@ def self.available_options
3535
env_name: 'FL_ANDROID_UPDATE_RELEASE_NOTES_VERSION',
3636
description: 'The version we are currently freezing; An empty entry for the _next_ version after this one will be added to the release notes',
3737
is_string: true),
38+
FastlaneCore::ConfigItem.new(key: :release_notes_file_path,
39+
env_name: 'FL_ANDROID_UPDATE_RELEASE_NOTES_FILE_PATH',
40+
description: 'The path to the release notes file to be updated',
41+
is_string: true,
42+
default_value: File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'RELEASE-NOTES.txt')),
3843
]
3944
end
4045

lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_release_notes.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def self.run(params)
88
require_relative '../../helper/release_notes_helper'
99
require_relative '../../helper/git_helper'
1010

11-
path = File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'RELEASE-NOTES.txt')
11+
path = params[:release_notes_file_path]
1212
next_version = Fastlane::Helper::Ios::VersionHelper.calc_next_release_version(params[:new_version])
1313

1414
Fastlane::Helper::ReleaseNotesHelper.add_new_section(path: path, section_title: next_version)
@@ -35,6 +35,11 @@ def self.available_options
3535
env_name: 'FL_IOS_UPDATE_RELEASE_NOTES_VERSION',
3636
description: 'The version we are currently freezing; An empty entry for the _next_ version after this one will be added to the release notes',
3737
is_string: true),
38+
FastlaneCore::ConfigItem.new(key: :release_notes_file_path,
39+
env_name: 'FL_IOS_UPDATE_RELEASE_NOTES_FILE_PATH',
40+
description: 'The path to the release notes file to be updated',
41+
is_string: true,
42+
default_value: File.join(ENV['PROJECT_ROOT_FOLDER'] || '.', 'RELEASE-NOTES.txt')),
3843
]
3944
end
4045

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
require 'spec_helper'
2+
3+
describe Fastlane::Actions::AndroidUpdateReleaseNotesAction do
4+
let(:new_section) do
5+
<<~CONTENT
6+
1.1
7+
-----
8+
9+
10+
CONTENT
11+
end
12+
13+
let(:content) do
14+
<<~CONTENT
15+
1.0
16+
-----
17+
- Item 1 for v1.0
18+
- Item 2 for v1.0
19+
20+
// Comment in the middle
21+
22+
0.9.0
23+
-----
24+
- Item 1 for v0.9.0
25+
- Item 2 for v0.9.0
26+
CONTENT
27+
end
28+
29+
describe '#android_update_release_notes' do
30+
it 'adds a new section on RELEASE-NOTES.txt' do
31+
in_tmp_dir do |tmp_dir|
32+
# Arrange
33+
release_notes_txt = File.join(tmp_dir, 'RELEASE-NOTES.txt')
34+
File.write(release_notes_txt, content)
35+
36+
# Act
37+
run_described_fastlane_action(
38+
new_version: '1.0'
39+
)
40+
41+
# Assert
42+
expect(File.read(release_notes_txt)).to eq(new_section + content)
43+
end
44+
end
45+
46+
it 'adds a new section on the given file' do
47+
in_tmp_dir do |tmp_dir|
48+
# Arrange
49+
changelog_md = File.join(tmp_dir, 'CHANGELOG.md')
50+
File.write(changelog_md, content)
51+
52+
# Act
53+
run_described_fastlane_action(
54+
new_version: '1.0',
55+
release_notes_file_path: changelog_md
56+
)
57+
58+
# Assert
59+
expect(File.read(changelog_md)).to eq(new_section + content)
60+
end
61+
end
62+
end
63+
end

spec/ios_update_release_notes_spec.rb

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
require 'spec_helper'
2+
3+
describe Fastlane::Actions::IosUpdateReleaseNotesAction do
4+
let(:new_section) do
5+
<<~CONTENT
6+
1.1
7+
-----
8+
9+
10+
CONTENT
11+
end
12+
13+
let(:content) do
14+
<<~CONTENT
15+
1.0
16+
-----
17+
- Item 1 for v1.0
18+
- Item 2 for v1.0
19+
20+
// Comment in the middle
21+
22+
0.9.0
23+
-----
24+
- Item 1 for v0.9.0
25+
- Item 2 for v0.9.0
26+
CONTENT
27+
end
28+
29+
describe '#ios_update_release_notes' do
30+
it 'adds a new section on RELEASE-NOTES.txt' do
31+
in_tmp_dir do |tmp_dir|
32+
# Arrange
33+
release_notes_txt = File.join(tmp_dir, 'RELEASE-NOTES.txt')
34+
File.write(release_notes_txt, content)
35+
36+
# Act
37+
run_described_fastlane_action(
38+
new_version: '1.0'
39+
)
40+
41+
# Assert
42+
expect(File.read(release_notes_txt)).to eq(new_section + content)
43+
end
44+
end
45+
46+
it 'adds a new section on the given file' do
47+
in_tmp_dir do |tmp_dir|
48+
# Arrange
49+
changelog_md = File.join(tmp_dir, 'CHANGELOG.md')
50+
File.write(changelog_md, content)
51+
52+
# Act
53+
run_described_fastlane_action(
54+
new_version: '1.0',
55+
release_notes_file_path: changelog_md
56+
)
57+
58+
# Assert
59+
expect(File.read(changelog_md)).to eq(new_section + content)
60+
end
61+
end
62+
end
63+
end

0 commit comments

Comments
 (0)