Skip to content

Commit 3365a34

Browse files
ci: add nightly contract tests with long-running tests and Slack notification
Co-Authored-By: tanderson@launchdarkly.com <tanderson@launchdarkly.com>
1 parent 6b1d9fc commit 3365a34

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Nightly Contract Tests
2+
3+
on:
4+
schedule:
5+
- cron: "0 4 * * *" # every day at 4am UTC
6+
workflow_dispatch:
7+
8+
jobs:
9+
nightly-contract-tests:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
14+
- name: Shared CI Steps
15+
uses: ./.github/actions/ci
16+
with:
17+
workspace_path: 'lib/sdk/server'
18+
java_version: 8
19+
20+
- name: Build Contract Tests
21+
shell: bash
22+
run: make build-contract-tests -C lib/sdk/server
23+
24+
- name: Start Contract Test Service
25+
shell: bash
26+
run: make start-contract-test-service-bg -C lib/sdk/server
27+
28+
- name: Run Contract Tests with Long-Running Tests
29+
shell: bash
30+
run: make run-contract-tests -C lib/sdk/server TEST_HARNESS_PARAMS="-enable-long-running-tests"
31+
32+
notify-slack-on-failure:
33+
runs-on: ubuntu-latest
34+
if: ${{ always() && needs.nightly-contract-tests.result == 'failure' }}
35+
needs:
36+
- nightly-contract-tests
37+
steps:
38+
- name: Send Slack notification
39+
uses: slackapi/slack-github-action@v2.1.0
40+
with:
41+
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
42+
webhook-type: incoming-webhook
43+
payload: |
44+
{
45+
"blocks": [
46+
{
47+
"type": "section",
48+
"text": {
49+
"type": "mrkdwn",
50+
"text": ":warning: *Nightly Contract Tests Failed* :warning:\nThe nightly contract tests (with long-running tests enabled) failed on `main`."
51+
},
52+
"accessory": {
53+
"type": "button",
54+
"text": {
55+
"type": "plain_text",
56+
"text": "View failed run"
57+
},
58+
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
59+
}
60+
}
61+
]
62+
}

0 commit comments

Comments
 (0)