daft-engineers / vocoder

Open source vocoder designed for the Raspberry Pi.
https://daft-engineers.github.io/vocoder/
Mozilla Public License 2.0
9 stars 0 forks source link

Continuous Integration #26

Closed MarkAHarley closed 1 year ago

MarkAHarley commented 1 year ago

As a developer, I want to have builds, tests, code analysis, and documentation run automatically so that I can be confident in my and other developers code.

Carried out by Matthew and Angus

Steps:

  1. Investigate how github CI works (done)
  2. Determine how to set up local runner (done)
  3. Set up user on pi to host runner (done)

Result: GitHub has runners much like Gitlab, which can run on a local device and then connect to github to retrieve jobs. This means they can run on our local network with no additional configuration required.

Security consideration: GitHub recommends only allowing self hosted runners on private repositories, because malicious users can create pull requests to run arbitrary code on your runner. This requires careful sandboxing if allowed for the public.

Should investigate possibility of only running CI for jobs created by us

Configured runner on pi-server and successfully connected it to repository. Not tested how the actions are configured.

Next steps:

  1. Choose a unit test framework. GoogleTest or Boost?
  2. Choose a documentation framework. Doxygen?
  3. Decide if we are running tests in docker
  4. Set up development environment on pi
  5. Set up C++ project code
  6. Write first unit test
MHCooke commented 1 year ago

Things to do before merging:

If clang-format raises error on a dry run that should block merging Same for clang-tidy