SlideShare a Scribd company logo
1 of 56
Download to read offline
オープンソースカンファレンス2019 Tokyo/Fall
GitLab CI/CDパイプライン
矢野 哲朗
2019年11月24日
自己紹介
経歴 : システム運用 10年・ネットワーク 6年・SI 8年
近頃はNextcloud/Rancherを担当
その他 : 全く上達しないRubyist
一番最初のPCは、OKI if-800 でした…。
矢野 哲朗
tetsurow.yano
株式会社スタイルズ
2
<宣伝>GitLab CIリファレンス翻訳本!
3
GitLab CIの日本語ドキュメントが
なかったので翻訳しました
本日、304教室で販売中
1000円
【電子書籍版】日本語版GitLab CIリファレンス
https://techiemedia.booth.pm/items/1579669
GitLabの概要説明
4
GitLabとは?
GitLabは、Gitリポジトリをホスティン
グするオープンソースソフトウェアです
 Gitリポジトリの管理以外にも、Issue (課題) の管理、コードレ
ビュー、CI と CD (継続的デリバリ) を1つのツールとして統合的
に提供しています
 GitHub と同様にソースコードを見たり、Issue (課題) 管理を行っ
たり、Wiki を書いたり、おおよそ開発に必要な機能が含まれてい
ます。これらの機能をウェブブラウザーで利用することができま
す
5
GitLab.comとGitLab CE/EEの違い
 GitLab.comについて
 GitLab.com はGithubのSaaSと同じWebサービス
無料版の制限がGitHubは、プライベートリポジトリが共同編集者が3人までな
のに対して、GitLab.comは無制限(機能制限あり)
 GitLab.comは、GitHubと同じように有料版があります。
 GitLab CE/EE(= Community Edition/Enterprise Edition)について
 GitLab CE/EEは、GitHub Enterpriseと同様に、自前のインフラにインストー
ルして動かします。GitHubと違う所は、GitHub Enterpriseは有料のみですが、
無料版のCommunity Editionがあります。
6
GitLabの機能について(無料版で使えるもののみ)
Gitリポジトリ管理
Issueトラッカー/ボード
GitLabパイプライン
タイムトラッキング
サイクルアナリシス
変更点をレビューする
ReviewApps
GitLab ページ
Git LFS2.0対応
Wiki
GitLab Container Registry
GitLab ウェブエディター
組み込みMattermost(オンプレ用)
Slack連携(ChatOps)
Webhook
Kubernetes連携
AutoDevOps
Serverless
Snippet機能
7
お勧めのGitLab書籍
 GitLab実践ガイド
8
GitLab実践ガイド - インプレスブックス
https://book.impress.co.jp/books/1116101163
 GitLab実践ガイド
インフラCI実践ガイド - 翔泳社の本
https://www.shoeisha.co.jp/book/detail/9784798155128
GitLabパイプライン
9
GitLabパイプラインについて
GitLabパイプラインはどういったものなのか?
 Jenkinsのようなジョブ実行機能
 CI(Continuous Integration)とCD(Continuous Deployment or Delivery)
を実現する
 GitLab、GitLab Container Registryとの統合
 GitLabへのgit pushイベントで実行される
 .gitlab-ci.yamlファイルに手続き的に記述
 実行はGitLabサーバー外にあるRunnerが担当
10
GitLabパイプラインについて
11
 GitLabパイプラインが実現するCI/CD
GitLabパイプライン
 パイプラインの実行時の動作(GitLabとGitLab
Runner)
12
イベント
GitLab RunnerGitLab
GitLab Runner
Dockerコンテナを起動
DockerHub
コンテナの中で
git cloneを実行
.gitlab-ci.yamlを実行
git push API スケジュール
.gitlab-ci.yamlの
コード実行 外部
Artifacts(成果物)
Artifactsの
アップロード
コンテナレジストリ
コンテナイメージ
のアップロード
イメージの
ダウンロード
重要なのは
ここ!
GitLab Container
Registryで解説
ビルド用マシン
GitLab CIのRunnerがコンテナを動かす仕組み
13
4秒おきにポーリング
docker push
Container
Registry
常駐
build起動用
Dockerを起動
gitlab-ci.yaml
を実行 gitlab-ci.yaml
コンテナ
をビルド
GitLab Container
Registryで解説
.gitlab-ci.yamlの概要説明
14
.gitlab-ci.yaml 概要
 YAMLで記述する(サンプルを後述)
 パイプラインの構造と順序を定義する
 GitLab Runnerで実行される
 プロセスの終了状況により次のジョブが実行されるかどうかを決定す
る
 ファイルの設置場所
gitリポジトリの直下に置くのがデフォルト(他の場所にも設置可)
/.gitlab-ci.yaml
 GitLab内の各種環境変数を利用できる
15
ジョブ実行環境
 パイプライン実行例
16
ジョブ ジョブ ジョブ ジョブ
ジョブ毎にDockerコ
ンテナが起動してコマ
ンドが実行される
ステージを並列
にした場合は同
時に実行される
ジョブ間で共有したいファイルはartifactsで指定
artifacts.pathsで指定されると指定されたpaths配下は別のジョブでも利用できる
artifacts:
paths:
- binaries/
- .config:
- <キャッシュしたいファイルパスを指定>
ジョブ
.gitlab-ci.yamlのサンプル解説
image: java:8
stages:
- build
- run
variables:
MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
build:
stage: build
script: mvn $MAVEN_CLI_OPTS compile
run:
stage: run
script:
- mvn $MAVEN_CLI_OPTS package
- mvn $MAVEN_CLI_OPTS exec:java -Dexec.mainClass="com.example.app.App"
17
このスクリプトを実行する
コンテナイメージを指定
直列に実行する順番を指定
これがない場合は並列に実行
変数指定
GitLabの環境変数も利用でき
る
ジョブ名
ステージ名
このジョブがどのステージに属しているかを記載
このジョブで実行するコマンドを記載
【Demo】リポジトリを作成
18
GitLab.com にサインイン
 GitLab.com (https://gitlab.com/users/sign_in) にアクセスしサインイン
 プロジェクトの画面が表示される
19
Gitlab.com にアクセスし、「Username or email」と
「Password」を入力しサインインします。
プロジェクトの画面が表示されます。
.gitlab-ci.yamlファイルの場所
 ファイルの設置場所
gitリポジトリの直下に置くのがデフォルト(他の場所にも設置可)
20
ソースコードのクローン(コピー)
 演習用リポジトリにアクセス
 Forkをクリック
 作成したアカウントを選択
21
ソースコードのクローンが終わるまで待ちます
https://gitlab.com/stylez-co-jp/jhipster-hands-on-example
演習用ソースコードはこちら
先ほど作成したアカウントをクリック
Forkをクリック
ソースコードクローンの確認
 クローンが完了したメッセージを確認
22
The project was successfully forked. と表示されればクローン完了です
【Demo】パイプラインの起動
23
.gitlab-ci.yml を開く
 クローンした「jhipster-hands-on-example」をクリック
 「.gitlab-ci.yml」をクリック
24
プロジェクトの画面が表示されます。
下にスクロールさせて「.gitlab-ci.yml」を
クリックします。
.gitlab-ci.yml を編集する
 「.gitlab-ci.yml」の「編集」をクリック
 最後の行にひとつ改行を入れます
25
これは今回 JHipster をビルドするパイプラインの
記述です。このパイプラインを動かすためには
Git レポジトリへのコミットが必要になります。
.gitlab-ci.yml の右の「編集」をクリックします。
編集画面の一番下まで画面をスクロールさせます。
最後の行で「Enter」を押し、ひとつ改行を入れます。
コミットメッセージを追加する
 画面下のコミットメッセージにメッセージを入力
 左下の「Commit changes」をクリック
26
入力メッセージは任意のもので構いませんが、
今回は「パイプラインの実行のためにコミット」
と入力します。
「Commit changes」をクリックします。
コミットの確認
 「Your changes have been successfully committed.」を確認
 改行が入っていることを確認
27
画面が戻り「 Your changes have been
successfully committed. 」メッセージが
表示されます。
画面を下にスクロールさせ、改行が入っている
ことを確認してください。
パイプラインのステータス確認
 「CI/CD」から「パイプライン」をクリック
 ステータスが「実行中」であることを確認
28
左のナビゲーションの「CI/CD」から
「パイプライン」をクリックします。
パイプライン画面になりましたら、ステータスが
「実行中」であることを確認してください。
パイプラインの繋がりとジョブの確認
 「実行中」または「# 数値」をクリック
 パイプラインを確認
29
ステータスの「実行中」かパイプラインの
「# 数値」をクリックします。
今回実行しているパイプラインの繋がりと
ジョブが表示されます。
or
(参考)ステータスについて
 青いタイマーは「実行中」です
 緑色のチェックマークは「完了」になります
 グレーの丸は「未実行」です
30
実行中の確認
 「実行中」のものをクリック
 内容を確認
31
いずれか「実行中」のものをクリックします。 黒い画面にテキストメッセージが表示され、
実行中であることが確認できます。
1つのジョブが実行される様子
 gitレポジトリと実行時のディレクトリ
32
リポジトリ
実行時のリポジトリ
コンテナがpull
されて実行
.gitlab-ci.yamlに
書かれているscript
リポジトリの中身
今回の.gitlab-ci.yamlの流れ
 JHipsterで.gitlab-ci.yamlを生成する
jhipsterで生成するコマンド
 生成された.gitlab-ci.yamlをベースにCIパイプラインを
作成
33
jhipster ci-cd autoconfigure-gitlab
before_sc
ript
maven
compile
maven
test
maven
test
maven
docker
build
docker
push
今回の.gitlab-ci.yaml全体像
その他のCIツールのオプション
autoconfigure-travis # Travis
autoconfigure-jenkins # Jenkins
autoconfigure-azure # Azure
Container
Registry
実際のYAMLファイル https://gitlab.com/stylez-co-jp/jhipster-hands-on-example/blob/master/.gitlab-ci.yml
push
.gitlab-ci.yamlの制御構造(only/except)
 onlyの基本
 ここで指定のブランチ名、タグ名がgit pushされた時に実行す
る
 exceptの基本
 ここで指定のブランチ名、タグ名がgit pushされた時には実行
しない
 共通ルール
 正規表現での指定も可能(RE2なので注意)
 branches、tags、api等のgit名、サービス名での実行指定も可
能
 その他の指定の仕方
 only:refs/except:refs : 指定のgit refの時
 only:variables/except:variables : 指定の変数があった時 34
job:
# use regexp
only:
- /^issue-.*$/
- dev
# use special keyword
except:
- master
サンプル
ステージ間でのファイルのやり取り(artifactsとcache)
 artifacts
 ステージ間のジョブとジョブでのファイルのやり取り
 コンパイルした成果物は、artifactsを使う
 artifactsを使うと指定部分が必ずGitLabにアップロードされる
 パイプライン終了後もGitLabから参照したい場合も、artifactsを利用する
 cacheの使い道
 プロジェクト(パイプライン)で一時的にインターネットからダウンロードされ
るファイルをジョブ間でキャッシュとして共有し高速化するために使う
 キャッシュの存在は保証はされていない
 保証されない理由は、キャッシュはRunnerホスト内でのみ共有する仕組みで
別のRancherホストで動いた場合には利用できないから
 保証されていないため、before_scriptと組み合わせて使うのを推奨
35
artifactsによるジョブ間のファイルの受け渡し
 ジョブは個別のコンテナで実行され、成果物はartifactsで受け渡す
36
コンテナX コンテナY
実行順序
コンテナは
実行後に破棄 コンテナは
実行後に破棄
ソースコード
ソースコード ソースコード
成果物
成果物
成果物
GitLab
成果物を
アップロード
成果物を自動
ダウンロード
script
script
stage-a(Job-a) stage-b(Job-b)
保存期間を
過ぎると削除
git clone
GitLab.comでのPipeline制限
 無料版で利用できる時間
 使える時間は、1ヶ月2000分まで
 利用時間の確認方法
37
設定をクリック
パイプラインのクオータをクリック
パイプラインの毎の利用時間
パイプラインの全体の利用時間
クリック
GitLabRunnerとGitLabPipeline、GitLabレジストリの解説
38
Gitlab.com上でのCI/CD設定概要
 gitlab-ci.ymlファイルとCI/CD画面以外の重要項目を解説します
 3つの注意するべき点を説明します
39
左サイドバー → 設定 → CI/CDをクリック CI/CDの動作を設定する画面
各種設定項目
 一般のパイプライン
 Auto DevOPS
 Runner
 Variables
 パイプラインのトリガー
40
「一般のパイプライン」はパイプラインに関する一般的な設定を行います
GitLab側で必要と考えているDevOpsの作業を自動的に実行してくれる機能
パイプラインの実行に必要なRunnerプロセスに関する設定を行う場所
このRunnerは、.gitlab-ci.yamlで書かれたジョブを実行するプロセスになります
Runnerでジョブを実行するときに利用する環境変数を設定する場所
パイプライン実行の契機は、基本的にGitLab.comへの操作ですが、外部からAPI
で呼び出すことによりパイプラインを実行することもできる設定
一般のパイプライン
 Git strategy for pipelines
 タイムアウト
 カスタムCI configパス
41
ソースコードを取得する際のコマンドを選択できる設定
・git clone: 毎回全てのソースコードをダウンロード
・git fetch: 既存コードとの差分だけを取得
ジョブ全体のタイムアウト時間。設定値以上の時間がかかる場合はfailとなる
リポジトリ内にある.gitlab-ci.yamlの場所を指定します
デフォルト以外にgitlab-ci.ymlが存在する場合にパスを記入
ファイル名も変更可能
一般のパイプライン - 2
 公開パイプライン
 Auto-cancel redundant, pending pipelines
 テストカバレッジ解析
42
ジョブで生成したファイルなどをダウンロードできるようにするか
否かを設定できる機能(対象ファイルはコンパイル後のファイルなど)
HEADブランチ以外でパイプラインが重複した場合に古いジョブを
自動的に停止。複数ジョブが起動した場合に適用される
カバレッジログを取得してテストのカバレッジの割合を取得する機能
一般のパイプライン - 3
 Pipline status
 Coverage report
43
パイプラインの状況を表示する機能
成功すれば「passed」、どこかで失敗していたら「fail」で表示
カバレッジの状態を表示する機能
カバレッジ解析の結果を画像として表示する
Auto DevOps
 Auto DevOps
44
Auto DevOpsはGitLabが規定するDevOpsのやり方に沿り自動
的にパイプラインを実行してくれる機能
Auto DevOpsにより、ビルドからコードのテスト、チェック
、アプリのレビューまで自動的に進行する事が可能
Runner
 Runnerの概要
 利用可能な共有 Runner
45
オンプレで動かす場合は、別途自分でRunnerを準備する必要がありま
すが、GitLab.comでは他のユーザーと共有する共有Runnerが自動的に
割りあてらるため、特別な設定が必要なくすぐに利用可能
オレンジ枠に割り当てられた共有Runnerが表示される
オンプレミス上のGitlabの場合は管理者からの設定が必要なため、共有
Runnerの利用が必要な場合は事前に問い合わせる
* gitlab.com上であっても自前のRunnerを設定することが可能
Variables
46
Runnerでジョブを実行するときに利用する環境変数を設定する
ジョブ実行時に値を表示しない「Masked」がデフォルト(オレンジ枠の部分をクリックで切り替え可能)
保護をonにすると、保護ブランチ、タグ上でしか利用されない環境変数になる
 Variablesの内容
GitLab CI/CD実行時の環境変数
$ env
CI_BUILD_ID=12866
CI_SERVER_VERSION_PATCH=7
CI_SERVER_REVISION=93e3215
CI_COMMIT_SHORT_SHA=66db292b
GITLAB_USER_LOGIN=t-yano
CI_BUILD_REF=66db292be13a6738dfa472aeaf25a
ac0bcb25bc5
CI=true
CI_PROJECT_NAME=test-gitlab-repo
CI_RUNNER_REVISION=8bb608ff
HOSTNAME=runner-1e3e3c11-project-410-
concurrent-0
CI_JOB_STAGE=check
CI_COMMIT_DESCRIPTION=
CI_SERVER_VERSION=11.9.7
SHLVL=2
HOME=/root
OLDPWD=/
CI_JOB_ID=12866
CI_COMMIT_REF_NAME=master
CI_PIPELINE_SOURCE=push
CI_RUNNER_VERSION=11.7.0
CI_SERVER_VERSION_MAJOR=11
CI_BUILD_TOKEN=xxxxxxxxxxxxxxxxxxxx
CI_REGISTRY_PASSWORD=xxxxxxxxxxxxxxxxxxx
x
GITLAB_FEATURES=
CI_PROJECT_ID=410
CI_REGISTRY_IMAGE=registry.stylez.co.jp/t-
yano/test-gitlab-repo
GITLAB_CI=true
CI_COMMIT_SHA=66db292be13a6738dfa472aeaf2
5aac0bcb25bc5
CI_REGISTRY_USER=gitlab-ci-token
CI_PROJECT_DIR=/builds/t-yano/test-gitlab-repo
CI_PROJECT_PATH=t-yano/test-gitlab-repo
CI_PROJECT_NAMESPACE=t-yano
CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
CI_SERVER_NAME=GitLab
CI_NODE_TOTAL=1
CI_PIPELINE_URL=https://gitlab.stylez.co.jp/t-
yano/test-gitlab-repo/pipelines/4829
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
sbin:/bin
CI_SERVER_VERSION_MINOR=9
CI_RUNNER_DESCRIPTION=gitlab-runner-03
CI_BUILD_REF_SLUG=master
CI_PROJECT_VISIBILITY=private
CI_COMMIT_TITLE=beforeとafter scriptを削除
GITLAB_USER_EMAIL=tetsuro.yano@stylez.co.jp
CI_SERVER=yes
CI_BUILD_BEFORE_SHA=67295bd87b1ce237dd0f
698b434816f36a16f4ce
CI_PAGES_URL=https://t-
yano.pages.stylez.co.jp/test-gitlab-repo
FF_K8S_USE_ENTRYPOINT_OVER_COMMAND=t
rue
CI_PAGES_DOMAIN=pages.stylez.co.jp
CI_REPOSITORY_URL=https://gitlab-ci-
token:xxxxxxxxxxxxxxxxxxxx@gitlab.stylez.co.jp/t-
yano/test-gitlab-repo.git
CI_RUNNER_ID=6
CI_REGISTRY=registry.stylez.co.jp
CI_API_V4_URL=https://gitlab.stylez.co.jp/api/v4
GITLAB_USER_NAME=YANO Tetsurou
CI_PIPELINE_IID=12
CI_JOB_URL=https://gitlab.stylez.co.jp/t-yano/test-
gitlab-repo/-/jobs/12866
CI_BUILD_NAME=check
CI_RUNNER_EXECUTABLE_ARCH=linux/amd64
CI_COMMIT_REF_SLUG=master
CI_DISPOSABLE_ENVIRONMENT=true
PWD=/builds/t-yano/test-gitlab-repo
CI_RUNNER_TAGS=
CI_SERVER_TLS_CA_FILE=/builds/t-yano/test-
gitlab-repo.tmp/CI_SERVER_TLS_CA_FILE
CI_PIPELINE_ID=4829
CI_COMMIT_BEFORE_SHA=67295bd87b1ce237dd
0f698b434816f36a16f4ce
CI_BUILD_REF_NAME=master
CI_PROJECT_PATH_SLUG=t-yano-test-gitlab-repo
CI_PROJECT_URL=https://gitlab.stylez.co.jp/t-
yano/test-gitlab-repo
CI_CONFIG_PATH=.gitlab-ci.yml
CI_BUILD_STAGE=check
CI_COMMIT_MESSAGE=beforeとafter scriptを削除
GITLAB_USER_ID=4
CI_JOB_NAME=check 47
 自動的にCI_xxxxの環境変数がセットされる
GitLab CI/CD Variables を翻訳しました。 - Qiita
https://qiita.com/ynott/items/4c5085b4cd6221bb71c5
GitLab CI/CDの画面解説
 ダッシュボード
 ジョブ詳細
48
メインカラムにジョブの一覧が表示される(ダッシュボード)
各ジョブの実行状態が表示されている
パイプライン中のジョブを1つずつ詳細に表示している
スケジュール画面
 スケジュールとは
 スケジュール設定
49
イベントやトリガー契機でパイプラインを実行するのではなく
、時間でパイプラインを実行する。
実行の時間指定方法は、cron構文で行い、タイムゾーンとブラ
ンチの指定、環境変数も設定が可能
新規スケジュールをクリック →
・パイプラインの説明
・タイムゾーン
・実行パターン(CRON形式での指定)
・ターゲットブランチ
・変数
などを指定し、スケジュール実行が可能
スケジュールが設定されていた場合表示される
レジストリ
50
CI/CDで使用するDocker イメージを格納できる
機能
現在保存されているコンテナイメージついての
情報を確認できる イメージ情報
クリックで展開
リンクになっているためアイコンをクリックす
るとimageのURLをコピー可
コンテナイメージ取得方法の解説
 Container Registry とは
GitLab Container Registry
51
Docker Container Registry
 Docker Container Registryとは?
 Dockerイメージを保存する場所(docker pushして送信する先)
 Dockerイメージをプライベートに管理する(有料ではDocker Hubでも可能)
 Dockerイメージを配布管理する
52
Images Registry
Container
GitLab Container Registry
 GitLab Container Registryとは?
 Docker Container Registryと同じもので、GitLabに統合されている
 dockerコマンドで利用できる(docker loginが必要)
 GitLabのアカウントで認証する
 GitLabパイプラインの中から使うと認証は楽に統合できる
 プロジェクト単位でPublic、Private設定が可能
 その他の機能はDocker Container Registryと同じ
 GitLab Container Registryにpushする場合は、docker imageにContainerレジス
トリのタグをつけること
53
レジストリ
54
CI/CDで使用するDocker イメージを格納できる
機能
現在保存されているコンテナイメージついての
情報を確認できる イメージ情報
クリックで展開
リンクになっているためアイコンをクリックす
るとimageのURLをコピー可
コンテナイメージ取得方法の解説
 Container Registry とは
GitLab CI/CDパイプライン設定リファレンスについて
 より詳細なGitLab CI/CDパイプラインの.gitlab-ci.yamlの書き方につい
ては、以下を参照してください。
https://gitlab.com/stylez-co-jp/gitlab-ce/tree/dev-v12.0.3-ja.1/doc-
ja/ci/yaml
55
まとめ
 GitLab CI/CDパイプラインは、Jenkinsのような自動ビルドをするため
の機能がある
 設定方法は、.gitlab-ci.ymlファイルをGitリポジトリに設置することで自
動的に実行される
 .gitlab-ci.ymlには構文があり、複数のステージとジョブを定義する
 ジョブは、GitLab Runnerというコンテナー内のシェルで実行される
 ビルド成果物は、artifactsとして保存され、次のジョブに利用すること
もできる
 環境変数を指定することによりジョブの挙動を変更することができる
56

More Related Content

What's hot

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る GitYouhei Nitta
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!VirtualTech Japan Inc./Begi.net Inc.
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 

What's hot (20)

いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!「DevOps with GitLab」でDevOps環境をセットアップしてみた!
「DevOps with GitLab」でDevOps環境をセットアップしてみた!
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 

Similar to GitLab CI/CD パイプライン

2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」Taisuke Inoue
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
GitHub勉強会
GitHub勉強会GitHub勉強会
GitHub勉強会ArusuDev
 
Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Tomoaki Sawada
 
20120324 git training
20120324 git training20120324 git training
20120324 git trainingTakeshi AKIMA
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理裕貴 荒井
 
Git講習会
Git講習会Git講習会
Git講習会galluda
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Makoto Kawano
 
バージョン管理
バージョン管理バージョン管理
バージョン管理Misa Kondo
 
181220_ Visual Studio 2019 (Connect 2018)
181220_ Visual Studio 2019 (Connect 2018)181220_ Visual Studio 2019 (Connect 2018)
181220_ Visual Studio 2019 (Connect 2018)Madoka Chiyoda
 
2015-11-26 BitVisor Summit 4(公開版)
2015-11-26 BitVisor Summit 4(公開版)2015-11-26 BitVisor Summit 4(公開版)
2015-11-26 BitVisor Summit 4(公開版)Takahiro Shinagawa
 
日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build BitbucketShunsuke (Sean) Osawa
 
ちょっと地味なビルドとリリースの話
ちょっと地味なビルドとリリースの話ちょっと地味なビルドとリリースの話
ちょっと地味なビルドとリリースの話techscore
 
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Tadahiro Ishisaka
 

Similar to GitLab CI/CD パイプライン (20)

2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
GitHub勉強会
GitHub勉強会GitHub勉強会
GitHub勉強会
 
Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理GitLab で実現する Ansible コードの管理
GitLab で実現する Ansible コードの管理
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
Git講習会
Git講習会Git講習会
Git講習会
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
 
バージョン管理
バージョン管理バージョン管理
バージョン管理
 
Git地図
Git地図Git地図
Git地図
 
181220_ Visual Studio 2019 (Connect 2018)
181220_ Visual Studio 2019 (Connect 2018)181220_ Visual Studio 2019 (Connect 2018)
181220_ Visual Studio 2019 (Connect 2018)
 
2015-11-26 BitVisor Summit 4(公開版)
2015-11-26 BitVisor Summit 4(公開版)2015-11-26 BitVisor Summit 4(公開版)
2015-11-26 BitVisor Summit 4(公開版)
 
日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket
 
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~ Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
 
ちょっと地味なビルドとリリースの話
ちょっと地味なビルドとリリースの話ちょっと地味なビルドとリリースの話
ちょっと地味なビルドとリリースの話
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
 

More from Tetsurou Yano

Container storage for DeepLearning
Container storage for DeepLearningContainer storage for DeepLearning
Container storage for DeepLearningTetsurou Yano
 
軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介Tetsurou Yano
 
Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Tetsurou Yano
 
Nextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてNextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてTetsurou Yano
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはTetsurou Yano
 
Kubernetes で変わるインフラ
Kubernetes で変わるインフラKubernetes で変わるインフラ
Kubernetes で変わるインフラTetsurou Yano
 
Pachyderm Introduction
Pachyderm IntroductionPachyderm Introduction
Pachyderm IntroductionTetsurou Yano
 
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)Tetsurou Yano
 
Rancher Charts Introduction
Rancher Charts IntroductionRancher Charts Introduction
Rancher Charts IntroductionTetsurou Yano
 
Rancher kubernetes storages
Rancher kubernetes storagesRancher kubernetes storages
Rancher kubernetes storagesTetsurou Yano
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Tetsurou Yano
 
Rancher enterpriseについて
Rancher enterpriseについてRancher enterpriseについて
Rancher enterpriseについてTetsurou Yano
 
Rancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryRancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryTetsurou Yano
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Tetsurou Yano
 
rancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズrancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズTetsurou Yano
 
Rancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeRancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeTetsurou Yano
 
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherRancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherTetsurou Yano
 
GitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryGitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryTetsurou Yano
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Tetsurou Yano
 
Rancher LT Talk 20170126
Rancher LT Talk 20170126Rancher LT Talk 20170126
Rancher LT Talk 20170126Tetsurou Yano
 

More from Tetsurou Yano (20)

Container storage for DeepLearning
Container storage for DeepLearningContainer storage for DeepLearning
Container storage for DeepLearning
 
軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介軽量Kubernetes環境 K3Sのご紹介
軽量Kubernetes環境 K3Sのご紹介
 
Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能Nextcloud 16,15の新機能とOnline Office機能
Nextcloud 16,15の新機能とOnline Office機能
 
Nextcloud と Libreoffice online について
Nextcloud と Libreoffice online についてNextcloud と Libreoffice online について
Nextcloud と Libreoffice online について
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとは
 
Kubernetes で変わるインフラ
Kubernetes で変わるインフラKubernetes で変わるインフラ
Kubernetes で変わるインフラ
 
Pachyderm Introduction
Pachyderm IntroductionPachyderm Introduction
Pachyderm Introduction
 
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
 
Rancher Charts Introduction
Rancher Charts IntroductionRancher Charts Introduction
Rancher Charts Introduction
 
Rancher kubernetes storages
Rancher kubernetes storagesRancher kubernetes storages
Rancher kubernetes storages
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
 
Rancher enterpriseについて
Rancher enterpriseについてRancher enterpriseについて
Rancher enterpriseについて
 
Rancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summaryRancher jp1周年振り返り anniversary meetup slide summary
Rancher jp1周年振り返り anniversary meetup slide summary
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
rancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズrancherによるdev opsの実際_スタイルズ
rancherによるdev opsの実際_スタイルズ
 
Rancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher HomeRancher Meetup Tokyo #7 Rancher Home
Rancher Meetup Tokyo #7 Rancher Home
 
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancherRancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
Rancherで簡単に作るk8s環境 Kubernetes meetup tokyo #4 LT kubernetes on rancher
 
GitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registryGitLab Meetup Tokyo#2 Rancher gitlab container registry
GitLab Meetup Tokyo#2 Rancher gitlab container registry
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
 
Rancher LT Talk 20170126
Rancher LT Talk 20170126Rancher LT Talk 20170126
Rancher LT Talk 20170126
 

GitLab CI/CD パイプライン