Continuous Testing と CI GitHub アクション
概要
Datadog CI Synthetics コマンドを使って、GitHub のワークフローから Synthetic テストをトリガーすることができます。
セットアップ
始めるには
- Datadog API キーとアプリケーションキーを GitHub リポジトリにシークレットとして追加します。詳しくは、API とアプリケーションキーを参照してください。
- 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
参考資料
お役に立つドキュメント、リンクや記事: