GitLab CI/CDの例
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このページには、特定のユースケースに応じてGitLab CI/CDを実装する方法を理解するのに役立つ、さまざまな例へのリンクが記載されています。
ここでご紹介する例は、次の形式で提供されています:
- GitLabで管理されている
.gitlab-ci.ymlテンプレートファイル。一般的なフレームワークやプログラミング言語向け。 - 各種言語向けのサンプルプロジェクトを含むリポジトリ。フォークして、独自のニーズに合わせて調整できます。プロジェクトには、NGINXで提供される静的サイトでレビューアプリを使用する例が含まれています。
- 以下のセクションに示されている例やその他のリソース。
CI/CDの例
次の表に、このセクションに含まれるステップバイステップのチュートリアルの例を示します:
| ユースケース | リソース |
|---|---|
| dplを使用したデプロイ | dplをデプロイツールとして使用する。 |
| GitLab Pages | 静的サイトをデプロイする完全な例については、GitLab Pagesドキュメントを参照してください。 |
| マルチプロジェクトパイプライン | マルチプロジェクトパイプラインを使用してビルド、テスト、デプロイを行う。 |
| semantic-releaseを使用したnpm | semantic-releaseを使用してnpmパッケージをGitLabパッケージレジストリに公開する。 |
| PHPとnpm、SCP | GitLab CI/CDでComposerおよびnpmスクリプトを実行し、SCP経由でデプロイする。 |
PHPとPHPUnit、atoum | PHPプロジェクトをテストする。 |
| Vaultを使用したシークレット管理 | HashiCorp Vaultを使用して認証し、シークレットを読み取る。 |
コントリビュートされた例
お気に入りのプログラミング言語のガイドへのリンクを送信して、その言語を使用する人々をサポートできます。これらのコントリビュートされたガイドは、外部または個別のサンプルプロジェクトでホストされています:
| ユースケース | リソース |
|---|---|
| Clojure | GitLab CI/CDでClojureアプリケーションをテストする。 |
| ゲーム開発 | GitLab CI/CDを使用したDevOpsとゲーム開発。 |
| JavaとMaven | GitLab CI/CDでMavenプロジェクトをArtifactoryにデプロイする方法。 |
| JavaとSpring Boot | GitLab CI/CDでSpring BootアプリケーションをCloud Foundryにデプロイする。 |
| RubyとJSの並列テスト | RubyおよびJavaScriptプロジェクトを対象にGitLab CI/CDの並列ジョブでテストを行う。 |
| HerokuでPython | GitLab CI/CDでPythonアプリケーションをテストおよびデプロイする。 |
| HerokuでRuby | GitLab CI/CDでRubyアプリケーションをテストおよびデプロイする。 |
| HerokuでScala | Scalaアプリケーションをテストし、Herokuにデプロイする。 |
CI/CDテンプレート
.gitlab-ci.ymlテンプレートを使用して、お気に入りのプログラミング言語やフレームワークでGitLab CI/CDを始めましょう。
UIで.gitlab-ci.ymlファイルを作成する際に、次のテンプレートのいずれかを選択できます:
- Android(
Android.gitlab-ci.yml) - Androidとfastlane(
Android-Fastlane.gitlab-ci.yml) - Bash(
Bash.gitlab-ci.yml) - C++(
C++.gitlab-ci.yml) - Chef(
Chef.gitlab-ci.yml) - Clojure(
Clojure.gitlab-ci.yml) - Composer(
Composer.gitlab-ci.yml) - Crystal(
Crystal.gitlab-ci.yml) - Dart(
Dart.gitlab-ci.yml) - Django(
Django.gitlab-ci.yml) - Docker(
Docker.gitlab-ci.yml) - dotNET(
dotNET.gitlab-ci.yml) - dotNET Core(
dotNET-Core.gitlab-ci.yml) - Elixir(
Elixir.gitlab-ci.yml) - Flutter(
Flutter.gitlab-ci.yml) - Go(
Go.gitlab-ci.yml) - Gradle(
Gradle.gitlab-ci.yml) - Grails(
Grails.gitlab-ci.yml) - iOSとfastlane(
iOS-Fastlane.gitlab-ci.yml) - Julia(
Julia.gitlab-ci.yml) - Laravel(
Laravel.gitlab-ci.yml) - LaTeX(
LaTeX.gitlab-ci.yml) - Maven(
Maven.gitlab-ci.yml) - Mono(
Mono.gitlab-ci.yml) - npm(
npm.gitlab-ci.yml) - Node.js(
Nodejs.gitlab-ci.yml) - OpenShift(
OpenShift.gitlab-ci.yml) - Packer(
Packer.gitlab-ci.yml) - PHP(
PHP.gitlab-ci.yml) - Python(
Python.gitlab-ci.yml) - Ruby(
Ruby.gitlab-ci.yml) - Rust(
Rust.gitlab-ci.yml) - Scala(
Scala.gitlab-ci.yml) - Swift(
Swift.gitlab-ci.yml) - Terraform(
Terraform.gitlab-ci.yml) - Terraform(
Terraform.latest.gitlab-ci.yml)
プログラミング言語またはフレームワークのテンプレートがこのリストにない場合は、コントリビュートできます。テンプレートを作成するには、テンプレートリストにマージリクエストを送信します。
GitLabインストールにテンプレートを追加する
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
カスタムの例とテンプレートをインスタンスに追加できます。GitLab管理者は、組織に固有の例とテンプレートを含むインスタンステンプレートリポジトリを指定できます。
その他のリソース
このセクションでは、GitLab CI/CDのさまざまな用途に慣れるのに役立つその他のリソースを紹介します。古い記事や動画は、最新のGitLabリリースの状況を反映していないことがあります。
クラウドにおけるCI/CD
クラウドベースの環境向けにGitLab CI/CDを設定する例については、以下を参照してください:
- 複数のアカウントのAWS SAMデプロイをGitLab CI/CDで設定する方法
- ビデオ: GitLab CI/CDを使用したKubernetesデプロイの自動化
- How to autoscale continuous deployment with GitLab Runner on DigitalOcean(DigitalOcean上のGitLab Runnerで継続的デプロイをオートスケールする方法)
- How to create a CI/CD pipeline with Auto Deploy to Kubernetes using GitLab and Helm(GitLabとHelmを使用してKubernetesへの自動デプロイでCI/CDパイプラインを作成する方法)
- ビデオ: Demo - Deploying from GitLab to OpenShift Container Cluster(デモ - GitLabからOpenShiftコンテナクラスターへデプロイする)
- チュートリアル: GitLab.comのCivo KubernetesインテグレーションをGitpodで設定する
以下のビデオの概要もご覧ください:
- ビデオ: Kubernetes、GitLab、およびクラウドネイティブ
- ビデオ: Deploying to IBM Cloud with GitLab CI/CD(GitLab CI/CDを使用したIBM Cloudへのデプロイ)
お客様事例
GitLab CI/CDを使用したお客様の事例については、以下を参照してください:
- How Verizon Connect reduced datacenter rebuilds from 30 days to under 8 hours with GitLab(Verizon ConnectがGitLabを使用してデータセンターのデプロイを30日から8時間未満に短縮した方法)
- How Wag! cut their release process from 40 minutes to just 6(Wag!がリリースプロセスを40分からわずか6分に短縮した方法)
- How Jaguar Land Rover embraced CI to speed up their software lifecycle(Jaguar Land RoverがCIを導入してソフトウェアライフサイクルをスピードアップした方法)
はじめに
開始にあたって役立つ例については、以下を参照してください:
- GitLab CI/CD’s 2018 highlights(GitLab CI/CDの2018年のハイライト)
- A beginner’s guide to continuous integration(継続的インテグレーションの初心者向けガイド)
GitLab CI/CDを実装する
GitLab CI/CDを実装した他の例については、以下を参照してください:
- How to streamline interactions between multiple repositories with multi-project pipelines(マルチプロジェクトパイプラインを使用して複数のリポジトリ間のインタラクションを効率化する方法)
- How we used GitLab CI to build GitLab faster(GitLab CIを使用してGitLabを迅速に構築した方法)
- Test all the things in GitLab CI with Docker by example(DockerとGitLab CIであらゆるものをテストする事例)
- A Craftsman looks at continuous integration(匠の視点から見る継続的インテグレーション)
- Go tools and GitLab: How to do continuous integration like a boss(Go toolsとGitLab: 継続的インテグレーションをスマートに実現する方法)
- GitBot - automating boring Git operations with CI(GitBot - CIを使用して退屈なGit操作を自動化する)
- How to use GitLab CI for Vue.js(Vue.jsでGitLab CIを活用する方法)
- ビデオ: GitLab CI/CDの解説
- Dockerizing GitLab review apps(GitLabレビューアプリのDocker化)
- Fast and natural continuous integration with GitLab CI(GitLab CIによる高速かつ自然な継続的インテグレーション)
- Demo: CI/CD with GitLab in action(デモ: GitLabを使用したCI/CDの実例)
サードパーティのCIツールからGitLabへ移行する
他のツールからGitLab CI/CDへの移行例:
GitLab CI/CDと他のシステムとのインテグレーション
GitLab CI/CDをサードパーティシステムと統合する方法については、以下を参照してください:
- Streamline and shorten error remediation with Sentry’s new GitLab integration
- How to simplify your smart home configuration with GitLab CI/CD(GitLab CI/CDでスマートホームの設定を簡素化する方法)
- Demo: GitLab + Jira + Jenkins(デモ: GitLab + Jira + Jenkins)
- Introducing Auto Breakfast from GitLab (sort of)(GitLabからAuto Breakfastの紹介(挑戦してみました))
モバイル開発
モバイルアプリケーション開発にGitLab CI/CDを使用する方法については、以下を参照してください:
- How to publish Android apps to the Google Play Store with GitLab and fastlane(GitLabとfastlaneを使用してAndroidアプリをGoogle Playストアに公開する方法)
- Setting up GitLab CI for Android projects(Androidプロジェクト向けにGitLab CIを設定する)
- Working with YAML in GitLab CI from the Android perspective(Androidの観点から見るGitLab CIにおけるYAMLの使用法)
- How to use GitLab CI and MacStadium to build your macOS or iOS projects(MacStadiumとGitLab CIを使用してmacOSまたはiOSプロジェクトを構築する方法)
- Setting up GitLab CI for iOS projects(iOSプロジェクト向けにGitLab CIを設定する)