Skip to content

Nightly pipeline logic e2e tests #562

Nightly pipeline logic e2e tests

Nightly pipeline logic e2e tests #562

---
name: Nightly pipeline logic e2e tests
on:
workflow_dispatch:
schedule:
- cron: '00 21 * * *'
push:
branches:
- 'release-*'
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-test-aleph-node:
name: Build test aleph-node
uses: ./.github/workflows/_build-aleph-node.yml
with:
ref: ${{ github.ref }}
production: false
build-chain-bootstrapper-test:
name: Build chain-bootstrapper
uses: ./.github/workflows/_build-chain-bootstrapper.yml
with:
ref: ${{ github.ref }}
production: false
build-aleph-e2e-client:
needs: [check-vars-and-secrets]
name: Build aleph-e2e-client image
uses: ./.github/workflows/_build-aleph-e2e-client.yml
with:
ref: ${{ github.ref }}
secrets: inherit
run-e2e-tests:
name: Run e2e tests
needs:
- build-test-aleph-node
- build-chain-bootstrapper-test
- build-aleph-e2e-client
uses: ./.github/workflows/_run-e2e-tests.yml
with:
# yamllint disable-line rule:line-length
artifact-aleph-e2e-client-image: ${{ needs.build-aleph-e2e-client.outputs.artifact-name-image }}
artifact-aleph-node-image: ${{ needs.build-test-aleph-node.outputs.artifact-name-image }}
# yamllint disable-line rule:line-length
artifact-chain-bootstrapper-image: ${{ needs.build-chain-bootstrapper-test.outputs.artifact-name-image }}
run-recover-after-abft-update-test:
needs:
- build-test-aleph-node
- build-chain-bootstrapper-test
name: Run recovery test after abft update
runs-on: [self-hosted, Linux, X64, medium]
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Download test node from GH artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.build-test-aleph-node.outputs.artifact-name-binary }}
path: target/release/
- name: Download chain-bootstrapper from GH artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.build-chain-bootstrapper-test.outputs.artifact-name-binary }}
path: target/release/
- name: Run test
timeout-minutes: 15
run: |
./.github/scripts/test_python_general.sh \
--aleph-node ../target/release/aleph-node \
--chain-bootstrapper ../target/release/chain-bootstrapper \
--testcase test_recover_after_abft_update
check-nightly-pipeline-completion:
needs: [run-e2e-tests, run-recover-after-abft-update-test]
name: Check e2e test suite completion
if: ${{ !cancelled() }}
runs-on: ubuntu-20.04
steps:
- name: All e2e 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-notification:
name: Slack notification
runs-on: ubuntu-20.04
needs: [check-nightly-pipeline-completion]
if: >
!cancelled() &&
github.event_name != 'workflow_dispatch'
steps:
- name: Send Slack message
uses: Cardinal-Cryptography/github-actions/slack-notification@v7
with:
notify-on: "failure"
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_DEV_ONDUTY }}