1- name : Run Integration Tests
1+ name : Reusable Integration Test Workflow
22
33permissions :
44 contents : read
1616 - master
1717 schedule :
1818 - cron : " 0 3 * * *"
19+ workflow_call :
20+ inputs :
21+ target-branch :
22+ description : ' Branch to checkout and test (defaults to the calling branch)'
23+ required : false
24+ type : string
25+ default : ' '
26+ enable-status-reporting :
27+ description : ' Whether to post status checks to datadog-api-spec repo'
28+ required : false
29+ type : boolean
30+ default : false
31+ status-context :
32+ description : ' Context for status checks'
33+ required : false
34+ type : string
35+ default : ' integration'
36+ target-repo :
37+ description : ' Repository to post status to'
38+ required : false
39+ type : string
40+ default : ' datadog-api-spec'
41+ secrets :
42+ PIPELINE_GITHUB_APP_ID :
43+ required : false
44+ PIPELINE_GITHUB_APP_PRIVATE_KEY :
45+ required : false
46+ DD_API_KEY :
47+ required : true
48+ DD_CLIENT_API_KEY :
49+ required : true
50+ DD_CLIENT_APP_KEY :
51+ required : true
52+ SLEEP_AFTER_REQUEST :
53+ required : false
1954
2055concurrency :
2156 group : integration-${{ github.head_ref }}
@@ -48,17 +83,19 @@ jobs:
4883 with :
4984 app-id : ${{ secrets.PIPELINE_GITHUB_APP_ID }}
5085 private-key : ${{ secrets.PIPELINE_GITHUB_APP_PRIVATE_KEY }}
51- repositories : datadog-api-spec
86+ repositories : ${{ inputs.target-repo || ' datadog-api-spec' }}
5287 - name : Checkout code
5388 uses : actions/checkout@v3
89+ with :
90+ ref : ${{ inputs.target-branch || github.ref }}
5491 - name : Post pending status check
55- if : github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')
92+ 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')
5693 uses : DataDog/github-actions/post-status-check@v2
5794 with :
5895 github-token : ${{ steps.get_token.outputs.token }}
59- repo : datadog-api-spec
96+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
6097 status : pending
61- context : integration
98+ context : ${{ inputs.status-context || ' integration' }}
6299 - name : Install Java
63100 uses : actions/setup-java@v3
64101 with :
@@ -85,18 +122,18 @@ jobs:
85122 RECORD : " none"
86123 SLEEP_AFTER_REQUEST : " ${{ vars.SLEEP_AFTER_REQUEST }}"
87124 - name : Post failure status check
88- if : failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')
125+ 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')
89126 uses : DataDog/github-actions/post-status-check@v2
90127 with :
91128 github-token : ${{ steps.get_token.outputs.token }}
92- repo : datadog-api-spec
129+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
93130 status : failure
94- context : integration
131+ context : ${{ inputs.status-context || ' integration' }}
95132 - name : Post success status check
96- if : " !failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')"
133+ 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') "
97134 uses : DataDog/github-actions/post-status-check@v2
98135 with :
99136 github-token : ${{ steps.get_token.outputs.token }}
100- repo : datadog-api-spec
137+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
101138 status : success
102- context : integration
139+ context : ${{ inputs.status-context || ' integration' }}
0 commit comments