App configuration files
Fetching an existing app's configuration file
Adding an app using a YAML configuration file
# App example
# Describes an App within Runway
---
name: Apollo
platform: ios
appGroup: 'Apollo'
icon: 'https://uploads-ssl.webflow.com/5edfa38a1bd219267bdf69b7/5fadc479febc556d17ade92e_nasa-org.png'
integrations:
'GitHub Apollo': # The ID or alias of an integration
type: 'github-vcs' # For available integration types, see https://api-docs.runway.team/#tag/IntegrationType
provider: 'Apple GH' # Matches on either ID or alias
data:
repoName: 'apollo-ios' # The payload used to configure the integration. Dependent on integration type. For examples, compare to a payload from the GET app config endpoint.
'App Store Apollo':
type: 'apple'
provider: 'Apple App Store'
data:
bundleId: 'com.nasa.apollo'
'Build system Apollo':
type: 'github-ci'
provider: 'github:111222333' # example of a provider ID
data:
workflowId: 'demo-ios/deploy'
devWorkflowId: 'demo-ios/build'
'Testrail Apollo':
type: 'testrail'
provider: 'Testrail'
data:
testRunNameKeywords: 'iOS'
project: 'Demo Testrail iOS'
'JIRA Apollo':
type: 'jira'
provider: 'JIRA'
data:
projects: ['Demo', 'Demo-Core']
additionalDoneStatuses: ['Done', 'Deployed', 'Ready to Release']
'Beta testing Apollo':
type: 'apple-beta'
provider: 'Apple App Store'
data:
bundleId: 'com.nasa.apollo'
'Slack Apollo':
type: 'slack'
provider: 'Slack'
data:
primaryChannelIds: ['#apollo-releases']
'Sentry Apollo':
type: 'sentry'
provider: 'Sentry'
data:
orgId: 'NASA'
projectId: 'Apollo iOS'
prodEnvironmentIdentifier: 'production'
betaEnvironmentIdentifier: 'beta'
'Amplitude Apollo':
type: 'amplitude'
provider: 'amplitude'
data:
selectedEventsAndParams:
- eventName: 'add to cart'
- eventName: 'view checkout'
paramName: 'amount'
- eventName: 'view checkout'
paramName: 'itemCount'
'Optimizely Apollo':
provider: 'Optimizely'
data:
projectId: 'Apollo'
environmentId: 'Production'
versionAttributeName: 'app_version'
'PagerDuty Apollo':
type: 'pagerduty-scheduling'
provider: 'PagerDuty'
data:
scheduleId: 'Apollo Release Rotation'
'Crowdin Apollo':
type: 'crowdin'
provider: 'Crowdin'
data:
projectId: 'Apollo'
metadataProjectId: 'Apollo Metadata'
buildDistro:
buckets:
'Release Candidates': # bucket name
type: 'rc' # For available bucket types, see https://api-docs.runway.team/#tag/BucketType
orgWideAccessEnabled: true
notificationsEnabled: true
members:
'Release pilot': 'tester'
'PMs': 'tester'
'EMs': 'admin'
rules:
- branch: 'release-{version}'
type: 'Branch' # can be 'Branch' or 'PR'
workflow: 'build-rc'
fileFilterPatterns:
- '{*}.ipa'
'Development':
type: 'dev'
notificationsEnabled: true
members: # group or user to permission level
'Release pilot': 'tester' # permission level can be 'admin', 'uploader', or 'tester'
'PMs': 'tester'
'QA': 'tester'
'EMs': 'admin'
rules:
- baseBranch: 'main'
type: 'PR'
workflow: 'demo-ios/build'
fileFilterPatterns:
- '{*}.ipa'
appSettings:
defaultReleaseType: 'minor' # can be any non-hotfix type: https://api-docs.runway.team/#tag/ReleaseType
assumeHotfixesArePointReleases: false
versionFiles:
- 'appollo.xcodeproj/project.pbxproj'
- 'appollo/settings.xcconfig'
localizationDirectories:
- 'appollo/resources'
requireFixApprovals: false
enableFixStatusChecks: false # can only be true if requireFixApprovals is true
hideNotRequiredReleaseStepsInTimeline: false
appUsers:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
branchSettings:
'GitHub Apollo': # must match a VCS integration specified in the integrations section
releaseBranchPatterns:
all:
pattern: 'release-{version}'
hotfix:
pattern: 'hotfix-{version}'
workingBranch: main
tagSettings:
tagSettingsMain:
pattern: '{version}'
featureAffiliations:
FA Fix Versions:
integration: 'Jira Apollo' # must match an issue tracking integration ID or alias
type: 'fixVersion'
pattern: '{version}'
appStoreReleaseSettings:
releaseMethod: manual
phasedReleaseEnabled: true
stepGroups: # all steps for the app, arranged in groups
- steps:
- name: Kickoff
archetype: 'kickoff' # type of the step. For valid types, see https://api-docs.runway.team/#tag/ReleaseStepType
releaseTypes: # the release types for this step. Can be 'standard', 'hotfix', or 'rollback'
standard:
required: true # whether this step is required for the given release type
hotfix:
required: true
- name: 'Feature readiness'
archetype: 'featureReadiness'
releaseTypes:
standard:
required: true
hotfix:
required: false
- name: Translations
archetype: 'translations'
releaseTypes:
standard:
required: true
hotfix:
required: false
- name: 'Rollback build'
archetype: 'rollbackBuild' # The special 'rollbackBuild' step is only valid for the 'rollback' release type
releaseTypes:
rollback:
required: true
- steps:
- name: Release candidate
archetype: 'releaseCandidate'
releaseTypes:
standard:
required: true
hotfix:
required: true
- name: Regression testing
archetype: 'regressionTesting'
releaseTypes:
standard:
required: true
hotfix:
required: false
- name: Beta testing
archetype: 'betaTesting'
releaseTypes:
standard:
required: true
hotfix:
required: false
- steps:
- name: Screenshots
archetype: 'screenshots'
releaseTypes:
standard:
required: true
hotfix:
required: false
rollback:
required: true
- name: Metadata
archetype: 'metadata'
releaseTypes:
standard:
required: true
hotfix:
required: false
rollback:
required: true
- steps:
- name: Approvals
archetype: 'approvals'
releaseTypes:
standard:
required: true
hotfix:
required: true
rollback:
required: true
- steps:
- name: Submit
archetype: 'submission'
releaseTypes:
standard:
required: true
hotfix:
required: true
rollback:
required: true
- name: Review
archetype: 'storeReview'
releaseTypes:
standard:
required: true
hotfix:
required: true
rollback:
required: true
- name: Release
archetype: 'takeoff'
releaseTypes:
standard:
required: true
hotfix:
required: true
rollback:
required: true
Last updated
Was this helpful?