Release Retention

Job ID: 31699248

Budget: $30 – $250 AUD

Your task is to implement a Release Retention rule which determines which releases to keep. Given a set of projects, environments, releases and deployments: determine the releases that should be kept.

The Release Retention rule:

> Projects can have zero or more releases, which can be released to an environment by creating a deployment. A release can have zero or more deployments for a project and environment.

> For each project/environment combination, keep n releases that have most recently been deployed, where n is the number of releases to keep. Note: A release is considered to have "been deployed" if the release has one or more deployments.

Using .NET Core and xUnit or NUnit, implement the Release Retention rule. Your implementation should:

- Be a reusable and testable component
- Have tests, as you would for production code
- Not have a UI, CLI, or database
- Take the number of releases to keep as a parameter
- Return the releases that should be kept
- Log why a release should be kept
Related categories: Software Testing .NET Core