初心者にやさしい入門
このチュートリアルの目標は、Gitlabのドキュメントのすべてを読むことなく、30分で人々が始めるのを助けるgitlab ci/cdの高レベルの導入を与えることです.このチュートリアルでは、gitlab ci/cdのようなCI/CDツールを使用するようになりたい初心者に向けられています.このチュートリアルでは、私は簡単にci/cdとは何か、なぜ私はgitlabのツールとどのようにCountを作成するチュートリアルで行くことを決めた上に行く
シー・シーディー
CI/CDは、連続的な統合/連続配達/連続配備のために短いです.これは、チームを構築することができますし、テストとリリースソフトウェアを高速化でリリースします.CI/CDが可能なマニュアルヒューマンヒューマンインタラクションを削除する - 生産への最終マニュアルコード展開以外のすべてを自動化する.この慣習を実行することの課題の1つは、CI/CDパイプラインを構築するのに必要な様々なツールとシステムを統合することです.たとえば、Bitbucketでコードを格納し、プライベートインフラストラクチャの自動テストスイートでテストし、アプリケーションをAWSまたはマイクロソフトAzureに配備することもできます.複数のシステムに存在する複雑なアプリケーションは、シームレスなCI/CDパイプラインを実装するすべての組織に貢献しています.
なぜgitlab ci/cd?
私は3つの理由のためにgitlab ci/cdを使います:1つのツールで完全なCI/CDパイプライン解決を構築することができて、それは速くて、それはオープンソースです.GITLAB CI/CDと同じ場所で、私はチケット、マージ要求、書き込みコードとセットアップCI/CDツールを別のアプリケーションなしで作成することができます.基本的にワンストップショップです.Gitlab CI/CDは、GitLabランナーで構築します.ランナーは、Gitlab CI APIを通して定義済みのステップを実行する仮想マシンを隔離します.このツールでは、単一のインスタンスで実行されるのと比較して、プロジェクトをより速くビルドすることができます.あなたはgitlabランナーについての詳細を学ぶことができますlink . 最後に、オープンソースなので、常にコードベースに貢献し、問題が発生したときに新しい問題を作成できます.
シナリオ
ノードがあるとしましょう.データベース内の書籍の一覧を取得するJS API.ビルド、テスト、配備の3つのフェーズでコードをプッシュするパイプラインを作成できます.パイプラインは、類似した特性によってグループ化されるステップのグループです.これらの段階でパイプラインは3つのタイプで定義されます: プロジェクトパイプライン 連続統合パイプライン パイプラインの配置 プロジェクトパイプラインでは、依存関係、実行中のプリンタ、およびコードに対応するスクリプトをインストールします.連続統合パイプラインは自動テストを実行し、コードの分散バージョンを構築します.最後に、展開パイプラインは指定されたクラウドプロバイダーと環境にコードを展開します.
つのパイプラインが実行するステップは仕事と呼ばれます.あなたがそれらの特性によって一連の仕事をグループ化するとき、それはステージと呼ばれています.ジョブはパイプラインのための基本的なビルディングブロックです.彼らはステージとステージで一緒にグループ化することができますパイプラインに一緒にグループ化することができます.ジョブ、ステージ、パイプラインの例を示します.
gitlab ci/cdの使用
gitlab ci/cdを使うには、
それでは、ビルドステージに専念しましょう.私たちはこの仕事を呼ぶつもりです
このイメージから、すべての3つのステージと仕事は、2010年の例外で引き起こされます
結論
上記の項目はGitlab CI/CDが提供できる機能の高レベルの概要です.GITLAB CI/CDは、サードパーティ製のツールとの統合にDocker画像を構築し、公開することによってコードベースの自動化の詳細な制御を持つ能力を持っています.私はこのチュートリアルが役に立つことを願っています.読書ありがとう!
.gitlab-ci.yaml
例のアプリケーションで.シー・シーディー
CI/CDは、連続的な統合/連続配達/連続配備のために短いです.これは、チームを構築することができますし、テストとリリースソフトウェアを高速化でリリースします.CI/CDが可能なマニュアルヒューマンヒューマンインタラクションを削除する - 生産への最終マニュアルコード展開以外のすべてを自動化する.この慣習を実行することの課題の1つは、CI/CDパイプラインを構築するのに必要な様々なツールとシステムを統合することです.たとえば、Bitbucketでコードを格納し、プライベートインフラストラクチャの自動テストスイートでテストし、アプリケーションをAWSまたはマイクロソフトAzureに配備することもできます.複数のシステムに存在する複雑なアプリケーションは、シームレスなCI/CDパイプラインを実装するすべての組織に貢献しています.
なぜgitlab ci/cd?
私は3つの理由のためにgitlab ci/cdを使います:1つのツールで完全なCI/CDパイプライン解決を構築することができて、それは速くて、それはオープンソースです.GITLAB CI/CDと同じ場所で、私はチケット、マージ要求、書き込みコードとセットアップCI/CDツールを別のアプリケーションなしで作成することができます.基本的にワンストップショップです.Gitlab CI/CDは、GitLabランナーで構築します.ランナーは、Gitlab CI APIを通して定義済みのステップを実行する仮想マシンを隔離します.このツールでは、単一のインスタンスで実行されるのと比較して、プロジェクトをより速くビルドすることができます.あなたはgitlabランナーについての詳細を学ぶことができますlink . 最後に、オープンソースなので、常にコードベースに貢献し、問題が発生したときに新しい問題を作成できます.
シナリオ
ノードがあるとしましょう.データベース内の書籍の一覧を取得するJS API.ビルド、テスト、配備の3つのフェーズでコードをプッシュするパイプラインを作成できます.パイプラインは、類似した特性によってグループ化されるステップのグループです.これらの段階でパイプラインは3つのタイプで定義されます:
つのパイプラインが実行するステップは仕事と呼ばれます.あなたがそれらの特性によって一連の仕事をグループ化するとき、それはステージと呼ばれています.ジョブはパイプラインのための基本的なビルディングブロックです.彼らはステージとステージで一緒にグループ化することができますパイプラインに一緒にグループ化することができます.ジョブ、ステージ、パイプラインの例を示します.
A.) Build
i. Install NPM Dependencies
ii. Run ES-Linter
iii. Run Code-Minifier
B.) Test
i. Run unit, functional and end-to-end test.
ii. Run pkg to compile Node.js application
C.) Deploy
i. Production
1.) Launch EC2 instance on AWS
ii. Staging
1.) Launch on local development server
この階層構造では、3つの構成要素は3つの異なるパイプラインと見なされます.主弾丸 -- ビルド、テスト、展開はステージであり、それらのセクションの下の各弾丸は仕事です.gitlab ci/cdにこれを壊しましょうyaml
ファイル.gitlab ci/cdの使用
gitlab ci/cdを使うには、
.gitlab-ci.yml
GitLabリポジトリ内のプロジェクトのルートで次を追加しますyaml
:image: node:10.5.0
stages:
- build
- test
- deploy
before_script:
- npm install
前に述べたように、gitlab ci/cdはランナーを使ってパイプラインを実行します.私たちは、どのオペレーティングシステムと定義済みライブラリを定義することができますimage
ディレクティブ.この例では、ノードの最新バージョンを使用します.ランナー.The stages
ディレクティブを使用すると、構成全体のステージを定義できます.ジョブは、2010年に記載された順序からベースで実行されますstages
ディレクティブ.ステージについてもっと学ぶことができるhere . The before_script
ディレクティブはすべてのジョブの前にコマンドを実行するために使用されます.それでは、ビルドステージに専念しましょう.私たちはこの仕事を呼ぶつもりです
build-min-code
. このジョブでは依存関係をインストールし、コードを管理します.我々は、使用して、このオフを開始することができますscript
ディレクティブ.The script
ディレクティブはランナー内で実行されるシェルスクリプトです.それから、私たちはこの仕事を「ビルド」ステージに割り当てるつもりです.ジョブをステージに割り当てるには、stage
ディレクティブ.build-min-code:
stage: build
script:
- npm install
- npm run minifier
今、私たちは、ビルドステージに関連した仕事を持っています.私たちのテストの仕事はrun-unit-test
そして、我々はテストを実行するために我々のAPIでNPMスクリプトを使うつもりですnpm test
.run-unit-test:
stage: test
script:
- npm run test
最後に、展開段階を処理するジョブを追加します.deploy-production
, deploy-staging
. この例では、2つの異なるジョブを展開します.これらの仕事は、我々の前の仕事と同じレイアウトを反映しますが、小さい変化で.現在、すべてのジョブを自動的に任意のコードをプッシュまたは分岐にトリガされるように設定されます.我々は、我々がコードをステージングと生産に配備するとき、それを持ちたくありません.それを防ぐためにonly
ディレクティブ.The only
ディレクティブは、ジョブの実行する分岐とタグの名前を定義します.ジョブは次のようになります.deploy-staging:
stage: deploy
script:
- npm run deploy-stage
only:
- develop
deploy-production:
stage: deploy
script:
- npm run deploy-prod
only:
- master
我々の中でdeploy-staging
仕事は、ランナーがそれを実行するだけでdevelop
ブランチアンドフォーdeploy-production
the master
枝.ここでは、コードプッシュを示す以下のスクリーンショットですmaster
枝.このイメージから、すべての3つのステージと仕事は、2010年の例外で引き起こされます
deploy-staging
コードプッシュはmaster
枝.GitLabのCI/CDは、直感的なインターフェイスがどのようなジョブとステージが実行されているエラーをどのようなビルドの中で発生している表示するために付属しています.以下は、最後のバージョンです.gitlab-ci.yaml
ファイル.あなた自身をテストしたいならば、ここにありますlink サンプルアプリケーションに.image: node:10.5.0
stages:
- build
- test
- deploy
before_script:
- npm install
build-min-code:
stage: build
script:
- npm install
- npm run minifier
run-unit-test:
stage: test
script:
- npm run test
deploy-staging:
stage: deploy
script:
- npm run deploy-stage
only:
- develop
deploy-production:
stage: deploy
script:
- npm run deploy-prod
only:
- master
結論
上記の項目はGitlab CI/CDが提供できる機能の高レベルの概要です.GITLAB CI/CDは、サードパーティ製のツールとの統合にDocker画像を構築し、公開することによってコードベースの自動化の詳細な制御を持つ能力を持っています.私はこのチュートリアルが役に立つことを願っています.読書ありがとう!
Reference
この問題について(初心者にやさしい入門), 我々は、より多くの情報をここで見つけました https://dev.to/zurihunter/beginner-friendly-introduction-to-gitlabcicd-4p5aテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol