GitHub Actions OpenTelemetry v0.7.0 リリース pushイベント対応で柔軟性向上

Claude Code最高ですね。。。。今まで対応できていなかった大型機能に着手してみました。また、それに伴い単体テストの拡充、および統合テストの追加を行いました。

github.com

pushイベントに対応

従来のworkflow_runイベントに加えて、pushイベントにも対応し、多様なユースケースに柔軟に対応できるようになりました。

以前は、workflow_runイベントでの監視のみに制限されていましたが、Issue #106でユーザから以下のフィードバックがありました。

  • ユーザは100以上のリポジトリで再利用可能ワークフローを使用している
  • 新しいworkflow_runワークフローを全リポジトリに導入するのは大きな作業負荷になる
  • 再利用可能ワークフローの最後のステップとしてOpenTelemetry GitHub Actionsを追加できるようにしてほしい

2つの監視アプローチを選択可能

v0.7.0では、用途に応じて2つの監視アプローチを選択できるようになりました。

Option 1: 他のワークフローを監視(従来の方法)

完了したワークフローをworkflow_runイベントで監視:

name: Send Telemetry after Other Workflow

on:
  workflow_run:
    # 監視対象のワークフローを指定
    workflows:
      - Check Transpiled JavaScript
      - Continuous Integration
      - CodeQL
      - Lint Codebase
    # 完了したワークフローからメトリクスとトレースを作成
    types:
      - completed

jobs:
  send-telemetry:
    name: Send CI Telemetry
    runs-on: ubuntu-latest
    steps:
      - name: Run
        id: run
        uses: paper2/github-actions-opentelemetry@v0.6.0
        ...

Option 2: 現在のワークフローを監視(新機能)

現在のワークフローを最後のステップとして監視:

name: CI with Built-in Telemetry

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  # 監視対象のジョブ
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run build

  # 他のジョブ完了後にテレメトリジョブを実行
  telemetry:
    runs-on: ubuntu-latest
    needs: [build] # 他のジョブの完了を待つ
    if: always() # 他のジョブが失敗しても実行
    steps:
      # 同じジョブの中でテレメトリを送信できるようになった
      - name: Send Telemetry
        uses: paper2/github-actions-opentelemetry@v0.7.0
        ...

まとめ

GitHub Actions OpenTelemetry v0.7.0では従来のworkflow_runアプローチに加えて、pushベースの統合型アプローチを選択できるようになり、組織やプロジェクトの多様な要件に対応可能になりました。