Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continuous integration and automated unit tests #11

Open
mdbartos opened this issue May 27, 2017 · 0 comments
Open

Continuous integration and automated unit tests #11

mdbartos opened this issue May 27, 2017 · 0 comments

Comments

@mdbartos
Copy link
Member

It should be possible to set up continuous integration/automated unit tests for any pushes to the repo. Here's my idea:

  • Write a series of unit tests on the firmware.
  • Set up a testing server with an attached PSoC and a Flask app that handles incoming and outgoing requests.
  • Set up a webhook that sends a payload to the Flask app when a push on the repo is initialized.
  • On receiving the payload, have the Flask app download the corresponding .cyacd file corresponding to the push.
  • Use cyflash or a similar utility to flash the .cyacd file to an attached PSoC over serial.
  • Run the unit tests on the PSoC (let's assume that the tests write to an influxdb database).
  • Use Kapacitor to capture the database writes and send the result back to the Flask app
  • Evaluate which tests have passed (e.g. maxbotix_depth must be within range 0-9998, etc.).

I'm not sure how Travis CI does it, but we could also display the results of the test on any pending pull requests in order to ensure that incoming pull requests won't break the master branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant