---
name: "glab-ci-run"
section: "1"
platform: "linux"
package: "glab"
version: "1.126.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/glab-ci-run"
---

# glab-ci-run(1)

Create a new CI/CD pipeline.

## NAME

glab-ci-run - Create a new CI/CD pipeline.

## SYNOPSIS

**glab ci run \[flags\]**

## DESCRIPTION

Use **--branch** to specify a branch or reference. Defaults to the current branch.

The variable flags (**--variables**, **--variables-env**, **--variables-file**, **--variables-from**) cannot be used with **--mr**. If both are used, the command fails.

Specify one or more pipeline inputs using the **-i** or **--input** flag for each input. Each input flag uses the format **key:value**.

The values are typed and will default to **string** unless a type is explicitly specified. To specify a type, use the **type(value)** syntax. For example, **key:string(value)** will pass the string **value** as the input.

Valid types are:

- •

  **string**: A string value. This is the default type. For example, **key:string(value)**.

- •

  **int**: An integer value. For example, **key:int(42)**.

- •

  **float**: A floating-point value. For example, **key:float(3.14)**.

- •

  **bool**: A boolean value. For example, **key:bool(true)**.

- •

  **array**: An array of strings. For example, **key:array(foo,bar)**.

An array of strings can be specified with a trailing comma. For example, **key:array(foo,bar,)** will pass the array **\[foo, bar\]**. **array()** specifies an empty array. To pass an array with the empty string, use **array(,)**.

Value arguments containing parentheses should be escaped from the shell with quotes. For example, **--input key:array(foo,bar)** should be written as **--input 'key:array(foo,bar)'**.

## OPTIONS

**-b**, **--branch**=""\
 	Create pipeline on branch or reference .

**-i**, **--input**=\[\]\
 	Pass inputs to pipeline in format ':'. Cannot be used for merge request pipelines. See documentation for examples.

**--mr**\[=false\]\
 	Run merge request pipeline instead of branch pipeline.

**--variables**=\[\]\
 	Pass variables to the pipeline in the format :. Cannot be used for MR pipelines.

**--variables-env**=\[\]\
 	Pass variables to the pipeline in the format :. Cannot be used for MR pipelines.

**--variables-file**=\[\]\
 	Pass file contents as a file variable to the pipeline in the format :. Cannot be used for MR pipelines.

**-f**, **--variables-from**=""\
 	JSON file with variables for pipeline execution. Expects array of hashes, each with at least 'key' and 'value'. Cannot be used for MR pipelines.

**-w**, **--web**\[=false\]\
 	Open pipeline in a browser. Uses default browser, or browser specified in BROWSER environment variable.

## OPTIONS INHERITED FROM PARENT COMMANDS

**-h**, **--help**\[=false\]\
 	Show help for this command.

**-R**, **--repo**=""\
 	Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.

## EXAMPLE

```
glab ci run
glab ci run --variables \"key1:value,with,comma\"
glab ci run -b main
glab ci run --web
glab ci run --mr
# Specify CI variables
glab ci run -b main --variables-env key1:val1
glab ci run -b main --variables-env key1:val1,key2:val2
glab ci run -b main --variables-env key1:val1 --variables-env key2:val2
glab ci run -b main --variables-file MYKEY:file1 --variables KEY2:some_value
# Specify CI inputs
glab ci run -b main --input key1:val1 --input key2:val2
glab ci run -b main --input "replicas:int(3)" --input "debug:bool(false)" --input "regions:array(us-east,eu-west)"
# Load variables from JSON file
# Create variables.json with this format:
# [
#   {
#     "key": "CI_PIPELINE_SOURCE",
#     "value": "web",
#     "variable_type": "env_var"
#   },
#   {
#     "key": "DEPLOY_ENV",
#     "value": "production"
#   }
# ]
glab ci run -b main --variables-from variables.json
```

## SEE ALSO

**[glab-ci(1)](/glab-ci/1.md)**
