👨‍🦳

[Jenkins]Jekinsでgit cloneからgit pushまで実装

2024/11/16に公開

Jenkins Jobでgitcloneからpushまで実行する。

本記事で利用した環境

本記事で利用した環境は以下を参照する。
https://zenn.dev/taichi_tech/articles/380dfcbd3ec648#本記事で利用した環境
目次: 本記事で利用した環境

Jenkinsの設定

Jenkinsの設定を以下に記載する。

  1. JenkinsユーザのSSH鍵をgithubに登録
    Jenkinsmユーザの鍵を生成し、githubに登録する。
    su jenkins
    ssh-keygen -t rsa -b 4096
    
    生成したSSH鍵の公開鍵をgithubに登録する。登録方法は以下記事参照する。
    【入門】Githubにsshで接続する手順・注意点まとめ
  2. Jenkinsユーザが利用するgithubアカウント設定
    以下コマンドを実行してgithubアカウントの設定をする。
    git config --global user.name XXXXXXXXX
    git config --global user.email XXXX@XXXXXXX
    
    git configコマンドの詳細は以下を参照する。
    [Git]これだけ押さえる!gitconfigの基本

実装

Jenkins Jobのpipelineを以下に記載する。

// jenkins git clone and deploy
pipeline {
    agent any
    options {
        timestamps()
    }
    parameters {
        choice(name: 'BRANCH', choices: ['develop', 'release', 'main'], description: 'ブランチを指定する。')
        string(name: 'REPOSITORY', defaultValue: '', description: 'リポジトリを指定する。')
    }

    stages {
        stage('clone ') {
            steps {
                script {
                    if(fileExists("./${REPOSITORY}")) {
                        sh "rm -rf ${REPOSITORY}"
                    }
                }

                sh "git clone -b ${BRANCH} --depth 1 git@github.com:XXXXXXXXX/${REPOSITORY}"
            }
        }
        stage('push') {
            steps {
                sh'''
                cd ${REPOSITORY}
                echo test >> test.txt
                git add .
                git commit -m "[jenkins]git push"
                git push origin ${BRANCH}
                '''
            }
        }
    }
}

Discussion