Add conditional recipients to notification rule #256
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Reusable Integration Test Workflow | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- ready_for_review | |
- synchronize | |
- labeled | |
- unlabeled | |
branches: | |
- master | |
schedule: | |
- cron: "0 4 * * *" | |
workflow_call: | |
inputs: | |
target-branch: | |
description: 'Branch to checkout and test (defaults to the calling branch)' | |
required: false | |
type: string | |
default: '' | |
enable-status-reporting: | |
description: 'Whether to post status checks to datadog-api-spec repo' | |
required: false | |
type: boolean | |
default: false | |
status-context: | |
description: 'Context for status checks' | |
required: false | |
type: string | |
default: 'integration' | |
target-repo: | |
description: 'Repository to post status to' | |
required: false | |
type: string | |
default: 'datadog-api-spec' | |
has-integration-label: | |
description: 'Whether the calling PR has ci/integrations label' | |
required: false | |
type: boolean | |
default: false | |
secrets: | |
PIPELINE_GITHUB_APP_ID: | |
required: false | |
PIPELINE_GITHUB_APP_PRIVATE_KEY: | |
required: false | |
DD_API_KEY: | |
required: true | |
DD_CLIENT_API_KEY: | |
required: true | |
DD_CLIENT_APP_KEY: | |
required: true | |
SLEEP_AFTER_REQUEST: | |
required: false | |
concurrency: | |
group: integration-typescript-${{ inputs.target-branch || github.head_ref }} | |
cancel-in-progress: true | |
jobs: | |
test_integration: | |
runs-on: ubuntu-latest | |
if: > | |
(github.event_name == 'pull_request' && | |
github.event.pull_request.draft == false && | |
!contains(github.event.pull_request.labels.*.name, 'ci/skip') && | |
!contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/') && | |
contains(github.event.pull_request.labels.*.name, 'ci/integrations')) || | |
github.event_name == 'schedule' || | |
(github.event_name == 'workflow_call' && inputs.has-integration-label) | |
services: | |
datadog-agent: | |
image: gcr.io/datadoghq/agent:latest | |
ports: | |
- 8126:8126 | |
env: | |
DD_API_KEY: ${{ secrets.DD_API_KEY }} | |
DD_HOSTNAME: "none" | |
DD_INSIDE_CI: "true" | |
steps: | |
- name: Get GitHub App token | |
if: github.event_name == 'pull_request' | |
id: get_token | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: ${{ secrets.PIPELINE_GITHUB_APP_ID }} | |
private-key: ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }} | |
repositories: ${{ inputs.target-repo || 'datadog-api-spec' }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
repository: DataDog/datadog-api-client-typescript | |
ref: ${{ inputs.target-branch || github.ref }} | |
- name: Post pending status check | |
if: github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') && (inputs.enable-status-reporting || github.event_name != 'workflow_call') | |
uses: DataDog/github-actions/post-status-check@v2 | |
with: | |
github-token: ${{ steps.get_token.outputs.token }} | |
repo: ${{ inputs.target-repo || 'datadog-api-spec' }} | |
status: pending | |
context: ${{ inputs.status-context || 'integration' }} | |
- name: Set up Node 16 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'yarn' | |
- name: Run integration tests | |
run: ./run-tests.sh | |
shell: bash | |
env: | |
CI: "true" | |
DD_AGENT_HOST: localhost | |
DD_ENV: prod | |
DD_SERVICE: datadog-api-client-typescript | |
DD_TAGS: "team:integrations-tools-and-libraries" | |
DD_TRACE_PROPAGATION_STYLE_INJECT: "datadog" | |
DD_TEST_CLIENT_API_KEY: ${{ secrets.DD_CLIENT_API_KEY }} | |
DD_TEST_CLIENT_APP_KEY: ${{ secrets.DD_CLIENT_APP_KEY }} | |
RECORD: "none" | |
SLEEP_AFTER_REQUEST: ${{ secrets.SLEEP_AFTER_REQUEST || vars.SLEEP_AFTER_REQUEST }} | |
- name: Post failure status check | |
if: failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') && (inputs.enable-status-reporting || github.event_name != 'workflow_call') | |
uses: DataDog/github-actions/post-status-check@v2 | |
with: | |
github-token: ${{ steps.get_token.outputs.token }} | |
repo: ${{ inputs.target-repo || 'datadog-api-spec' }} | |
status: failure | |
context: ${{ inputs.status-context || 'integration' }} | |
- name: Post success status check | |
if: "!failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/') && (inputs.enable-status-reporting || github.event_name != 'workflow_call')" | |
uses: DataDog/github-actions/post-status-check@v2 | |
with: | |
github-token: ${{ steps.get_token.outputs.token }} | |
repo: ${{ inputs.target-repo || 'datadog-api-spec' }} | |
status: success | |
context: ${{ inputs.status-context || 'integration' }} |