jmbreda / Sanity

Filtering of Poison noise on a single-cell RNA-seq UMI count matrix
GNU General Public License v3.0
65 stars 11 forks source link

ci: add automated testing mechanism #12

Open AngryMaciek opened 2 years ago

AngryMaciek commented 2 years ago

This is a follow-up on #11 :

Since Sanity is a public repo unlimited minutes of GitHub Actions for CI/CD are available! It would be cool to set up a simple Actions workflow which would trigger a testrun with every commit being pushed or every merge request being issued

You can take a look at an example CI/CD workflow at our zarp workflow from the hackathons: https://github.com/zavolanlab/zarp/blob/dev/.github/workflows/ci.yml (however, this example is based on running tests with conda envs, so do not follow it too strictly).

It's reather simple: you just need to create a proper YAML file with instruction that will be executed by GitHub internal runners. The CI workflow here should first run the test commands on the small test data (the same commands as mentioned in the README) and later compare the test output to the fixed expected output files.

Since the installtion is not trivial (especially for macOS) it would be rather beneficial to run the test commands on both Linux and macOS platforms (easily available through Actions); this would explicity present to anyone that the installation setup from the README works fine.