---
title: "Template Files"
weight: 70
---

{{< g_featpro >}}

Template Files allow you to create custom files and/or scripts using
GoReleaser's internal state and template variables, for example, an installer
script.

All the templated files are uploaded to the release by default.

```yaml {filename=".goreleaser.yaml"}
template_files:
  - # ID of this particular file.
    #
    # Default: 'default'.
    id: default

    # Source path of the template file.
    # Ignored if empty.
    #
    # Templates: allowed.
    src: foo.tpl.sh

    # Destination path of the file.
    # Will be prefixed with the `dist` directory.
    # Ignored if empty.
    #
    # Templates: allowed.
    dst: foo.sh

    # File mode.
    #
    # Default: 0644.
    mode: 0755
```

{{< g_templates >}}
