# Workflows.PublishRelease

```go
func (workflowClient) PublishRelease(
    ctx context.Context,
    workflowSlug string,
    artifactID uuid.UUID,
    content *workflows.ReleaseContent,
) (*workflows.WorkflowRelease, error)
```

Publish an immutable release for a workflow.

## Parameters

**workflowSlug**

`string`

required: true

The workflow slug.

**artifactID**

`uuid.UUID`

required: true

The ID of the release artifact.

**content**

`*workflows.ReleaseContent`

required: true

The files, task identifiers, runner object path, and optional command override included in the release.

## Returns

The published workflow release, including any clusters where the release is deployed.

```go title="Go"
release, err := client.Workflows.PublishRelease(ctx,
    workflow.Slug,
    artifactID,
    &workflows.ReleaseContent{
        Fingerprint:      fingerprint,
        Tasks:            []workflows.TaskIdentifier{workflows.NewTaskIdentifier("tilebox.com/tasks/ProcessScene", "v1.0")},
        RunnerObjectPath: "worker.runner",
    },
)
```
