Skip to content

Continuous Integration

glitch edited this page Aug 31, 2021 · 2 revisions

Github has a simple definition here

Automatically build and test your code as you push it upstream, preventing bugs from being deployed to production.

Arkouda Continuous Integration

Arkouda uses Github actions to implement continuous integration and Github has a pretty handy article on various capabilities located here.

In the Arkouda repository the main CI workflow is under .github/workflows/CI.yml which contains a number of actions and checks to verify the software builds, passes tests, and has some rudimentary styling enforced.

Enabling CI actions on your fork

If you have a fork of the Arkouda repository you can enable the main CI workflows on your fork by clicking on the settings tab (below your repo and forked from section you should see the tabs named Code Pull Requests ... Settings). Once in the Settings tab the Left-hand Pane has an Actions button/selection where you can enable and configure basic Actions on your Arkouda fork.

You will need to enable actions and set the other permissions. Once set all workflows under the .github/workflows directory are eligible to be run.

Note on gh-pages.yml workflow

The gh-pages.yml workflow will also be automatically run as part of the github Actions triggers, however we have configured this workflow to only complete actions when run on the original Bears-R-Us/arkouda repository. What this means to you: Even though you will see the action trigger and run the docs job will be skipped; it is essentially a no-op.

What's in the CI workflow?

Arkouda has a number of checks/jobs which will be run as part of the CI workflow. For the most accurate listing please look at the contents of the CI.yml file itself. To give you a general idea

  • Chapel-based server code will be built
  • Chapel-based unit tests will be compiled, run, and expected output assessed
  • Python based tests (both unit & functional end-to-end tests) will be run
  • mypy type checking will be performed on the python client code (You can run this yourself via make mypy)
  • Documentation will be built
  • Very rudimentary linting will check the Chapel source code for tabs

See Also

  • Please see the Unit Testing wiki page for more details on the various types of tests and how to run them locally
  • Please see the .github/workflow/ files to see details on the various jobs and configuration used to run the automated checks/tests.