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,20 @@ 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+ repository : DataDog/datadog-api-client-java
91+ ref : ${{ inputs.target-branch || github.ref }}
5492 - name : Post pending status check
55- if : github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')
93+ 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')
5694 uses : DataDog/github-actions/post-status-check@v2
5795 with :
5896 github-token : ${{ steps.get_token.outputs.token }}
59- repo : datadog-api-spec
97+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
6098 status : pending
61- context : integration
99+ context : ${{ inputs.status-context || ' integration' }}
62100 - name : Install Java
63101 uses : actions/setup-java@v3
64102 with :
@@ -85,18 +123,18 @@ jobs:
85123 RECORD : " none"
86124 SLEEP_AFTER_REQUEST : " ${{ vars.SLEEP_AFTER_REQUEST }}"
87125 - name : Post failure status check
88- if : failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')
126+ 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')
89127 uses : DataDog/github-actions/post-status-check@v2
90128 with :
91129 github-token : ${{ steps.get_token.outputs.token }}
92- repo : datadog-api-spec
130+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
93131 status : failure
94- context : integration
132+ context : ${{ inputs.status-context || ' integration' }}
95133 - name : Post success status check
96- if : " !failure() && github.event_name == 'pull_request' && contains(github.event.pull_request.head.ref, 'datadog-api-spec/generated/')"
134+ 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') "
97135 uses : DataDog/github-actions/post-status-check@v2
98136 with :
99137 github-token : ${{ steps.get_token.outputs.token }}
100- repo : datadog-api-spec
138+ repo : ${{ inputs.target-repo || ' datadog-api-spec' }}
101139 status : success
102- context : integration
140+ context : ${{ inputs.status-context || ' integration' }}
0 commit comments