Skip to content

Instantly share code, notes, and snippets.

@Antondomashnev
Created November 6, 2016 22:43
Show Gist options
  • Save Antondomashnev/60b26b6d9dd25d04cf7310e673d247f6 to your computer and use it in GitHub Desktop.
Save Antondomashnev/60b26b6d9dd25d04cf7310e673d247f6 to your computer and use it in GitHub Desktop.
Showcase of fastlane lanes to update yaml CHANGELOG file as yaml
lane :put_upcoming_to_releases do
changelog_data = get_changelog_data
upcoming = changelog_data["upcoming"].clone
changelog_data["upcoming"]["version"] = nil
changelog_data["upcoming"]["notes"] = nil
if changelog_data["releases"].count > 0
changelog_data["releases"].unshift(upcoming)
else
changelog_data["releases"].push(upcoming)
end
save_changelog_data(
changelog_data: changelog_data
)
git_commit_shell(
message: "Move upcoming version to releases in CHANGELOG"
)
end
private_lane :get_changelog_data do
changelog_data = YAML.load(File.open "../CHANGELOG.yml")
changelog_data
end
private_lane :save_changelog_data do |options|
changelog_data = options[:changelog_data]
File.open("../CHANGELOG.yml", 'w') { |f| YAML.dump(changelog_data, f) }
end
private_lane :get_releases do
changelog_data = get_changelog_data
releases = changelog_data["releases"]
releases
end
private_lane :get_upcoming do
changelog_data = get_changelog_data
upcoming = changelog_data["upcoming"]
upcoming
end
private_lane :get_upcoming_version do
upcoming = get_upcoming
upcoming_version = upcoming["version"]
upcoming_version
end
private_lane :get_upcoming_notes do
upcoming = get_upcoming
upcoming_notes = "* #{upcoming["notes"].join "\n* "} \n\n"
upcoming_notes
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment