O Jenkins não possui uma função nativa para renomear jobs em massa. Quando o número de jobs é elevado fica inviável renomear manualmente.
Solução
Para esse exemplo os nomes atuais dos jobs são:
- techthingscool-core-v1
- techthingscool-core-v2
- techthingscool-core-v3
E será removido ”-core”, ficando:
- techthingscool-v1
- techthingscool-v2
- techthingscool-v3
Abrir Script Console do Jenkins
Jenkins > Manage Jenkins > Script Console
Colar o script abaixo
import hudson.model.*
disableChildren(Hudson.instance.items)
def disableChildren(items) {
for (item in items) {
if (( m = item.name =~ /^(techthingscool)-core-(.*)$/)) {
println("Antigo Nome: " + item.name)
newname = m.group(1) + "-" + m.group(2)
println(" Novo Nome: " + newname)
println("Renomeando...")
item.renameTo(newname)
println("Renomeado!")
}
}
println("Fim!")
}
Foi utilizado um regex para filtrar apenas o jobs que se deseja renomear. O regex está em vermelho no script acima.
Clicar em “Run” e pronto!
Sobre o regex do exemplo acima
^(techthingscool)-core-(.*)$
(techthingscool)
é o grupo 1(.*)
é o grupo 2
Dica
É bom comentar a linha item.renameTo(newname) e rodar o script para checar os jobs que foram capturados pelo regex e os novos nomes.
Referências
https://wiki.jenkins-ci.org/display/JENKINS/Bulk+rename+projects