|
| 1 | +This is a .NET based repository containing recipes for the Cake Build Automation System bundling individual Cake Issues addins. |
| 2 | +The individual recipes are published as NuGet packages. |
| 3 | + |
| 4 | +See https://cakeissues.net/ for documentation and more information about Cake Issues. |
| 5 | + |
| 6 | +Follow these guidelines when contributing: |
| 7 | + |
| 8 | +## Before committing code |
| 9 | +- Ensure no warning or error messages from Roslyn analyzers are present in the code. |
| 10 | +- Ensure Unit Tests are passing. |
| 11 | +- Ensure Integration Tests are passing. |
| 12 | + |
| 13 | +## Development Flow |
| 14 | +- Only building: `build.sh --target=DotNetCore-Build` |
| 15 | +- Publish NuGet Packages: `build.sh --target=Create-NuGet-Packages` |
| 16 | +- Run Unit Tests: `build.sh --target=Test` |
| 17 | +- Run Integration Tests: |
| 18 | + - Run first `build.sh --target=Create-NuGet-Packages` in the root directory to create the NuGet packages. |
| 19 | + - Run `build.sh` in the `tests/<RECIPE-NAME>/<TEST>` directory to run the integration tests for the corresponding recipe |
| 20 | +- Full CI check: `build.sh` (includes build, publish, test) |
| 21 | + |
| 22 | +To have verbose output of build.sh the following parameter can be add `--verbosity=diagnostic` |
| 23 | + |
| 24 | +## Repository Structure |
| 25 | +- `Cake.Frosting.Issues.Recipe`: Contains the source code for the recipe for use with Cake Frosting |
| 26 | +- `Cake.Issues.Recipe`: Contains the source code for the recipe for use with Cake Scripting |
| 27 | +- `nuspec/nuget`: Contains the NuGet specification files for the Cake Scripting addin |
| 28 | +- `tests`: Contains integration tests for the recipes |
| 29 | +- `.github/workflows`: Contains GitHub Actions workflows for CI/CD which need to be maintained |
| 30 | +- `.azuredevops/pipelines/templates`: Contains Azure Pipelines templates which need to be maintained. The main file is `azure-pipelines.yml` in the root directory. |
| 31 | + |
| 32 | +## Key Guidelines |
| 33 | +1. Maintain existing code structure and organization |
| 34 | +2. Write unit tests for new functionality. |
| 35 | +3. Write integration tests for new functionality which can't be tested with unit tests. |
0 commit comments