Nightly pipeline normal session e2e tests #71
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
--- | |
name: Nightly pipeline normal session e2e tests | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '00 22 * * *' | |
concurrency: | |
group: "${{ github.ref }}-${{ github.workflow }}" | |
cancel-in-progress: true | |
jobs: | |
check-vars-and-secrets: | |
name: Check vars and secrets | |
uses: ./.github/workflows/_check-vars-and-secrets.yml | |
secrets: inherit | |
build-production-node-and-runtime: | |
needs: [check-vars-and-secrets] | |
name: Build production node and runtime artifacts (PR version) | |
uses: ./.github/workflows/_build-production-node-and-runtime.yml | |
build-production-node-and-e2e-client-image: | |
needs: [build-production-node-and-runtime] | |
name: Build production node and e2e client docker image | |
uses: ./.github/workflows/_build-production-node-and-e2e-client-image.yml | |
secrets: inherit | |
with: | |
build-production-node: true | |
build-synthetic-network-docker: true | |
build-e2e-client: true | |
run-e2e-high-out-latency: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Run high out-latency test | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
with: | |
test-case: high_out_latency_for_all | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network.yml | |
timeout-minutes: 40 | |
run-e2e-sync-test-one_node_catching_up_and_then_becoming_necessary_for_consensus: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - one node catching up and then | |
becoming necessary for consensus | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::one_node_catching_up_and_then_becoming_necessary_for_consensus | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-e2e-sync-test-one_node_catching_up: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - one node catching up | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::one_node_catching_up | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-e2e-sync-test-into_two_groups_and_one_quorum_and_switch_quorum_between_them: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - into two groups and one quorum | |
and switch quorum between them | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::into_two_groups_and_one_quorum_and_switch_quorum_between_them | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-e2e-sync-test-into_multiple_groups_of_two: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - into multiple groups of two | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::into_multiple_groups_of_two | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-e2e-sync-test-into_two_equal_size_groups_with_no_quorum: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - into two equal size groups | |
with no quorum | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::into_two_equal_size_groups_with_no_quorum | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-e2e-sync-test-into_two_groups_one_with_quorum: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Sync test using synthetic-network - into two groups one with | |
quorum | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
env: | |
NETWORK: "synthetic-network" | |
NODE_URL: "ws://Node0:9943" | |
VALIDATOR_COUNT: 7 | |
with: | |
test-case: test::sync::into_two_groups_one_with_quorum | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network_sync-tests.yml | |
node-count: 7 | |
min-validator-count: 7 | |
timeout-minutes: 35 | |
run-major-sync-test: | |
needs: [build-production-node-and-runtime] | |
name: Run major sync test | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
- name: Download release artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: aleph-production-node | |
path: target/release/ | |
- name: Run test | |
timeout-minutes: 15 | |
env: | |
ALEPH_NODE_BINARY: ../target/release/aleph-node | |
run: ./.github/scripts/test_major_sync.sh | |
run-e2e-no-quorum-without-high-out-latency: | |
needs: [build-production-node-and-e2e-client-image] | |
name: Run high out-latency for every quorum | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
- name: Run e2e test | |
uses: ./.github/actions/run-e2e-test | |
with: | |
test-case: high_out_latency_for_each_quorum | |
image-path: aleph-release-synthetic-docker | |
node-image: aleph-node:syntheticnet | |
compose-file: docker/docker-compose.synthetic-network.yml | |
timeout-minutes: 35 | |
check-nightly-pipeline-completion: | |
needs: [ | |
run-e2e-high-out-latency, | |
run-e2e-no-quorum-without-high-out-latency, | |
run-major-sync-test, | |
] | |
name: Check nightly test suite completion | |
if: ${{ !cancelled() }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: All nightly tests completed | |
run: | | |
# due to the fact GitHub treats skipped jobs as success, and when any of dependant | |
# jobs fail, this check will be skipped, we need to check status manually | |
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}' | |
slack: | |
name: Slack notification | |
runs-on: ubuntu-20.04 | |
needs: [check-nightly-pipeline-completion] | |
if: ${{ !cancelled() }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Send Slack message | |
uses: ./.github/actions/slack-notification | |
with: | |
notify-on: "always" | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_NIGHTLY_PIPELINE }} |