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