|
今日は、Jenkins についての概念的な内容を次のように簡単にまとめました。 1. コンセプト Jenkinsは、使いやすい継続的インテグレーションシステムを提供するオープンソースプロジェクトです。開発者は煩雑なインテグレーション作業から解放され、より重要なビジネスロジックの実装に集中できます。また、Jenkinsはインテグレーションエラーをリアルタイムで監視し、詳細なログファイルとアラートを提供し、プロジェクトのビルド傾向と安定性をグラフィカルに視覚的に表示できます。 Jenkinsは、自動化された継続的インテグレーション環境を構築できます。アプリケーションのコンパイル、パッケージ化、配布、デプロイを「自動化」できます。Ant、Maven、Gradleといった様々なサードパーティ製ビルドツールと互換性があり、SVNやGitともシームレスに統合できます。また、GitHubやBitbucketといった著名なソースコードホスティングサイトとの直接統合もサポートしています。 2. Jenkinsの機能
3. 原則 ここでは、GitサーバーとしてGitLabを選択します。GitLabはGitHubと同様の機能を提供しますが、オープンソースであるため、プライベートGitサーバーを構築できます。また、非常に強力なWeb GUIも提供しており、開発者がソースコードを確認するのに非常に便利です。システムのワークフローは、おおよそ以下のステップに分けられます。
Jenkinsは、まずGitLabからローカルマシンにソースコードをコピーし、設定されたスクリプトに従ってビルドすることで動作します。システム全体の鍵となるのは、統合中に実行されるタスクをJenkinsに指示するビルドスクリプトであることがわかります。 しかし、結局GitサーバーとしてGitHubを使うことにしました。でも、実際にはほとんど同じです。 4. 展開方法 (1) Jenkins によるビルドのトリガー: 開発環境のデプロイメントに使用され、開発者は GitLab プロジェクトのマスター ブランチにコードをプッシュまたはマージし、Jenkins は対応するサーバーにコードをデプロイします。 (2)ジェンキンスのパラメータ化構築: テスト環境およびプレプロダクション環境へのデプロイでは、開発者がGitLabプロジェクトのマスターブランチにコードをプッシュまたはマージしても、コードはデプロイされません。代わりに、JenkinsのWebインターフェースにログインし、ビルドボタンをクリックし、ビルドするタグやデプロイするブランチなどのパラメータを指定してからデプロイする必要があります。 (3) Jenkinsのスケジュールビルド: アプリの自動パッケージングでは、パラメータ化されたビルドに加えて、スケジュールされたビルドが追加されます。開発者はJenkinsにログインし、手動でタグを渡してアプリをパッケージ化できます。手動でパッケージ化しない場合は、Jenkinsが毎日深夜にGitLabから最新のアプリコードをプルし、パッケージ化します。 5. 継続的インテグレーションの分類
|