Skip to content

calmette54/BazelStarterTemplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

68 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Stater Template for Bazel projects

Overview

The current starter template uses the following programs:

  • Build system:
    • Bazel: Build and test software of any size, quickly and reliably.
  • Continouos integration (CI):
    • GitHub Actions: automate your CI/CD workflows (e.g. build, test, deploy).
  • Development enviroment
    • devenv: Declaratively define your development environment by toggling basic options.
    • pre-commit: Git hook scripts are useful for identifying simple issues before submission to code review.
    • clang-format: C/C++ formatter.
    • clang-tidy: C/C++ linter.
  • Documentation:
    • doxygen: It automates the generation of documentation from source code comments, parsing information about classes, functions, and variables to produce output in formats like HTML and PDF
  • Version Control tools:
    • Git: distributed version control system (VCS) that tracks versions of files.
    • Commitizen: enforces a standarized set of rules to write commits (conventional commits by default)
    • Release-please: automates CHANGELOG generation, the creation of GitHub releases, and version bumps for your projects.

How-to-use

Caution

You are expected to install devenv in order to start working with this repository.

  1. Change directory into the repository

  2. Enter the development environment devenv shell

  3. Develop your code and build using Bazel

  4. Commit your changes using cz commit

Important

Use cz commit instead of git commit (this way you'll have some hints to write your commit message).

Note

Committing will trigger the pre-commit hooks:

  • Formatting (i.e. clang-format)
  1. Push your changes

Note

Pushing will trigger the GitHub Actions:

  • CI (i.e. building, testing, style conventions, linting, documentation).
  1. After pushing your changes to the remote, an automatic pull request (i.e. release PR) will show up. Whenever you decide to merge it an automatic release of your project will be created, a CHANGELOG file will be generated and the documentation will be published to github pages.

Setup the development environment

This project uses devenv to declaratively define the development environment.

# In your host shell: change directory to the location of this project
devenv shell

Acknowledgments

This is heavily influenced by ModernCppStarter.

Packages

 
 
 

Contributors 2

  •  
  •