Skip to content

Nightly pipeline normal session e2e tests #9

Nightly pipeline normal session e2e tests

Nightly pipeline normal session e2e tests #9

---
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 }}