Nightly pipeline normal session e2e tests #9
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 | |
store-production-node-and-runtime: | |
name: Store production node and runtime in Mainnet bucket | |
runs-on: ubuntu-20.04 | |
needs: [build-production-node-and-runtime] | |
steps: | |
- name: Checkout aleph-node source code | |
uses: actions/checkout@v3 | |
- name: Store production node and runtime | |
uses: ./.github/actions/store-node-and-runtime | |
with: | |
profile: production | |
aws-access-key-id: ${{ secrets.AWS_MAINNET_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_MAINNET_SECRET_ACCESS_KEY }} | |
aws-bucket: ${{ secrets.CI_MAINNET_S3BUCKET_NAME }} | |
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@v3 | |
- 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: 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@v3 | |
- 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@v3 | |
- 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@v3 | |
- name: Send Slack message | |
uses: ./.github/actions/slack-notification | |
with: | |
notify-on: "always" | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_NIGHTLY_PIPELINE }} |