LoginSignup
0
0

More than 1 year has passed since last update.

【Jenkins】Gitリポジトリ内の特定フォルダのみをチェックアウトする方法

Posted at

はじめに

Github上のリポジトリ内にある特定のフォルダだけを取得したいと考え、実現した方法を残します。

前提条件

JenkinsのPipeline: SCM Stepプラグインをインストールしてあること。
https://plugins.jenkins.io/workflow-scm-step/

方法

以下はgit clone操作をしている箇所の抜粋です。
クローンしたいフォルダ名を以下の<特定フォルダ名>箇所に置換します。

.groovy
stage('Clone specific folder') {
           steps {
                script {
                    echo "Clone specific folder"
                    // リモートリポジトリ内の特定フォルダをローカルにクローンする
                    dir(path: "${env.WORKSPACE}\\<リモートリポジトリ名>"){
                    try {
                        checkout([$class: 'GitSCM', 
                                    branches: [[name: "<ブランチ名>"]], 
                                    doGenerateSubmoduleConfigurations: false, 
                                    extensions: [
                                        [$class: 'SparseCheckoutPaths',  
                                        sparseCheckoutPaths:[[$class:'SparseCheckoutPath', 
                                        path:'<特定フォルダ名>/']]]
                                                ],
                                    submoduleCfg: [],
                                    userRemoteConfigs: [
                                        [credentialsId: "<Jenkinsで設定した認証情報>", 
                                        url: "<リモートリポジトリURL>"
                                        ]
                                    ]
                                ])
                        } catch (Exception  e) {
                            printMessage(e)
                            currentBuild.result = 'FAILURE'
                        }
                    }
                }
            }
        }

結果

特定フォルダのみクローンされる。
※このとき、特定フォルダまでのパスも同時にクローンされるイメージ。

動作上で気を付ける点

対象のリモートリポジトリURL内に特定フォルダ名が複数存在する場合、全てがクローン対象となること
※特定フォルダ名だけを取得するという動作としては認識通りですが、使用する際は注意が必要かも。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0