From fda2c9a7234c4b8dec5b266105bc60dd2a0256b9 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 19 Jan 2026 10:10:57 +0000 Subject: [PATCH] add some docs on github actions for CI --- doc/processes/continuous_integration/GHA_vs_Jenkins.md | 8 ++++++++ .../continuous_integration/reusable_workflows.md | 8 ++++++++ doc/system_components/python/Python-conventions.md | 4 +++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 doc/processes/continuous_integration/GHA_vs_Jenkins.md create mode 100644 doc/processes/continuous_integration/reusable_workflows.md diff --git a/doc/processes/continuous_integration/GHA_vs_Jenkins.md b/doc/processes/continuous_integration/GHA_vs_Jenkins.md new file mode 100644 index 000000000..8914ad87f --- /dev/null +++ b/doc/processes/continuous_integration/GHA_vs_Jenkins.md @@ -0,0 +1,8 @@ +# Github Actions versus Jenkins + +We have chosen to use Github actions where possible moving forwards to run CI workflows. + +This is because it tends to be very reliable and reduces system administration overhead as we no longer need to keep build servers running, patched and so on. + +For jobs that are long-running or resource intensive, such as building the EPICS top tree, we will continue to run these on Jenkins. Otherwise, the remaining jobs are still on Jenkins due to dependency management issues (ie. they rely on a site-hosted `P2` site). + diff --git a/doc/processes/continuous_integration/reusable_workflows.md b/doc/processes/continuous_integration/reusable_workflows.md new file mode 100644 index 000000000..08255fb21 --- /dev/null +++ b/doc/processes/continuous_integration/reusable_workflows.md @@ -0,0 +1,8 @@ +{#reusable_workflows} +# reusable workflows + +As we have standardised on linting and testing frameworks, many of our repositories would likely just have copy-pasted github actions workflows. + +To avoid this duplication, we have a [repository](https://github.com/ISISComputingGroup/reusable-workflows) for reusable workflows. When starting a new project you should consider using these first before writing your own repository-specific workflows. + +More information can be found on the [official Github docs](https://docs.github.com/en/actions/how-tos/reuse-automations/reuse-workflows). diff --git a/doc/system_components/python/Python-conventions.md b/doc/system_components/python/Python-conventions.md index 0e1673825..c400d7084 100644 --- a/doc/system_components/python/Python-conventions.md +++ b/doc/system_components/python/Python-conventions.md @@ -222,4 +222,6 @@ AVOID combining strings with '\\', '\\\\' or '/' For new repos containing python you should add the following [workflow](https://github.com/ISISComputingGroup/reusable-workflows/blob/main/.github/workflows/linters.yml) to ensure standards compliance. -An example of how to call this workflow is [here](https://github.com/ISISComputingGroup/EPICS-inst_servers/blob/master/.github/workflows/linter.yml), you may need to adjust `master` vs `main` depending on which branch your repository uses as it's primary branch (should be `main` for new repos usually). \ No newline at end of file +An example of how to call this workflow is [here](https://github.com/ISISComputingGroup/EPICS-inst_servers/blob/master/.github/workflows/linter.yml), you may need to adjust `master` vs `main` depending on which branch your repository uses as it's primary branch (should be `main` for new repos usually). + +For more information see {ref}`reusable_workflows`.