# Workflows

They are configured so that they can be triggered manually. See `trigger.sh`.

Do not edit these files directly. The code is autogenerated; see the sibling directory `workflows_templates`. (That's also why some of the code in them looks pretty horrifically complicated.)

Current actions:
* `build.yml`: When a pull request is opened, reopened, or synchronized, this will run to compile and test the source in the request. As it requires a pull request this Workflow cannot be triggered manually.
* `deploy.yml`: When a pull request is accepted, this will run to compile the source, push it to PyPI, and then download the version that has been pushed to PyPI, and test it.
* `test_deployed.yml`: Tests the currently deployed (i.e. on PyPI) code. This Workflow can only be triggered manually; it never runs automatically.
* `log_dispatch.yml`: Logs information about every manual trigger of a Workflow. Will be run every time any Workflow is manually triggered, or it can be specifically run itself.

Note that due to technical limitations, when a Workflow is manually triggered then in fact every Workflow will be started - but only the specified Workflow will actually do anything, the others will all be no-ops.