Skip to content

cake-contrib/Cake.Issues.Website

Repository files navigation

Cake Issues Addin Website

This is the website for the Cake.Issues addins. It's a static site generated by Wyam and available at cakeissues.net.

Contributing

Any contributions are appreciated, no matter how big or small. The Cake Issues site consists of several different sections and each one is described below.

Documentation

The basic documentation pages can be found under ./input/docs. The directory structure mirrors what's on the site. Most pages are written in Markdown. To add a new page, just add a new file.

Addins

All addins are specified in individual YAML files under ./addins. Adding an addin here will trigger downloading its NuGet Package during site generation and will include it in the "Addins" section of the website.

The format of an addin file generally looks like:

Name: Team Foundation Server (TFS) & Azure DevOps Support
NuGet: Cake.Issues.PullRequests.Tfs
Prerelease: true
RepositoryOwner: cake-contrib
RepositoryName: Cake.Issues.PullRequests.Tfs
RepositoryDocumentationPath: ./docs
DocumentationLink: /docs/pull-request-systems/tfs
ReleaseNotesFilePath: "input/docs/pull-request-systems/tfs/release-notes.md"
Assemblies:
- "/**/Cake.Issues.PullRequests.Tfs.dll"
Author: BBT Software AG
Description: "Support for writing issues as comments to Team Foundation Server or Azure DevOps pull requests."
Categories:
- Pull Request System

The properties have the following meaning:

Property Description
Name Name of the addin which will be shown in the addin list.
NuGet Name of the NuGet package.
Prerelease Controls whether NuGet will attempt to download a prerelease version of the package when generating the site. can be omitted for non-prerelease packages.
RepositoryOwner GitHub organization of the source code repository.
RepositoryName Name of the GitHub repository which contains the source code of the repository.
RepositoryDocumentationPath Optional path of documentation inside the addin repository which should be added to the website. The content of this directory in will be copied from the addin repository to the path defined in DocumentationLink.
DocumentationLink Path to the documentation relative to the website root.
ReleaseNotesFilePath Path where release notes from the addin repository should be stored.
Assemblies List of assemblies from the Addin NuGet package which should be added to API documentation.
Author Author of the addin which will be shown in the addin list.
Description Description of the addin which will be shown in the addin list.
Categories List of categories in which the addin should be added in the addin list.

Building

The site is built using Cake (of course!). There are a number of different targets depending on what you're working on and how complete you want the generated site to be.

build -target GetAddinDocumentation will download documentation from addin repositories for all specified addins.

build -target GetAddinPackages will download new NuGet packages for all specified addins. These packages are used to create the "Addins" section.

build -target GetReleaseNotes will download release notes from addin source repositories.

build -target GetArtifacts will download documentation, NuGet packages and release notes for all specified addins.

build -target Build will run a complete build, downloading addin NuGet packages, documentation and release notes. Note that due to the number of addins and the complexity of generating complete API documentation, the site generation may take a while.

build -target Preview will run a build but will not download NuGet packages, documentation or release notes. This lets you shorten the build cycle by avoiding the time to obtain those resources if you've already downloaded them, or to bypass them altogether if you're just working on something like general documentation pages. This target will also launch a preview server to look at the generated site from a local web browser. The URL of the generated preview site is http://localhost:5080/.

Deployment

The site is deployed for every release tagged on the master branch. Release numbering is in sync with numbering of the core Cake.Issues addins.