Skip to content

Instantly share code, notes, and snippets.

View wrossmck's full-sized avatar
🦊

Ross McKinley wrossmck

🦊
View GitHub Profile
@wrossmck
wrossmck / getJenkinsUsage.groovy
Last active February 9, 2021 20:50
add queue length
def busyExecutors = Jenkins.instance.computers
.collect {
c -> c.executors.findAll { it.isBusy() }
}
.flatten() // reminder: transforms list(list(executor)) into list(executor)
active = 0
busy = 0
offline = 0
agents = 0
@wrossmck
wrossmck / reset.sh
Last active May 20, 2019 09:30
reset all git repos to origin/master
cpwd=$(pwd); for f in $(ls -d */); do cd $cpwd/$f && echo `pwd` && git reset --hard origin/master && cd .. ; done
@wrossmck
wrossmck / disk-expand.sh
Created April 3, 2019 09:46
expand centos7 disk
sudo su
echo 1 > /sys/block/sda/device/rescan
fdisk /dev/sda
p
n
p
@wrossmck
wrossmck / cancel-builds.groovy
Created October 9, 2018 18:30
cancel all builds in queue called
// cancel all builds in queue called
import hudson.model.*
def q = Jenkins.instance.queue
q.items.each {
println (it)
if (it =~ /my.job.to.kill/) {
q.cancel(it.task)
}
@wrossmck
wrossmck / promote-all-plugins.groovy
Created October 9, 2018 18:29
promote all plugins available on jenkins update center (CJOC)
// promote all update center plugins
import com.cloudbees.plugins.updatecenter.PluginData
// Example of an update center "myUpdateCenter" at root level, could be parameter to this job
def updateCenterFullName = "myUpdateCenter"
jenkins.model.Jenkins.instance.getItemByFullName("${updateCenterFullName}").getPluginsData().each { PluginData pluginData ->
if(pluginData.getVersions() != null && !pluginData.getVersions().isEmpty()) {
println "Promoting '${pluginData.getName()}' to version '${pluginData.getVersions().lastKey()}'"
pluginData.setPromotedVersion("${pluginData.getVersions().lastKey()}")
@wrossmck
wrossmck / get-plugins.groovy
Created October 9, 2018 18:27
list available vs current jenkins plugins
Jenkins.instance.updateCenter.getAvailables().each{
println "${it.name}:${it.version}"
}
Jenkins.instance.pluginManager.plugins.each{
println "${it}:${it.version}"
}
@wrossmck
wrossmck / install-plugin.groovy
Created October 9, 2018 18:26
Install a specific plugin on jenkins master via groovy
// installs single hardcoded plugin
import jenkins.model.*
import java.util.logging.Logger
def logger = Logger.getLogger("")
def installed = false
def initialized = false
def pluginParameter="apache-httpcomponents-client-4-api" // this could be a parameter if we wanted
def plugins = pluginParameter.split()
logger.info("" + plugins)
@wrossmck
wrossmck / delete-offline-jenkins-agents.groovy
Created September 27, 2018 09:09
Deletes offline jenkins agents from /script console (or CJOC)
Jenkins.instance.nodes.each {
if (it.computer.isOffline()){
println(it.name)
it.computer.doDoDelete()
}
}
@wrossmck
wrossmck / clean-local-branches.sh
Last active September 27, 2018 09:09
delete all local git branches except master
#!/bin/bash
git branch | grep -v "master" | xargs git branch -D
@wrossmck
wrossmck / git-latest.ps1
Created June 11, 2018 07:27
pull latest from master in all subdirectories
Get-ChildItem -Recurse -Directory -Hidden -Filter .git | ForEach-Object { & git --git-dir="$($_.FullName)" --work-tree="$(Split-Path $_.FullName -Parent)" pull origin master }