Hi Diago,
On many build pipelines i've always had 'management/admin' pipelines which I use for many tasks eg. relational database high availability bootstrapping, backups, installation of compilers, tools, setting up certs,scheduled task installation etc.
It works very well and a very clean solution I can tear down the infrastructure spin up fresh instances and with the autoregistration.properties you bootstrap agent into and environment and assign jobs by specifying resources in the properties file when the agent comes online it automatically picks up configuration jobs.
The only problem is that its not a scalable solution also not what all the cool kids are using lately. The other problem you would be faced with is the Go server can only handle 'so many' agent on its grid before it runs out of steam, I'm however not sure of the exact max numbers tho.
I would say be as creative as you can when using Go. You could use it to configure/manage a director host for example to run ansible or salt stack for environment configuration that way you version control your configuration and software you use to manage your infrastructure.
As for empty materials, for the very least you would need a tools and build folder as part of your upstream dependency to every build pipeline and try not to run adhoc cmd scripts from go. Instead create build scripts version them and your tools folder. Create jobs that execute build targets, use macro definitions that way you can re-use commands with variable input.
Regards,
Rustin