Getting started¶
To get create a new repository based on this template, click the "Use this template" button on the repository page. This will create a new repository with the same structure and files as this repository.
This repository contains the following components:
- A generic devcontainer setup based on Ubuntu. The devcontainer setup comes with pre-commit installed and configured.
- A template for documentation with Markdown. The documentation site is rendered with Material for MkDocs and deployed to GitHub Pages. There is no dedicated Dockerfile for the docs site.
- Basic GitHub Actions Workflows with checks for linting and building the documentation site and creating releases. The repository comes with semantic-release to create new releases and tags based on the commit messages. This is the only way a release and Git tag should be created. Linter definitions are also included.
- Some more helpful GitHub Actions Workflows for managing issues and pull requests and a basic dependabot configuration.
Things to do when using this template repository¶
- Run
gh repo edit --enable-discussions --enable-issues --enable-projects --enable-wiki=false --visibility=public --accept-visibility-change-consequences
to ensure consistent settings across repositories. - Link the repository to project sommerfeld.io
- Search for
Template Repository
in all files and replace with the name of the new project. Search fortemplate-repository
as well and replace with the name of the GitHub repository (the part of the URL). Doing so should update the following files:- Update volume mounts and workdir in
docker-compose.yml
- Update name and description in
package.json
- Update site and repository information anf (if needed) the theme/colors and navigation in
mkdocs.yml
- Update Docker icon link in
mkdocs.yml
to point to the correct artifact on Docker Hub
- Update volume mounts and workdir in
- Update GitHub deployment protection rules in "Settings > Environments" to allow deployments to GitHub pages from tags (add
v*
). It is possible that a thepipeline.yml
workflow must run (and probably fail) first because this workflow contains a step which enables GitHub Pages for the repository. - Update documentation in
docs
directory- Remove the docs that are intended to explain the template repository. These are the files in the
docs/usage
directory. Replace them with the real usage documentation. - Inspect the
docs/about
directory and update the content to reflect the new project.
- Remove the docs that are intended to explain the template repository. These are the files in the
- Setup Actions secrets and dependabot secrets in the repository settings
- Update GitHub Actions workflows
pipeline.yml
andrelease.yml
to build and deploy Docker images - Add any additional configuration e.g. for SonarCloud or any other relevant config.