Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Capture Wrangler command output in structured format
description: New environment variables allow CI/CD pipelines to programmatically access deployment information
products:
- workers
date: 2025-11-03
---

You can now capture Wrangler command output in a structured [ND-JSON](https://github.com/ndjson/ndjson-spec) format by setting the [`WRANGLER_OUTPUT_FILE_PATH`](/workers/wrangler/system-environment-variables/#supported-environment-variables) or [`WRANGLER_OUTPUT_FILE_DIRECTORY`](/workers/wrangler/system-environment-variables/#supported-environment-variables) environment variables. This feature is particularly useful for CI/CD pipelines and automation tools that need programmatic access to deployment information such as worker names, version IDs, deployment URLs, and error details. Commands that support this feature include [`wrangler deploy`](/workers/wrangler/commands/#deploy), [`wrangler versions upload`](/workers/wrangler/commands/#versions), [`wrangler versions deploy`](/workers/wrangler/commands/#versions), and [`wrangler pages deploy`](/workers/wrangler/commands/#deploy-1).
12 changes: 12 additions & 0 deletions src/content/docs/workers/wrangler/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,10 @@ None of the options for this command are required. Also, many can be set in your

<Render file="wrangler-commands/global-flags" product="workers" />

### Capturing deployment output

When you deploy a Worker, you can capture deployment information in a structured format by setting the [`WRANGLER_OUTPUT_FILE_PATH`](/workers/wrangler/system-environment-variables/#supported-environment-variables) or [`WRANGLER_OUTPUT_FILE_DIRECTORY`](/workers/wrangler/system-environment-variables/#supported-environment-variables) environment variables. This writes deployment metadata (including worker name, version ID, and deployment URLs) to a file in [ND-JSON](https://github.com/ndjson/ndjson-spec) format, which is useful for CI/CD pipelines and automation tools.

---

## `delete`
Expand Down Expand Up @@ -1097,6 +1101,10 @@ Your site is deployed to `<PROJECT_NAME>.pages.dev`. If you do not provide the `

:::

#### Capturing deployment output

When you deploy a Pages project, you can capture deployment information in a structured format by setting the [`WRANGLER_OUTPUT_FILE_PATH`](/workers/wrangler/system-environment-variables/#supported-environment-variables) or [`WRANGLER_OUTPUT_FILE_DIRECTORY`](/workers/wrangler/system-environment-variables/#supported-environment-variables) environment variables. This writes deployment metadata (including project name, deployment ID, and deployment URL) to a file in [ND-JSON](https://github.com/ndjson/ndjson-spec) format, which is useful for CI/CD pipelines and automation tools.

### `secret put`

Create or update a secret for a Pages project.
Expand Down Expand Up @@ -1323,6 +1331,10 @@ description="Retrieve details for the 10 most recent versions. Details include `

/>

### Capturing version output

When you upload or deploy a version, you can capture version information in a structured format by setting the [`WRANGLER_OUTPUT_FILE_PATH`](/workers/wrangler/system-environment-variables/#supported-environment-variables) or [`WRANGLER_OUTPUT_FILE_DIRECTORY`](/workers/wrangler/system-environment-variables/#supported-environment-variables) environment variables. This writes version metadata (including worker name, version ID, and preview URLs for uploads, or deployment information for deploys) to a file in [ND-JSON](https://github.com/ndjson/ndjson-spec) format, which is useful for CI/CD pipelines and automation tools.

### `secret put`

Create or replace a secret for a Worker. Creates a new [version](/workers/configuration/versions-and-deployments/#versions) with modified secrets without [deploying](/workers/configuration/versions-and-deployments/#deployments) the Worker.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,32 @@ Wrangler supports the following environment variables:

* `WRANGLER_R2_SQL_AUTH_TOKEN` <Type text="string" /> <MetaInfo text="optional" />
- API token used for executing queries with [R2 SQL](/r2-sql).

- `WRANGLER_OUTPUT_FILE_PATH` <Type text="string" /> <MetaInfo text="optional" />

- Specifies a file path where Wrangler will write output data in [ND-JSON](https://github.com/ndjson/ndjson-spec) (newline-delimited JSON) format. Each line in the file is a separate JSON object containing information about Wrangler operations such as deployments, version uploads, and errors. This is useful for CI/CD pipelines and automation tools that need to programmatically access deployment information. If both `WRANGLER_OUTPUT_FILE_PATH` and `WRANGLER_OUTPUT_FILE_DIRECTORY` are set, `WRANGLER_OUTPUT_FILE_PATH` takes precedence.

- `WRANGLER_OUTPUT_FILE_DIRECTORY` <Type text="string" /> <MetaInfo text="optional" />

- Specifies a directory where Wrangler will create a randomly-named file (format: `wrangler-output-<timestamp>-<random>.json`) to write output data in [ND-JSON](https://github.com/ndjson/ndjson-spec) format. This is useful when you want to keep output files organized in a specific directory but don't need to control the exact filename. If both `WRANGLER_OUTPUT_FILE_PATH` and `WRANGLER_OUTPUT_FILE_DIRECTORY` are set, `WRANGLER_OUTPUT_FILE_PATH` takes precedence.

### Example output file

When these environment variables are set, Wrangler writes one JSON object per line to the output file. Each entry includes a `timestamp` field and a `type` field indicating the kind of operation. Here's an example of what the file might contain after running `wrangler deploy`:

```json
{"type":"wrangler-session","version":1,"wrangler_version":"3.78.0","command_line_args":["deploy"],"log_file_path":"/path/to/logs/wrangler-2024-11-03_12-00-00_abc.log","timestamp":"2024-11-03T12:00:00.000Z"}
{"type":"deploy","version":1,"worker_name":"my-worker","worker_tag":"abc123def456","version_id":"v1-abc123","targets":["https://my-worker.example.workers.dev"],"worker_name_overridden":false,"wrangler_environment":"production","timestamp":"2024-11-03T12:00:05.000Z"}
```

The `wrangler-session` entry is written when Wrangler starts and contains information about the command being run. The `deploy` entry is written when a deployment completes successfully and includes the worker name, version ID, and deployment URLs.

Other entry types include:
- `version-upload` - Written by `wrangler versions upload` with version ID and preview URLs
- `version-deploy` - Written by `wrangler versions deploy` with deployment information
- `pages-deploy` - Written by `wrangler pages deploy` with Pages deployment details
- `command-failed` - Written when a command fails, including error code and message

## Example `.env` file

The following is an example `.env` file:
Expand Down
Loading