Skip to content

Configuration

Piotr Sękara edited this page Jan 22, 2020 · 6 revisions

Highway is using YAML file for configuration. You'll need to create Highwayfile.yml in your project's root directory.

Highwayfile

Example

# Highway configuration file version.
version: 1

# Variables available for presets.
variables:
    default:
        XCODEBUILD_SCHEME: Development
        XCODEBUILD_PROJECT: ./Project.xcworkspace
    staging:
        XCODEBUILD_SCHEME: Staging
    release:
        XCODEBUILD_SCHEME: Production

# Bootstrap stage.
bootstrap:
    default:
        - carthage:
            command: "bootstrap"
            platforms:
                - ios
        - sh:
            command: "cp .env.sample .env"
        - cocoapods:
            command: "install"

# Test stage.
test:
    default:
        - xcode_test:
            project: $(XCODEBUILD_PROJECT)
            scheme: $(XCODEBUILD_SCHEME)

# Deploy stage.
deploy:
    staging:
        - xcode_archive:
            project: $(XCODEBUILD_PROJECT)
            scheme: $(XCODEBUILD_SCHEME)
            method: "enterprise"
        - appcenter:
            api_token: $(ENV:APPCENTER_API_TOKEN)
            owner_name: $(ENV:APPCENTER_ORG_NAME)
            app_name: $(ENV:APPCENTER_APP_NAME)
            distribution_group: $(ENV:APPCENTER_DISTRIBUTION_GROUP)
            notify: false

# Report stage.
report:
  default:
    - copy_artifacts:
        path: $(ENV:BITRISE_DEPLOY_DIR)
    - slack:
        webhook: $(ENV:SLACK_WEBHOOK_URL)
        channel: "#notify-project-xd"

First of all you'll need to define version of configuration that you'll be using by key version. Then you can define different stages available in given configuration. Every configuration can have many stages. You can read more about that in Highwayfile versions.

Clone this wiki locally