Nightly pipeline logic e2e tests #559
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 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 }} |