gitlabの基本的なCIパイプラインを設定する



このチュートリアルでは、gitlabの基本的なCI (連続的な統合)パイプラインを設定します.
このポストの意図はちょうど基本に触れることです、そして、我々はセットアップAです.
この例のコードはmy gitlab.com repo .

関連記事




  • どうしましょうか。


    これは、マスターブランチにコミットがあるたびに、.gitlab-ci.yml が終了した場合にのみ実行される.
    仕事は実行されるgitlab runners これはGiltabでホストされています.注意することは重要ですすべてのジョブは互いに独立して実行されます.

    基本パイプライン


    このパイプラインでは、2つの基本的なジョブがあります.
    ビルド
    $ echo "this is building"
    $ hostname
    $ mkdir builds
    $ touch builds/data.txt
    $ echo "true" > builds/data.txt
    
    テスト
    $ echo "this is testing"
    $ hostname
    $ test -f builds/data.txt
    $ grep "true" builds/data.txt
    

    パイプラインを設定します。


    私のワークスペースにクローンした新しく作成されたリポジトリから、設定を作成します.
    $ touch .gitlab-ci.yml
    
    上記のYAMLファイルの設定
    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "false" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    

    説明

  • このパイプラインの2段階を定義します
  • 各ジョブのコンテキスト、ステージ、スクリプト(ランナーのライフサイクルで実行されるコマンド)とアーティファクトを提供します.
  • 私のパイプラインが失敗するように故意に間違いをしたことに注意してください.私は、コンテンツに「偽」を入力しましたbuilds/data.txt ビルドジョブとgrepのテストジョブの単語“true”のため、このジョブは失敗します.

    Gitlabへプッシュ


    設定ファイルにコンテンツを保存、追加、コミット、およびマスターにプッシュします.
    $ git add .gitlab-ci.yml
    $ git commit -m "add gitlab-ci config"
    $ git push origin master
    

    GITLABパイプライン


    GITLAB UIから、CI/CD ->パイプラインに向かうなら、あなたのパイプラインを実行してください.

    パイプラインIDを選択すると、パイプラインで使用可能なジョブが表示されます.

    ジョブを選択し、ジョブの概要を参照してください.この時点でビルドジョブが完了し、テストジョブが実行中であることがわかります.

    その直後にテストジョブの状態が失敗し、ジョブIDを選択し、出力を見る必要があります.

    上記の出力から、それは非常に便利です新しい問題を作成するためのリンクを提供します.

    パイプライン設定を修正


    前に進んで、内容を変えましょう.gitlab-ci.yml マスターへの設定とプッシュ
    $ vim .gitlab-ci.yml
    
    ライン12を変更する- echo "false" > builds/data.txt to - echo "true" > builds/data.txt , ファイルの完全な内容:
    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "true" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    
    コミットとマスターへのプッシュ
    $ git add .gitlab-ci.yml
    $ git commit -m "change content in script"
    $ git push origin master
    
    パイプラインに向かうと、パイプラインが動いているのがわかります.

    大成功


    パイプラインIDを選択し、ジョブを選択するには、両方のジョブが成功しました.

    テストジョブのジョブIDを選択し、出力からジョブが成功したことがわかります.

    この出力から、両方のジョブから確認することもできます.各ジョブはstdoutに返されたホスト名が異なっていたので、別のランナーで実行されます.

    資源


    これは、Gitlab CIを実証する本当に基本的な例でした.このポストへの関連リソース
  • Gitlab CI/CD Docs
  • More of my Gitlab Posts
  • ありがとう


    あなたが何を考えるかについて知らせてください.あなたが私の内容が好きならば、私を訪問してくださいruan.dev またはTwitterで私に従ってください