Split the VC into crates making it more modular (#6453) #11453
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
# Test that local testnet starts successfully. | |
name: local testnet | |
on: | |
push: | |
branches: | |
- unstable | |
pull_request: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
dockerfile-ubuntu: | |
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build Docker image | |
run: | | |
docker build --build-arg FEATURES=portable -t lighthouse:local . | |
docker save lighthouse:local -o lighthouse-docker.tar | |
- name: Upload Docker image artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: lighthouse-docker | |
path: lighthouse-docker.tar | |
retention-days: 3 | |
run-local-testnet: | |
runs-on: ubuntu-22.04 | |
needs: dockerfile-ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Kurtosis | |
run: | | |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list | |
sudo apt update | |
sudo apt install -y kurtosis-cli=1.3.1 | |
kurtosis analytics disable | |
- name: Download Docker image artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: lighthouse-docker | |
path: . | |
- name: Load Docker image | |
run: docker load -i lighthouse-docker.tar | |
- name: Start local testnet | |
run: ./start_local_testnet.sh -e local -c -b false && sleep 60 | |
working-directory: scripts/local_testnet | |
- name: Stop local testnet and dump logs | |
run: ./stop_local_testnet.sh local | |
working-directory: scripts/local_testnet | |
- name: Start local testnet with blinded block production | |
run: ./start_local_testnet.sh -e local-blinded -c -p -b false && sleep 60 | |
working-directory: scripts/local_testnet | |
- name: Stop local testnet and dump logs | |
run: ./stop_local_testnet.sh local-blinded | |
working-directory: scripts/local_testnet | |
- name: Upload logs artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-local-testnet | |
path: | | |
scripts/local_testnet/logs | |
retention-days: 3 | |
doppelganger-protection-success-test: | |
needs: dockerfile-ubuntu | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Kurtosis | |
run: | | |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list | |
sudo apt update | |
sudo apt install -y kurtosis-cli=1.3.1 | |
kurtosis analytics disable | |
- name: Download Docker image artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: lighthouse-docker | |
path: . | |
- name: Load Docker image | |
run: docker load -i lighthouse-docker.tar | |
- name: Run the doppelganger protection success test script | |
run: | | |
./doppelganger_protection.sh success | |
working-directory: scripts/tests | |
- name: Upload logs artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-doppelganger-protection-success | |
path: | | |
scripts/local_testnet/logs | |
retention-days: 3 | |
doppelganger-protection-failure-test: | |
needs: dockerfile-ubuntu | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Kurtosis | |
run: | | |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list | |
sudo apt update | |
sudo apt install -y kurtosis-cli=1.3.1 | |
kurtosis analytics disable | |
- name: Download Docker image artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: lighthouse-docker | |
path: . | |
- name: Load Docker image | |
run: docker load -i lighthouse-docker.tar | |
- name: Run the doppelganger protection failure test script | |
run: | | |
./doppelganger_protection.sh failure | |
working-directory: scripts/tests | |
- name: Upload logs artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-doppelganger-protection-failure | |
path: | | |
scripts/local_testnet/logs | |
retention-days: 3 | |
# This job succeeds ONLY IF all others succeed. It is used by the merge queue to determine whether | |
# a PR is safe to merge. New jobs should be added here. | |
local-testnet-success: | |
name: local-testnet-success | |
runs-on: ubuntu-latest | |
needs: [ | |
'dockerfile-ubuntu', | |
'run-local-testnet', | |
'doppelganger-protection-success-test', | |
'doppelganger-protection-failure-test', | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check that success job is dependent on all others | |
run: ./scripts/ci/check-success-job.sh ./.github/workflows/local-testnet.yml local-testnet-success |