Workflows (Pipelines) - cma-open/cmatools GitHub Wiki

Several automated workflows are used in the project

The progress of the these workflow actions can be viewed here https://github.com/cma-open/cmatools/actions

The workflows are defined in yaml files here https://github.com/cma-open/cmatools/tree/master/.github/workflows

Workflows are automatically triggered by user defined optional triggers and can be used to automate a wide range of regular tasks applicable to the repo, software development and release

A benefit of workflows is that they also can show the current status of the master branch in the repo.
A passing or failing badge is present on the repo main page allowing a "dashboard" view of current status

Several workflows can be applied per repo, and several jobs can be specified per workflow.

Use limits apply for different repo types.

  • Free repos can run a max of 20 concurrent jobs, with each job running for a max of 6 hrs, and a total of 72 hrs per workflow

The following workflows are currently implemented:

docs.yml

  • builds the sphinx documentation pages and will report if any error occur
  • only runs for push and pull requests to master

gh-pages.yml

  • builds the web pages published at the github pages site
  • only runs for push to master

main / python3.7.yml

  • create the conda development environment
  • setup and install the python software from the repo
  • caches the conda environment so it is available from other workflows
  • runs on every push
  • Note this will be slow as the conda env is built each time

unit-tests.yml

  • runs the suite of unit tests
  • runs on every push

integration-tests.yml

  • runs all the integration tests
  • runs on every push

schedule-release.yml

  • runs the release process, tags version, packages artifacts
  • runs every week / month / quarter