Synthetics と CI GitHub アクション

概要

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

セットアップ

始めるには

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

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

シンプルなワークフロー

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

name: Run Synthetics tests using the test public IDs
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Run Datadog Synthetics tests
        uses: DataDog/synthetics-ci-github-action@v0.3.1
        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 Synthetics tests using an existing synthetics.json file
jobs:
  e2e_testing:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Run Datadog Synthetics tests
        uses: DataDog/synthetics-ci-github-action@v0.3.1
        with:
          api_key: ${{secrets.DD_API_KEY}}
          app_key: ${{secrets.DD_APP_KEY}}

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

複雑なワークフロー

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

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

config_path によるグローバル構成オーバーライドを使用したワークフロー例

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

入力

名前タイプ要件説明
api_key文字列必須Datadog API キー。このキーは Datadog 組織によって作成され、シークレットとして保存する必要があります。デフォルト: なし。
app_key文字列必須Datadog アプリケーションキー。このキーは Datadog 組織によって作成され、シークレットとして保存する必要があります。デフォルト: なし。
public_ids文字列オプショントリガーしたい Synthetic テストの公開IDをカンマで区切った文字列。値を指定しない場合は、synthetics.json という名前のファイルを検索します。デフォルト: なし。
test_search_query文字列オプション検索クエリに対応するトリガーテスト。デフォルト: なし。
subdomain文字列オプションDatadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。Datadog にアクセスするための URL が myorg.datadoghq.com である場合、サブドメインの値は myorg に設定する必要があります。デフォルト: app
files文字列オプションSynthetic テストの構成ファイルを検出するための Glob パターン。デフォルト: {,!(node_modules)/**/}*.synthetics.json
datadog_site文字列オプションDatadog のサイト。EU のユーザーは datadoghq.eu に設定します。例: datadoghq.com または datadoghq.euデフォルト: datadoghq.com
config_path文字列オプショングローバル JSON 構成は、テストを起動するときに使用されます。詳細は構成例を参照してください。デフォルト: datadog-ci.json

開発



yarn jest

# プロジェクト構築
yarn build

# プロジェクトとその依存関係をリリース用にコンパイルする
yarn package

プロセスのリリース

新しいバージョンの synthetics-ci-github-action をリリースするには:

  1. バージョンアップのための新しいブランチを作成します。
  2. パッケージのバージョンを更新するには、変更の性質に応じて yarn version [--patch|--minor|--major] を使用します。
    • 何をインクリメントする必要があるかは、Semantic Versioning を参照してください。
    • リリース前にプロジェクトを再構築してパッケージ化します。README.md のサンプルバージョンを更新するのを忘れないでください。
  3. ブランチをリリースタグ (git push --tags) と一緒に上流 (GitHub) にプッシュします。
    • 説明で紹介した変更点を含むプルリクエストを作成します。このプルリクエストには少なくとも 1 つの承認が必要です。
  4. プルリクエストをマージします。
  5. タグページから GitHub Release を作成し、変更点を記述します。

⚠️ リリースバージョンが期待される形式 vX.X.X に従っていることを確認します。

リリースが作成されると、新しいバージョンの Github Action がワークフローとして利用できるようになります。

その他の参考資料

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