nightly-e2e-main #350
This file contains 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
# Run integration tests nightly on main | |
name: nightly-e2e-main | |
on: | |
workflow_dispatch: | |
schedule: | |
# run every day at 03:00 UTC | |
# ┌───────────── minute (0 - 59) | |
# │ ┌───────────── hour (0 - 23) | |
# │ │ ┌───────────── day of the month (1 - 31) | |
# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) | |
# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) | |
# │ │ │ │ │ | |
# │ │ │ │ │ | |
# │ │ │ │ │ | |
# * * * * * | |
- cron: "0 3 * * *" | |
jobs: | |
compatibility-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # get all history for all branches and tags | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E compatibility test | |
# Run compatibility tests for different consumer (-cv) and provider (-pv) versions. | |
# Combination of all provider versions with consumer versions are tested. | |
# For new versions to be tested add/modify -pc/-cv parameters. | |
run: go run ./tests/e2e/... --tc compatibility -pv latest -pv v4.0.0 -pv v3.3.3-lsm -cv latest -cv v4.0.0 -cv v3.3.0 | |
happy-path-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E happy-path test | |
run: go run ./tests/e2e/... --tc happy-path | |
changeover-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E changeover test | |
run: go run ./tests/e2e/... --tc changeover | |
democracy-reward-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E democracy-reward tests | |
run: go run ./tests/e2e/... --tc democracy-reward | |
democracy-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E democracy tests | |
run: go run ./tests/e2e/... --tc democracy | |
slash-throttle-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E slash-throttle tests | |
run: go run ./tests/e2e/... --tc slash-throttle | |
multiconsumer-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 40 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E multi-consumer tests | |
run: go run ./tests/e2e/... --tc multiconsumer | |
consumer-misbehaviour-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E consumer-misbehaviour tests | |
run: go run ./tests/e2e/... --tc consumer-misbehaviour | |
consumer-double-sign-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E consumer-double-sign tests | |
run: go run ./tests/e2e/... --tc consumer-double-sign | |
consumer-double-downtime-test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- uses: actions/checkout@v4 | |
- name: Checkout LFS objects | |
run: git lfs checkout | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" # The Go version to download (if necessary) and use. | |
- name: E2E consumer-double-downtime tests | |
run: go run ./tests/e2e/... --tc consumer-double-downtime | |
nightly-test-fail: | |
needs: | |
- happy-path-test | |
- changeover-test | |
- democracy-reward-test | |
- democracy-test | |
- slash-throttle-test | |
- multiconsumer-test | |
- consumer-misbehaviour-test | |
- consumer-double-sign-test | |
- consumer-double-downtime-test | |
if: ${{ failure() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Notify Slack on failure | |
uses: slackapi/[email protected] | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
BRANCH: ${{ github.ref_name }} | |
RUN_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
COMMITS_URL: "${{ github.server_url }}/${{ github.repository }}/commits/${{ github.ref_name }}" | |
with: | |
payload: | | |
{ | |
"blocks": [ | |
{ | |
"type": "header", | |
"text": { | |
"type": "plain_text", | |
"text": "E2E tests failed❗", | |
"emoji": true | |
} | |
}, | |
{ | |
"type": "section", | |
"text": { | |
"type": "mrkdwn", | |
"text": ":skull: Nightly E2E tests for `${{ env.BRANCH }}` failed.\n\nSee the <${{ env.RUN_URL }}|run details> and the <${{ env.COMMITS_URL }}|latest commits> possibly related to the failure." | |
} | |
} | |
] | |
} |