pipeline_scm_step.png

여러 종류의 SCM(Source Code Management)에 사용할 수 있다. GitHub, GitLab, SVN 등에 사용 가능하다.

git 플러그인

  • url: checkout 대상 저장소 URL
  • poll: true 라면 최초 실행 이후에 저장소에 변경이 발생하면 해당 잡을 수행한다. (대신에 Webhook을 사용한다)
node {

  def sbt = "${tool name: '1.2.8', type:'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt -no-colors"
  def jenkins_gitlab_id = "a0d2291e-aaaa-aaaa-bbbb-cc22a13ec37d"

  stage("Checkout") {
    echo "git checkout"
    checkout changelog: false, poll: false, scm: [
      $class: 'GitSCM',
      branches: [[
        name: "master"
      ]],
      doGenerateSubmoduleConfigurations: false,
      extensions: [[
        $class: "WipeWorkspace"
      ], [
        $class: "CleanBeforeCheckout"
      ]],
      submoduleCfg: [],
      userRemoteConfigs: [[
        credentialsId: "${jenkins_gitlab_id}",
        url: "http://211.55.55.55:5551/endsoul/cion_emulator.git"
      ]]
    ]
  }

  stage('Build & Unit testing...') {
    echo "Build & Unit testing..."
    sh "${sbt} clean test"
  }
}

$class: "WipeWorkspace"
빌드를 실행하기 전에 워크스페이스의 파일들을 모두 삭제한다.
$class: "CleanBeforeCheckout"
체크아웃 실행 전에 untracked files, directories, .gitignore에 해당하는 파일들을 삭제한다. 따라서 이전 빌드에서 생성된 artifacts 가 모두 삭제된다.
credentialsId
젠킨스의 저장소 Username/PASSWORD Credential의 ID를 입력한다.
gitlab_credential.png