github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/util/testutil/ci/jenkins/jenkins.go (about)

     1  // Package jenkins implements some helper functions to use during
     2  // tests. Many times certain facilities are not available, or tests
     3  // must run differently.
     4  package jenkins
     5  
     6  import (
     7  	"os"
     8  	"strings"
     9  )
    10  
    11  // EnvVar is a type to use travis-only env var names with
    12  // the type system.
    13  type EnvVar string
    14  
    15  // Environment variables that Jenkins uses.
    16  const (
    17  	VarBuildNumber    EnvVar = "BUILD_NUMBER"
    18  	VarBuildId        EnvVar = "BUILD_ID"
    19  	VarBuildUrl       EnvVar = "BUILD_URL"
    20  	VarNodeName       EnvVar = "NODE_NAME"
    21  	VarJobName        EnvVar = "JOB_NAME"
    22  	VarBuildTag       EnvVar = "BUILD_TAG"
    23  	VarJenkinsUrl     EnvVar = "JENKINS_URL"
    24  	VarExecutorNumber EnvVar = "EXECUTOR_NUMBER"
    25  	VarJavaHome       EnvVar = "JAVA_HOME"
    26  	VarWorkspace      EnvVar = "WORKSPACE"
    27  	VarSvnRevision    EnvVar = "SVN_REVISION"
    28  	VarCvsBranch      EnvVar = "CVS_BRANCH"
    29  	VarGitCommit      EnvVar = "GIT_COMMIT"
    30  	VarGitUrl         EnvVar = "GIT_URL"
    31  	VarGitBranch      EnvVar = "GIT_BRANCH"
    32  )
    33  
    34  // IsRunning attempts to determine whether this process is
    35  // running on Jenkins CI. This is done by checking any of the
    36  // following:
    37  //
    38  //  JENKINS_URL is set
    39  //  BuildTag has prefix "jenkins-"
    40  //
    41  func IsRunning() bool {
    42  	return len(Env(VarJenkinsUrl)) > 0 || strings.HasPrefix(Env(VarBuildTag), "jenkins-")
    43  }
    44  
    45  // Env returns the value of a travis env variable.
    46  func Env(v EnvVar) string {
    47  	return os.Getenv(string(v))
    48  }
    49  
    50  // JobName returns the jenkins JOB_NAME of this build.
    51  func JobName() string {
    52  	return Env(VarJobName)
    53  }
    54  
    55  // BuildTag returns the jenkins BUILD_TAG.
    56  func BuildTag() string {
    57  	return Env(VarBuildTag)
    58  }