As a team we have many scripts for doing various internal tasks - domain-specific things, checks for questions like "what's in prod?" and "how far along is this commit?", etc. ad nauseam.
The problem is that, with a few exceptions, the person who wrote the script knows it exists and how to use it; and might be around to chime-up with "hey, I wrote a script for that!" when someone has a problem.
But discoverability is hard, even if they're in the repo not everyone will have seen or reviewed the PR that added them.
Does anyone have some good tips to share on how to (or not to) organise such scripts or tools, and allow colleagues to better discover them?
- The Jenkins job can have a friendly name, a description, a link to wiki article explaining how it works, and default inputs.
- Troubleshooting wiki articles also link back to the job (_"Getting this error? Try running this job"_)
- We don't need to worry about people having prerequisites on their machines (assuming they are installed on the Jenkins runner). They shouldn't even need to understand the language the script is written in, or how it works.
- You've got the opportunity to integrate and chain jobs together, or trigger them based on events.
- Pretty much everyone knows how to create and run Jenkins jobs
Of course having solved one problem (discoverability and organisation of scripts) you now have another one: Jenkins.