Skip to content

GitHub Actions

Our GitHub actions Continuous Integration (CI) pipeline serves to ensure each branch and pull request conforms to our testing and style requirements. Due to the requirement of all stages on the built PROCESS artefacts and Docker image, all of our CI can currently be found in one workflow file: process.yml. A summary of each job within this workflow can be found below:

Name Functionality
docker Checks if the process-ci Docker container is up-to-date and builds it if not. Only runs on the main branch.
make-py38 Builds and archives the PROCESS build artefacts
unit-py38 Installs PROCESS and runs the unit tests. The job will fail if any of the unit tests fail.
integration-py38 Installs PROCESS and runs the integration tests. The job will fail if any of the integration tests fail.
regression-py38 Installs PROCESS and runs the regression tests with a 0% and 5% tolerance, respectively. The job will fail if any of the regression tests fail.
large-tokamak-py38 Installs PROCESS and runs the large-tokamak input file, archiving the output MFILE. Only runs on the main branch.
flake8 Runs the flake8 Python linter and fails if any lint errors occur.
black Runs the black Python formatter and fails if any formatting issues are detected.
tracking Collects MFILEs for input files of interest and creates a dashboard of changes in key values over time (one datapoint for each commit on main).
docs Builds and deploys the documentation onto GitHub pages.