Skip to content

Working Directories

By default, tasks run in the directory where luca run was invoked. You can override this at the pipeline level, the task level, or both.

Pipeline-Level Working Directory

Sets the default working directory for all tasks in the pipeline:

yaml
working-directory: ios/

tasks:
  - name: Generate
    command: tuist generate   # Runs in ios/

  - name: Build
    command: xcodebuild build  # Also runs in ios/

Task-Level Working Directory

Overrides the pipeline-level setting for a single task:

yaml
working-directory: ios/

tasks:
  - name: Install tools
    command: luca install
    working-directory: .   # Runs in the invocation directory, not ios/

  - name: Generate
    command: tuist generate  # Runs in ios/

Relative Path Resolution

All relative paths are resolved against the directory where luca run was invoked — not against the pipeline file's location.

Given a project layout:

my-project/
├── pipelines/
│   └── ci.yml        # working-directory: ios/
├── ios/
└── backend/

Running luca run ci from my-project/ resolves ios/ to my-project/ios/.

Absolute Paths

Absolute paths are also accepted:

yaml
working-directory: /tmp/build

Released under the Apache 2.0 License.