Jenkins+SVNの自動デプロイ環境構築ガイド
1. はじめに
Jenkinsを活用し、Subversion(SVN)からソースコードを取得して自動デプロイする環境を構築します。本ガイドでは、以下の流れで設定を進めます。
2. Jenkinsのインストール
2.1. Jenkinsのダウンロードとセットアップ
Jenkinsは公式サイトからダウンロードできます。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt update sudo apt install jenkins -y
Jenkinsを起動:
sudo systemctl start jenkins
sudo systemctl enable jenkins
ブラウザで http://<サーバーIP>:8080
にアクセスし、初期セットアップを完了します。
2.2. Windows環境でのセットアップ
- Jenkins公式サイト から
.msi
をダウンロード - インストーラを実行し、インストール
http://localhost:8080
にアクセスしてセットアップ
3. SVNプラグインの導入
3.1. JenkinsにSVNプラグインをインストール
3.2. SVNリポジトリの登録
- Jenkinsの管理 → グローバルツール設定
- Subversionの設定 でSVNのパスを指定(例:
C:\Program Files\TortoiseSVN\bin\svn.exe
)
4. Jenkinsジョブの作成
4.1. 新規ジョブの作成
- 新規ジョブの作成
- フリースタイルプロジェクト を選択
- ソースコード管理 → Subversion を選択
- リポジトリURL を設定(例:
https://svn.example.com/project/trunk
) - 認証情報 を追加(SVNユーザー名・パスワード)
5. デプロイスクリプトの設定
5.1. シェルスクリプトを使ったデプロイ
ビルド後の処理として、サーバーへコードを配置するスクリプトを作成します。
Linux環境:
#!/bin/bash TARGET_DIR="/var/www/html" SVN_REPO="https://svn.example.com/project/trunk" SVN_USER="username" SVN_PASS="password" echo "Updating SVN repository..." svn checkout --username $SVN_USER --password $SVN_PASS $SVN_REPO $TARGET_DIR --force chown -R www-data:www-data $TARGET_DIR
Windows環境(PowerShell):
$TargetDir = "C:\inetpub\wwwroot" $SvnRepo = "https://svn.example.com/project/trunk" $SvnUser = "username" $SvnPass = "password" Write-Output "Updating SVN repository..." svn checkout --username $SvnUser --password $SvnPass $SvnRepo $TargetDir --force
5.2. Jenkinsジョブにスクリプトを追加
- ビルド手順の追加 → シェルの実行
- 上記のスクリプトを貼り付け
6. 自動化の実行確認
6.1. 手動ビルドの実行
- Jenkinsのダッシュボード → 作成したジョブを選択
- 今すぐビルド をクリック
- コンソール出力 でログを確認
6.2. SVNコミット時の自動デプロイ
- ジョブの設定 → ビルドのトリガー
- SCMの変更をポーリング にチェックを入れる
H/5 * * * *
(5分おき)を設定- 保存 してコミットを試す
7. まとめ
JenkinsとSVNを使った自動デプロイ環境を構築しました。これにより、開発者がコードをSVNにコミットするだけで、自動的にデプロイが実行されるようになります。
次に学ぶべきトピック
- Jenkinsパイプライン を使った高度なデプロイ管理
- Dockerコンテナを利用したCI/CD
- AnsibleやTerraformとの連携
このガイドを参考に、効率的なデプロイ環境を構築してください!
書籍
・【改訂新版】C言語ではじめるRaspberry Pi徹底入門 https://amzn.to/4hXR1L7
・改訂新版 最短距離でゼロからしっかり学ぶ Python 入門 https://amzn.to/4hSKZLI
・ゼロからのOS自作入門 https://amzn.to/41jrJ3B
・グランドマスター三冠のKaggleノートブック開発術 https://amzn.to/40ZILTR
その他
・AnkerMake M5C 3Dプリンター https://amzn.to/4gDu3b3
・ZEAKOC PLA Plus 3Dプリンター用フィラメント https://amzn.to/4hWiUmW