Skip to content

Instantly share code, notes, and snippets.

View stephenc's full-sized avatar
🍵
Enjoying a nice cup of tea

Stephen Connolly stephenc

🍵
Enjoying a nice cup of tea
View GitHub Profile
def listener=ExtensionList.lookup(AsyncPeriodicWork.class).get(org.apache.jenkins.gitpubsub.GitPubSubPoll.class);
println("Listener: ${listener}");
println("Listener.periodSeconds: ${listener.periodSeconds}");
println("Listener.requestRecycleMins: ${listener.requestRecycleMins}");
println("Listener.disableNotifyScm: ${listener.disableNotifyScm}");
println("Listener.lastTS: ${listener.lastTS}");
println("Listener.lastTime: ${listener.lastTime}");
println("Listener.longPollRequest: ${listener.longPollRequest}");
@stephenc
stephenc / gist:09b771c57126165d64495d6a0d43d237
Created March 23, 2017 17:06
Help rescue Jenkins in memory data to disk
for (def u in User.byName.values()) { u.save() }
for (def item in Jenkins.instance.allItems) { item.save() }
for (def c in Jenkins.instance.computers) { if (!(c instanceof hudson.model.Hudson$MasterComputer)) c.getNode().save() }
@stephenc
stephenc / jenkins-43507.groovy
Created June 19, 2017 13:14
JENKINS-43507: Script to capture pre- and post- upgrade state of Multibranch projects and organization folders
println("Organization folder last scan");
println("=============================");
println();
for (def i in Jenkins.instance.allItems) {
if (i instanceof jenkins.branch.OrganizationFolder) {
println("${i.fullName}: ${i.computation.timestamp.format('yyyy-MM-dd HH:mm:ss z')} ${i.computation.result}");
}
}
println();
@stephenc
stephenc / README.md
Last active May 4, 2018 13:36
Watch Me Code, Episode 5 pipeline shared libraries

Watch Me Code - Episode 5

The build is defined in the vars/asfMavenTlpStdBuild.groovy file, that relies on the jenkinsEnv singelton.

Ideally you would put vars/jenkinsEnv.groovy in a separate repository (or at least a separate branch) and define two shared libraries:

  1. The shared library that defines jenkinsEnv
  2. The shared library that defines asfMavenTlpStdBuild

This way, to migrate to a different Jenkins master, we just need a different jenkinsEnv singleton that respects the same API contract.

@stephenc
stephenc / Makefile
Created October 9, 2018 10:44
How to have a makefile only rebuild a docker image when needed
DOCKER_TAG = ...
.PHONY: build-image touch.build-image
build-image: touch.build-image .build-image
touch.build-image:
$(eval timestamp=$(shell docker inspect -f '{{ range $$i, $$e := split .Metadata.LastTagTime "T" }}{{if eq $$i 0}}{{range $$j, $$v := split $$e "-"}}{{$$v}}{{end}}{{else}}{{$$f := printf "%.8s" $$e}}{{range $$j, $$g := split $$f ":"}}{{if lt $$j 2}}{{$$g}}{{else}}.{{$$g}}{{end}}{{end}}{{end}}{{end}}' $(DOCKER_TAG) 2>/dev/null ))
@if [ "A$(timestamp)A" = "AA" ] ; then rm -f .build-image ; else touch -t $(timestamp) .build-image ; fi
.build-image: Dockerfile rootfs/*
@stephenc
stephenc / bootstrap.min.css
Created December 13, 2018 22:06
centraal static content
/*!
* Bootstrap v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;
@stephenc
stephenc / keybase.md
Created June 27, 2019 10:00
keybase.md

Keybase proof

I hereby claim:

  • I am stephenc on github.
  • I am stephenconnolly (https://keybase.io/stephenconnolly) on keybase.
  • I have a public key whose fingerprint is 6444 C030 9052 58CE 2E42 B511 DA9C 0CA7 B492 4CA3

To claim this, I am signing this object:

package myflink;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.common.functions.RuntimeContext;
@stephenc
stephenc / DatadogStatus.puml
Created February 28, 2020 14:22
A PlantUML sprite for a status badge
sprite $DatadogStatus [200x20/16] {
56666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAA9A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666631666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000
@stephenc
stephenc / pom.xml
Created August 11, 2020 10:17
How to allow testing with a different version from the command line
<project>
...
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.example.foo</groupId>
<artifactId>bar</artifactId>
<version>1.2.3</version>
</dependency>