配送ワークフローにおけるテストパイプラインの解凍



テストプロジェクトの別のリポジトリを実行する場合、またはコードベースのメインアプリケーションに関連しないテストまたはその他のプロジェクトを持っている場合、または単にGitLabまたは関連するCDプラットフォームでプロジェクトのテストパイプラインを設定する方法についてもう少し知りたいだけです.私たちはあなたのためにこの記事をまとめましたGotPhotosでそれをする方法のビュースタディ

Often than not you’d have any of the cases above where you’d want a
modular test suite that’s accessible from different teams across your
CI tool. In this article, I’ll go through some familiar steps that
goes beyond having test schedules and pipeline jobs; being two of the
most common ways to test in a deployment process.


私はGitlabを主な例として使用しますが、ここでのアプローチはかなりのものとなります.YMLサポートワークフローと任意のバージョン管理システム、Web、Javascript、クラウドベースのセットアップで.
目標を設定しましょう
  • は、要求プロジェクトからソースプロジェクト
  • へのテストへのアクセスを可能にします
  • 報告スラック
  • を介してすべてのテストステータスを報告する
  • レポートのビジュアルテスト結果
  • 我々はここで最初の2ゴールに集中して、もう一つの「チケット」で第3を終えます.

    ゴール1 :要求プロジェクトからソースプロジェクトへのテストへのアクセスを有効にする
    チーム「ハト」が他のアプリケーションコードを管理する間、あなたの2つのチーム(主にあなたの源と目標チームとチーム「テスター」)があなたのテストコードを管理すると仮定しましょう.
    チーム「テスター」で:理想的に、あなたのテストは、実行するあなたのパイプライン環境で必要な値を含むかもしれないか、含まないコマンドを通して引き起こされることができます.ワークフローは、プロジェクト内のフォルダーでテストコードが用意されており、すべてのテストとその依存関係をインストールして実行するために必要なパッケージが含まれています.
    あなたのVCSの異なるコードベースでチーム「ハト」を持ってきましょう.アイデアはかなり簡単です、鳩は、テストステージを含む配信ワークフローを実装し、これはあなたのチームTESTARSプロジェクトでテストを起動し、チームの鳩に結果を利用できるようになります.
    プロジェクトがどのように見えるかを示す図です.
    鳩海綿静脈気象研
    test:
    variables:
    ENVIRONMENT: staging
    REQUESTING_TEAM: Pigeons
    TEST_COMMAND: npx...
    stage: deploy
    trigger: <test_project_repository_here>
    
    testarspipeline気象研
    .job_template:
    image:
    stage: test
    only:
    refs:
    - master
    - pipelines
    script:
    - $(npm bin)/${TEST_COMMAND}
    - bash ./notify.sh "$ENVIRONMENT" "$REQUESTING_TEAM" "$TEST_COMMAND"
    
    ここで注意するいくつかのこと
  • TestarSpipLineはカスタムコマンドを必要とします.これは、さまざまなチームがワークフロー
  • に応じて異なるコマンドを持つことができますので、本当にテストを開くことができます
  • Testarspipelineはまた、“パイプライン”タグにテストトリガソースを開きます.これはパイプラインプロセスによってトリガされたときにテストパイプラインが動作することを保証します.
  • pigeonspipelineは、トリガされたテストプロジェクトに渡されるステージで環境変数を提供することでテストを起動します.
  • そして、あなたはそれを持って、ボブのおじさん?まだです.

    ゴール2:スラックを通してすべてのテストステータスを報告してください
    このワークフローのテストトリガーは最終的に加入者のより広い範囲を持っています、これはよいです、しかし、特に機能的なチームで働くとき、あなたは活動に目を向けたいです.スラックは、このような目的のためのセットアップ着信フックを許可します.テストパイプラインにステップを追加することで、あらかじめ定義されたスラックチャネルにメッセージを送信し、テストパイプラインが起動されたときにあなたとチームが知っていることを確認できます.
    書きましょう.
    スラックアプリをセットして、入っているウェブフックのためにその支持を提供する
  • は、
  • に報告するスラックチャンネルを作成します
  • あなたのスラックチャンネルのためのウェッブフックを作成します
  • あなたの通知
  • を送るために、bashスクリプトを書きます
    スラックのアプリを設定するには、ステップは全く新しいスラックチャンネルを設定するためのSlack API Documentationと同じケースでスラックAPI UIを使用して、全くまっすぐにしているか、既存のものを再利用したいかもしれません.入ってくるwebhookを作成することもスラックAPIを通してされることができます、そして、あなたが必要とするすべてはあなたのwebhook URLアドレスです
    https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
    ここで、あなたは、あなたのtestarspipelineファイルの最後の行を満たすために、bashスクリプトを設定する必要があります.現在、私たちは、鳩を通して提供される3つの環境変数へのアクセスを持っていることを覚えておいてください、これはtestarspipelineを通してカスタムシェルスクリプトに渡されます、そして、我々はあなたの変数とあなたが加えたどんな他のデータも含んでいる単純であるかフォーマットされたペイロードを作ります、そして、最終的に、カール要求を作ります.
    通知する.sh
    #!/bin/bash
    SLACK_PAY_LOAD="
    {
        'text': '$REQUESTING_TEAM triggered $TEST_COMMAND on $ENVIRONMENT environment'
    }
    "
    curl -X POST -H 'Content-type: application/json' --data "${SLACK_PAY_LOAD}" https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
    
    通知に注意するいくつかのこと.shファイル:
  • 変数にアクセスするには、単一引用符を使用する必要があります.ここで連結を勧める.
  • お客様のペイロードURLのマスキングを検討してください.

  • 手順3で何をするかについての考えがあります?我々は、サイプレステストイベントを使用してAPIを有効にしたダッシュボードを構築している.

    If you found this interesting, you'd love working with us at GotPhoto
    where you have the opportunity to build with an amazing team. Consider
    joining us at GotPhoto