Assets in Releases
This Epic describes creation of Release objects using configuration in the `.gitlab-ci.yml` file, without making curls to the [Releases API](https://docs.gitlab.com/ee/api/releases/index.html).
A new component of `gitlab-ci.yml` configuration is added to a project, and GitLab CI will programmatically perform these tasks:
- Produce assets, such as binaries or packages
- Upload the packages to the GitLab Package Registry
- Create a Release automatically, and attach links to the packages
The asset production and coordinating work will be performed by the GitLab Runner. It will need access to configuration data from GitLab Rails, and be granted the ability to create packages in the GitLab Package Registry.
## Rollout
This feature will be rolled out in two phases:
### Phase 1: Creation of a Release without assets
This is essentially what can be done now via a `curl` against the Release API: creation of a Release without assets.
- Extend `gitlab-ci.yml` to add the `release` node and expose it to the Runner, support the API calls from the Runner to create the Release.
https://gitlab.com/gitlab-org/gitlab/issues/26013 (12.5, missed)
- Extend the Runner to make the API calls to read config and later create the Release. https://gitlab.com/gitlab-org/gitlab/issues/36133 (12.6)
### Phase 2: Attachment of assets
In this phase the assets will be packaged and linked to the Release.
- Modify the GitLab Package Registry to house packages created by this process (issue to be created)
- Upload assets to a Release via the https://gitlab.com/gitlab-org/gitlab/issues/36133
epic