.github/workflows/nightly-kind-test.yml #204
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: KIND network tests | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "00 08 * * 1-5" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
DOCKERHUB_PASSWORD: "${{ secrets.DOCKERHUB_PASSWORD }}" | |
RUN_ID: ${{ github.run_id }} | |
RUN_ATTEMPT: ${{ github.run_attempt }} | |
USERNAME: ${{ github.event.pull_request.user.login || github.actor }} | |
GITHUB_TOKEN: ${{ github.token }} | |
GH_SELF_HOSTED_RUNNER_TOKEN: ${{ secrets.GH_SELF_HOSTED_RUNNER_TOKEN }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
BUILD_INSTANCE_SSH_KEY: ${{ secrets.BUILD_INSTANCE_SSH_KEY }} | |
GIT_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }} | |
EXTERNAL_ETHEREUM_HOST: "https://json-rpc.${{ secrets.SEPOLIA_EXTERNAL_HOST }}?key=${{ secrets.SEPOLIA_API_KEY }}" | |
EXTERNAL_ETHEREUM_CONSENSUS_HOST: "https://beacon.${{ secrets.SEPOLIA_EXTERNAL_HOST }}" | |
GCP_API_KEY_HEADER: "X-goog-api-key" | |
jobs: | |
setup: | |
uses: ./.github/workflows/setup-runner.yml | |
with: | |
username: ${{ github.event.pull_request.user.login || github.actor }} | |
runner_type: builder-x86 | |
secrets: inherit | |
build: | |
needs: setup | |
runs-on: ${{ github.event.pull_request.user.login || github.actor }}-x86 | |
outputs: | |
e2e_list: ${{ steps.e2e_list.outputs.list }} | |
bench_list: ${{ steps.bench_list.outputs.list }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: { ref: "${{ env.GIT_COMMIT }}" } | |
- uses: ./.github/ci-setup-action | |
with: | |
concurrency_key: build-x86 | |
# prepare images locally, tagged by commit hash | |
- name: "Build E2E Image" | |
timeout-minutes: 40 | |
run: | | |
./bootstrap.sh image-e2e | |
test: | |
needs: build | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
test: | |
- transfer.test.ts | |
- reorg.test.ts | |
steps: | |
- uses: actions/checkout@v4 | |
with: { ref: "${{ env.GIT_COMMIT }}" } | |
- uses: ./.github/ci-setup-action | |
- name: Setup and Test | |
uses: ./.github/ensure-tester | |
timeout-minutes: 90 | |
with: | |
runner_type: 16core-tester-x86 | |
ttl: 90 | |
run: | | |
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }} | |
docker pull aztecprotocol/end-to-end:${{ env.GIT_COMMIT }} | |
FORCE_COLOR=1 INSTALL_METRICS=false ./spartan/scripts/test_kind.sh "./src/spartan/${{ matrix.config.test }}" 16-validators.yaml | |
proving-test: | |
needs: build | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 90 | |
steps: | |
- uses: actions/checkout@v4 | |
with: { ref: "${{ env.GIT_COMMIT }}" } | |
- uses: ./.github/ci-setup-action | |
- name: Setup and Test | |
uses: ./.github/ensure-tester | |
timeout-minutes: 90 | |
with: | |
runner_type: 128core-tester-x86 | |
ttl: 90 | |
run: | | |
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }} | |
docker pull aztecprotocol/end-to-end:${{ env.GIT_COMMIT }} | |
INSTALL_TIMEOUT=45m FORCE_COLOR=1 INSTALL_METRICS=false \ | |
./spartan/scripts/test_kind.sh ./src/spartan/proving.test.ts 1-validator-with-proving || true | |
kind-sepolia-test: | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- test: 4epochs.test.ts | |
values: ci-sepolia.yaml | |
runner_type: 16core-tester-x86 | |
timeout: 40 | |
steps: | |
- uses: actions/checkout@v4 | |
with: { ref: "${{ env.GIT_COMMIT }}" } | |
- name: Setup and KIND Network Test against Sepolia | |
timeout-minutes: ${{ matrix.config.timeout }} | |
uses: ./.github/ensure-tester | |
with: | |
runner_type: ${{ matrix.config.runner_type }} | |
spot_strategy: None # use on-demand machines | |
ttl: ${{ matrix.config.timeout }} | |
run: | | |
until docker info &>/dev/null; do sleep 1; done | |
export CI=1 NO_CACHE=0 | |
artifact="kind-network-${{matrix.config.test}}-$(./spartan/bootstrap.sh hash)" | |
if ci3/test_should_run "$artifact"; then | |
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }} | |
docker pull aztecprotocol/end-to-end:${{ env.GIT_COMMIT }} | |
# Set the sepolia run variables | |
export EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }} | |
export EXTERNAL_ETHEREUM_CONSENSUS_HOST=${{ env.EXTERNAL_ETHEREUM_CONSENSUS_HOST }} | |
export EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY=${{ secrets.SEPOLIA_API_KEY }} | |
export EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER=${{ env.GCP_API_KEY_HEADER }} | |
export L1_DEPLOYMENT_PRIVATE_KEY=${{ secrets.SEPOLIA_L1_DEPLOYMENT_PRIVATE_KEY }} | |
export L1_ACCOUNTS_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}" | |
SEPOLIA_RUN=true INSTALL_METRICS=false ./spartan/scripts/test_kind.sh "./src/spartan/${{ matrix.config.test }}" "${{ matrix.config.values }}" | |
ci3/cache_upload_flag "$artifact" | |
fi | |
- name: Copy Network Logs | |
if: always() | |
run: scripts/copy_from_tester spartan/scripts/logs/test_kind.log test_kind.log || true | |
- name: Upload Network Logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: kind-network-test-${{ matrix.config.values }}-${{ matrix.config.test }}.log | |
path: test_kind.log | |
success-check: | |
runs-on: ubuntu-20.04 | |
needs: | |
- test | |
- proving-test | |
if: always() | |
steps: | |
- name: Report overall success | |
env: | |
# We treat any skipped or failing jobs as a failure for the workflow as a whole. | |
FAIL: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} | |
run: | | |
if [[ $FAIL == true ]]; then | |
echo "Test failed." | |
exit 1 | |
fi | |
notify: | |
needs: | |
- success-check | |
runs-on: ubuntu-20.04 | |
if: ${{ github.ref == 'refs/heads/master' && failure() }} | |
steps: | |
- name: Send notification to aztec3-ci channel if workflow failed on master | |
uses: slackapi/slack-github-action@v1.25.0 | |
with: | |
payload: | | |
{ | |
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_NOTIFY_WORKFLOW_TRIGGER_URL }} |