Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@tyuki39
tyuki39 / HowToGetProjectSpecificEnvironmentVariables.groovysh
Created February 27, 2011 08:25
Jenkinsでプロジェクト固有の環境変数を取得する方法
// プラクティスとして良いかどうかは別として、他のプロジェクト固有の環境変数を得る方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// TEST プロジェクトの WORKSPACE 環境変数の情報を得る例
def jobname = "TEST"
def envname = "WORKSPACE"
def job = hudson.model.Hudson.instance.getItem(jobname)
def envVars= job.lastBuild.properties.get("envVars")
println envVars[envname]
@tyuki39
tyuki39 / HowToRunProject.groovysh
Created February 27, 2011 10:01
Jenkinsで他のプロジェクトのビルドを実行する方法
// 他のプロジェクトのビルドを実行する方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// TEST プロジェクトのビルドを実行する例
def jobname = "TEST"
hudson.model.Hudson.instance.getItem(jobname).scheduleBuild()
@tyuki39
tyuki39 / HowToGetDownAndUpstreamBuild.groovy
Created March 8, 2011 15:48
Jenkinsで下流ビルドと上流ビルドを取得する方法
// あるプロジェクトの下流ビルドと上流ビルドを取得する方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// TEST プロジェクトの下流ビルドと上流ビルドを取得する例
def jobname = "TEST"
def job = hudson.model.Hudson.instance.getItem(jobname)
def dep = hudson.model.Hudson.instance.dependencyGraph
assert job, "ERROR: Can't find the job $jobname."
assert dep, "ERROR: Can't get the dependency graph."
@tyuki39
tyuki39 / HowToAbortProject.groovy
Created March 8, 2011 14:59
Jenkinsで他のプロジェクトのビルドを中止する方法
// 他のプロジェクトのビルドを中止する方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// TEST プロジェクトのビルドを中止する例
def jobname = "TEST"
def job = hudson.model.Hudson.instance.getItem(jobname)
assert job, "ERROR: Can't find the job $jobname."
def lastbuild = job.lastBuild
if( lastbuild ) {
@tyuki39
tyuki39 / HowToGetArtifactsDirWithinTerm.groovy
Created March 9, 2011 14:51
他プロジェクトの指定期間内の成功ビルドの成果物ディレクトリを一覧する方法
// 他プロジェクトの指定期間内の成功ビルドの成果物ディレクトリを一覧する方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// TESTプロジェクトの
// 2011/3/1 00:00:00 から
// TESTプロジェクトの最終ビルド まで
// の期間を対象にして成功ビルドの成果物ディレクトリを一覧する
def jobname = "TEST"
def job = hudson.model.Hudson.instance.getItem(jobname)
@tyuki39
tyuki39 / HowToGetCurrentJob.groovy
Created March 9, 2011 13:33
Jenkinsで動作中のプロジェクト自身を取得する方法
// 動作中のプロジェクト自身を取得する方法
// 以下は groovy plugin の Execute system Groovy script の中で使用して
// groovy plugin自体を実行しているプロジェクトを取得する例
def currentJob = Thread.currentThread().executable.project
println currentJob.name
@tyuki39
tyuki39 / keyValueXml4.groovy
Created March 16, 2011 14:01
This gist is fork from https://gist.github.com/870666 by @kyon_mm
/**
* Created by IntelliJ IDEA.
* User: kyon
* Date: 11/03/15
* Time: 0:54
* To change this template use File | Settings | File Templates.
*/
String.metaClass.toXML = { builder, entry ->
builder."${entry.key}"(entry.value)
@tyuki39
tyuki39 / randomStrings.groovy
Created March 26, 2011 14:38
[0-9a-zA-Z_]からなる16文字のランダム文字列
// new Random と nextIntを使用
[*0..9,*'a'..'z',*'A'..'Z','_'].with{a->println new Random().with{(1..16).collect{a[nextInt(a.size())]}.join()}}
// Math.randomを使用
[*0..9,*'a'..'z',*'A'..'Z','_'].with{a->println((1..16).collect{a[(int)Math.random()*a.size()]}.join())}
// def と println版
def a=[*0..9,*'a'..'z',*'A'..'Z','_'];println((1..16).collect{a[(int)Math.random()*a.size()]}.join())
@tyuki39
tyuki39 / timeOverwrap.groovy
Created March 27, 2011 06:34
時間帯重複チェック(超ベタなコード版 & クラス使用版 & Range適用版)
// st = [時,分] が [0,0]~[24,0]の範囲内かどうかをチェック
def isValidTime = { st -> ((0..23).contains(st[0]) && (0..59).contains(st[1])) || (st[0] == 24 && st[1] == 0) }
// st1 = [時,分], st2 = [時,分] が st1 <= st2 を満たすかどうかをチェック
def isNotGreaterThan = { st1, st2 -> st1[0] < st2[0] ? true : (st1[0] == st2[0] ? st1[1] <= st2[1] : false) }
// pt = [開始時,開始分,終了時,終了分] が [開始時,開始分] <= [終了時,終了分] を満たすかどうかをチェック
def isValidPair = { pt -> isValidTime(pt[0,1]) && isValidTime(pt[2,3]) && isNotGreaterThan(pt[0,1],pt[2,3]) }
// pt1 = [開始時,開始分,終了時,終了分], pt2 = [開始時,開始分,終了時,終了分] がオーバーラップしているかどうかをチェック
@tyuki39
tyuki39 / timeOverwrapExtended.groovy
Created April 5, 2011 22:23
時間帯重複チェック(応用編)
class MyTime implements Comparable {
int hour
int minutes
MyTime(hour, minutes) {
this.hour = hour
this.minutes = minutes
assert isValid(), "The time ${this} is not valid."
}
int compareTo(that) {
(hour*60+minutes) <=> (that.hour*60+that.minutes)