# `packages.yml`

The package manifest file `packages.yml` is used to keep track of all installed packages.

Each package section is built up the same way. The parameters are a breakdown of the Boilerplate command to download templates.

For infrastructure in Terraform, the package manifest looks like this:

```yaml title="repo-iac/environments/dev/app-hello-world/packages.yml"
Packages:
  - OutputFolder: .
    Template: app
    Ref: app-v9.17.9
    VarFiles:
      - ../common-config.yml
      - package-config.yml
```

For GitHub Actions, the package manifest contains two packages:

```yaml title="repo-iac/environments/dev/packages.yml"
DefaultPackagePathPrefix: boilerplate/github-actions
Packages:
  - OutputFolder: ../..
    Template: terraform-on-changed-dirs
    Ref: terraform-on-changed-dirs-v2.3.4
    VarFiles:
      - common-config.yml
      - terraform-on-changed-dirs.yml
  - OutputFolder: ../..
    Template: docker-build-push
    Ref: docker-build-push-v2.3.2
    VarFiles:
      - common-config.yml
      - docker-build-push.yml
```

| Parameter    | Description                                                                                                                                                                                                                                                                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OutputFolder | The name of the folder the template is rendered to.                                                                                                                                                                                                                          |
| Template     | The name of the stack template. Used to build the `--template-url` of the Boilerplate download command.                                                                                                                                                                      |
| Ref          | Points to a GitHub release tag in the source template repository (the default repository is [golden-path-boilerplate](https://github.com/oslokommune/golden-path-boilerplate/){:target="_blank"}). In effect, the `ref` parameter is the version of the template to be used. |
| VarFiles     | A list of files containing Boilerplate configuration. Used to build the `--var` part of the Boilerplate download command.                                                                                                                                                    |
