Pattern strings / tokens

Runway uses a system of ‘tokens’ to allow for dynamic values in things like:

Wherever you set these strings in Runway, including tokens will allow Runway to dynamically inject values and also understand the different strings it pulls in from the outside world. Certain tokens can have ‘modifiers’, which allow you to customize the format of the data associated with those tokens.

Available token types

  • {version} — three-segment SemVer

    • Example: 1.2.3

    • Modifier available — pre-padding

      • Example: {version}[0,0,2] : 1.2.3 -> 1.2.003

  • {versionConcise}— truncates trailing zeroes in SemVer versions

    • Example: 1.2.3 -> 1.2.3

    • Example: 1.2.0 -> 1.2

    • Example 1.0.0 -> 1

    • Modifier available — minimum digits

      • Example: {versionConcise}[2] : 1.0.0 -> 1.0

  • {versionMajorMinor} — SemVer major and minor digits only

    • Example: 2.0.0 -> 2.0

    • Example: 2.0.1 -> 2.0

  • {releaseName} — human-readable release name

    • Example: Cinnamon

    • Example: Big Feature

  • {releasePilot} — email of the release pilot

  • {releaseBranchName}

  • {workingBranchName} — the name of your trunk branch (e.g. develop)

  • {targetBranchName} — target branch for a backmerge PR

  • {*} — any string

  • {commitMessage} — commit’s message

  • {commitShortHash} — commit’s short hash

  • {prTitle} — e.g. from cherry-picked PR

  • {prBody} — e.g. from cherry-picked PR

  • {prTitleOrCommitMessage} — PR title or commit message

  • {prBodyOrCommitHash} — PR body or commit hash

  • {prNumberOrCommitHash} — PR number or commit hash

  • {releaseNotesTerm} — a title or label for the release notes appropriate to their destination in the app store

    • Example: What’s New in App Store Connect

    • Example: Release notes in Google Play Console, Amazon Appstore, and Huawei AppGallery

  • {releaseNotes} — notes included in app store metadata on release

    • Modifier available to allow users to enter either single release notes for specific locales

      • {releaseNotes}[en] -> release notes for English only

      • {releaseNotes}[en,fr] -> release notes for English & French locales with a title header for each to separate them

  • {releaseDuration} — the duration of a given release cycle from kickoff to when the release went live

  • {releasedAt} — date the release went live

  • {releaseWorkItemsLink} — link to Feature Readiness step in Runway to view the work items for a given release

  • {releaseAppStoreLink} — link to release in App Store Connect or Play Console

  • {releaseVCSReleaseLink} — link to the release in your version control system

  • {appStoreBuildNumber} — build number as it appears in App Store Connect or Play Console

    • Modifier available — substrings and trimming

      • {appStoreBuildNumber}[2] : App store build 12345 -> 12

      • {appStoreBuildNumber}[-2] : App store build 12345 -> 45

      • {appStoreBuildNumber}[2] : App store build 1.2.3.45 -> 1.2

      • {appStoreBuildNumber}[-2] : App store build 1.2.3.45 -> 45

      • {appStoreBuildNumber}[-3,true] : App store build 1.2.3.1602061 -> 61

  • {appPlatform} — e.g. iOS, Android, Wear OS

  • {ciBuildsCount} — number of successful CI release candidate builds in the release

    • Modifier available — offset

      • Example: {ciBuildsCount}[1] -> 2 if number of successful CI builds is 1

  • {ciBuildNumber} — build number as it appears in CI

  • {workItems} — changelog-like list of a release’s work items (commits in the diff with links to corresponding tickets where applicable)

    • Modifier available for prLabel, commit, and semVerSegments

      • Example: {workItems}[prLabel:new-feature] -> all Feature Readiness work items that have tickets with the label new-feature

      • Example: {workItems}[prLabel:!new-feature,!sync] -> all Feature Readiness work items not having tickets with the label new-feature or sync

      • Example: {workItems}[bug] -> all Feature Readiness work items with commits having commit message containing the string “bug”

  • {workItemsCount} — number of work items for a given release

  • {issuesCount} — number of tickets that were completed in a given release

  • {commitsCount} — number of commits in release

  • {contributorsCount} — number of contributors in release

  • {linesOfCodeCount} — number of lines of code in release

Establishing a 'final' release tag naming convention will allow Runway to surface the correct diffs release to release, and will seamlessly work with the Release tag automation.

Usage

  • Required:

    • Either {version}, {versionConcise}, or {versionMajorMinor}

  • Not allowed:

    • {*}, {commitMessage}, {targetBranchName}, {prTitle}, {prBody}, {prTitleOrCommitMessage}, {prBodyOrCommitHash}, {prNumberOrCommitHash}, {workItems}, {appName}, {appPlatform}, {workItemsCount}, {issuesCount},{commitsCount}, {contributorsCount}, {linesOfCodeCount}, {releaseDuration}, {releasedAt}, {releaseWorkItemsLink}, {releaseAppStoreLink}, {releaseVCSReleaseLink}, or {releaseNotes}

Last updated

Was this helpful?