Continuous Testing と CI GitHub アクション

概要

GitHub Release

Datadog CI Synthetics コマンドを使って、GitHub のワークフローから Synthetic テストをトリガーすることができます。

セットアップ

始めるには

  1. Datadog API キーとアプリケーションキーを GitHub リポジトリにシークレットとして追加します。詳しくは、API とアプリケーションキーを参照してください。
  2. GitHub のワークフローで、DataDog/synthetics-ci-github-action を使用します。

ワークフローは、シンプルまたは複雑にすることができます。

シンプルなワークフロー

公開 ID を使用したワークフロー例

name: Run Synthetic tests using the test public IDs
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v1.11.0
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}
          public_ids: 'abc-d3f-ghi, jkl-mn0-pqr'

既存の synthetics.json ファイルを使用したワークフロー例

name: Run Synthetic tests using an existing synthetics.json file
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v1.11.0
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}

テストファイルの例としては、この test.synthetics.json ファイルを参照してください。

: デフォルトでは、このワークフローは {,!(node_modules)/**/}*.synthetics.json ファイルにリストされたすべてのテストを実行します (node_modules フォルダ内のものを除き、.synthetics.json で終わるすべてのファイルです)。また、public_id を指定するか、検索クエリを使って Synthetic テストのリストをトリガーすることができます。

複雑なワークフロー

test_search_query を使用したワークフロー例

name: Run Synthetic tests by test tag
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v1.11.0
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}
          test_search_query: 'tag:e2e-tests'

テスト検索クエリと変数のオーバーライドを使用したワークフロー例

name: Run Synthetic tests using search query
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v1.11.0
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}
          test_search_query: 'tag:staging'
          variables: 'START_URL=https://staging.website.com,PASSWORD=stagingpassword'

Example workflow using a global configuration file with config_path

By default, the path to the global configuration file is datadog-ci.json. You can override this path with the config_path input.

name: Run Synthetic tests with custom config
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Run Datadog Synthetic tests
        uses: DataDog/synthetics-ci-github-action@v1.11.0
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}
          config_path: './global.config.json'

For an example of a global configuration file, see this global.config.json file.

入力

名前タイプ要件説明
api_key文字列必須Datadog API キー。このキーは Datadog 組織によって作成され、シークレットとして保存する必要があります。デフォルト: なし。
app_key文字列必須Datadog アプリケーションキー。このキーは Datadog 組織によって作成され、シークレットとして保存する必要があります。デフォルト: なし。
config_path文字列オプションテストを起動するときに使用されるグローバル JSON 構成。詳細はコンフィギュレーションファイル例を参照してください。デフォルト: datadog-ci.json
datadog_site文字列オプションデータ送信先の Datadog サイトデフォルト: datadoghq.com
fail_on_critical_errorsブール値オプションテストがトリガーされなかったり、Datadog から結果を取得できなかったりした場合に、CI ジョブを失敗させます。デフォルト: false
fail_on_missing_testsブール値オプションパブリック ID (public_ids を使用するか、テストファイルにリストされている) を持つ指定されたテストが少なくとも 1 つ実行中に見つからない場合 (例えば、プログラム上または Datadog サイトで削除された場合)、CI ジョブを失敗させます。デフォルト: false
fail_on_timeoutブール値オプション少なくとも 1 つのテストがデフォルトのテストタイムアウトを超えた場合、CI ジョブを失敗させます。デフォルト: true
files文字列オプションSynthetic テストのコンフィギュレーションファイルを検出するための Glob パターン。デフォルト: {,!(node_modules)/**/}*.synthetics.json
junit_report文字列オプションJUnit レポートを生成したい場合のファイル名。デフォルト: なし。
public_ids文字列オプショントリガーしたい Synthetic テストの公開 ID をカンマで区切ったリスト。値を指定しない場合は、synthetics.json という名前のファイルを検索します。デフォルト: なし。
polling_timeout数値オプションアクションがテスト結果のポーリングを停止するまでの時間 (ミリ秒単位)。CI レベルでは、この時間以降に完了したテスト結果は失敗とみなされます。デフォルト: 30 分。
subdomain文字列オプションDatadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。Datadog にアクセスするための URL が myorg.datadoghq.com である場合、サブドメインの値は myorg に設定する必要があります。デフォルト: app
test_search_query文字列オプション検索クエリに対応するトリガーテスト。デフォルト: なし。
tunnelブール値オプションContinuous Testing Tunnel を使用して、テストバッチを実行します。デフォルト: false
variables文字列オプションSynthetic テストに使用するグローバル変数をカンマで区切ったリスト。例: START_URL=https://example.org,MY_VARIABLE=My titleデフォルト: []

寄稿

See CONTRIBUTING.md

参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: rtrieu/product-analytics-ui-changes