Quick Start
Please ensure you've followed the installation steps here first.
Configure Fastlane
At the top of your Fastfile include the following imports:
fastlane_require 'dotenv'
fastlane_require 'fastlane-plugin-apadmi_grout'
Run the scripts as follows.
Note, many attributes are pulled directly from the Environment Variables above.
TODO: Update version info with utils from build tools once they're created
platform = "Android/iOS" # Edit as needed
full_version_string = "<Pulled from source>" # For example: 0.1.0.2228
version_name = "<Pulled from source>" # For example 0.1.0
min_sdk_int = "<Pulled from source>" # For example: 28
tag_pattern = "start**changelog-v#{version_name}"
# Find the tickets ready to be moved
# Also flags tickets that appear to be in an incorrect state
tickets_to_move = find_tickets_to_move
# Move the JIRA tickets and assigned given versions
move_tickets(
versions: ["#{platform} v#{full_version_string}", "#{platform} v#{version_name}"],
issues: tickets_to_move
)
# Generate the release notes based on git history.
# Returns the notes string, the file path, and the full config object.
release_notes, release_notes_file, release_notes_config = generate_release_notes(
oldest_ref: last_git_tag(pattern: tag_pattern),
app_version: full_version_string,
min_sdk_int: min_sdk_int, # Optional
tickets_moved_by_build: tickets_to_move, # Optional
environment: "e.g Prod" # Optional
)
UI.success("Release Notes generated successfully")
UI.message(release_notes)
# Mark the Jira version as released and set its description.
# `released`, `description`, and `related_work` are all optional — omit a field to leave it unchanged.
# e.g you probably only want to set released = true on production builds.
# Each entry in `related_work` must have a :url and :title. Links whose URL already exists on
# the version are skipped, so this is safe to call repeatedly (e.g. on every build).
update_fix_version(
version_name: "#{platform} v#{version_name}",
released: true,
description: release_notes,
related_work: [
{ url: "https://your-confluence.atlassian.net/wiki/spaces/PROJ/pages/123", title: "Release Notes" }
]
)
# Assign fix versions to all release issues that don't already have them.
# Filters in-memory using the issues already fetched during release notes generation —
# no additional network calls are made to check existing versions.
assign_fix_versions_to_tickets(
issues: release_notes_config.release_issues,
version_names: ["#{platform} v#{full_version_string}", "#{platform} v#{version_name}"]
)