Commit d1ab7217 authored by Gyanendra Mishra's avatar Gyanendra Mishra Committed by GitHub

ci: test GitHub actions (#333)

After this PR the following will exist in Circle

1. Markdown links checker
2. Some k8s tests both nightly and per pr
3. Arm64 Starlark Test - can't find a runner on GH

I will look into closing them in a separate PR

---------
Co-authored-by: default avatarBarnabas Busa <busa.barnabas@gmail.com>
parent 76e34245
......@@ -88,21 +88,6 @@ setup_kurtosis_k3s: &setup_kurtosis_k3s
# images), so we run everything inside a single job.
# See also: https://discuss.circleci.com/t/can-docker-images-be-preserved-between-jobs-in-a-workflow-without-a-manual-load-save/23388/12
jobs:
run_starlark:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD}
lint:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis lint ${PWD}
run_starlark_arm64:
executor: ubuntu_vm
resource_class: arm.medium
......@@ -111,205 +96,30 @@ jobs:
- checkout
- run: kurtosis run ${PWD}
besu-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/besu-all.yaml)"
erigon-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/erigon-all.yaml)"
ethereumjs-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/ethereumjs-all.yaml)"
geth-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/geth-all.yaml)"
lighthouse-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/lighthouse-all.yaml)"
lodestar-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/lodestar-all.yaml)"
mix:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mix.yaml)"
nethermind-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/nethermind-all.yaml)"
nimbus-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/nimbus-all.yaml)"
prysm-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/prysm-all.yaml)"
reth-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/reth-all.yaml)"
teku-all:
executor: ubuntu_vm
resource_class: xlarge
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/teku-all.yaml)"
mev:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mev.yaml)"
mev_mock:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mev-mock.yaml)"
mev_k8s:
executor: ubuntu_vm
steps:
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mev.yaml)"
nimbus_mev:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/nimbus-mev.yaml)"
- run: kurtosis run ${PWD} "$(cat ./.github/tests/mev.yaml)"
mix_with_tools_k8s:
executor: ubuntu_vm
steps:
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mix-with-tools.yaml)"
mix_with_tools_docker:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/mix-with-tools.yaml)"
parallel_key_store_generation_1:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/parallel-keystores-1.yaml)"
parallel_key_store_generation_2:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/parallel-keystores-2.yaml)"
parallel_key_store_generation_3:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/parallel-keystores-3.yaml)"
disable_peer_scoring:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/disable-peer-scoring.yaml)"
petra:
executor: ubuntu_vm
steps:
- <<: *setup_kurtosis
- checkout
- run: kurtosis run ${PWD} "$(cat ./.circleci/tests/petra.yaml)"
- run: kurtosis run ${PWD} "$(cat ./.github/tests/mix-with-tools-mev.yaml)"
workflows:
nightly_tests:
when: << pipeline.parameters.should-enable-check-latest-version-workflow >>
jobs:
- besu-all
- erigon-all
- ethereumjs-all
- geth-all
- lighthouse-all
- lodestar-all
- mix
- nethermind-all
- nimbus-all
- prysm-all
- reth-all
- teku-all
- nimbus_mev
- mev_k8s:
<<: *setup_kurtosis_k3s
- mix_with_tools_k8s:
<<: *setup_kurtosis_k3s
- petra
- parallel_key_store_generation_1
- parallel_key_store_generation_2
- parallel_key_store_generation_3
- disable_peer_scoring
per_pr_test:
when: << pipeline.parameters.should-enable-build-workflow >>
jobs:
# -- PR check jobs ------------------------------------------
- kurtosis-docs-checker/check-docs:
should-check-changelog: false
markdown-link-check-config-json: |
......@@ -325,33 +135,11 @@ workflows:
ignore:
- main
- run_starlark:
filters:
branches:
ignore:
- main
- run_starlark_arm64:
filters:
branches:
ignore:
- main
- lint:
filters:
branches:
ignore:
- main
- mev:
filters:
branches:
ignore:
- main
- mev_mock:
filters:
branches:
ignore:
- main
- mev_k8s:
<<: *setup_kurtosis_k3s
......@@ -360,12 +148,6 @@ workflows:
ignore:
- main
- mix_with_tools_docker:
filters:
branches:
ignore:
- main
- mix_with_tools_k8s:
<<: *setup_kurtosis_k3s
filters:
......
participants:
- el_client_type: geth
cl_client_type: teku
- el_client_type: nethermind
cl_client_type: prysm
- el_client_type: erigon
cl_client_type: nimbus
- el_client_type: besu
cl_client_type: lighthouse
- el_client_type: reth
cl_client_type: lodestar
- el_client_type: ethereumjs
cl_client_type: teku
additional_services:
- tx_spammer
- blob_spammer
- el_forkmon
- beacon_metrics_gazer
- dora
- prometheus_grafana
- goomy_blob
- full_beaconchain_explorer
- custom_flood
name: Nightly test Workflow
on:
schedule:
- cron: "0 2 * * *" # This schedules the workflow to run at 02:00 UTC every day
jobs:
list-yamls:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@4
- id: set-matrix
run: echo "::set-output name=matrix::$(ls ./.github/tests/*.yaml | jq -R -s -c 'split("\n")[:-1]')"
run_with_args:
needs: list-yamls
strategy:
matrix:
file_name: ${{ fromJson(needs.list-yamls.outputs.matrix) }}
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup 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 kurtosis-cli
kurtosis analytics disable
- name: Run Starlark
run: kurtosis run ${{ github.workspace }} --args-file ${{ matrix.file_name }}
name: CI
on:
pull_request:
concurrency:
group: "tests-${{ github.ref }}"
cancel-in-progress: true
jobs:
run_starlark:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup 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 kurtosis-cli
kurtosis analytics disable
- name: Run Starlark
run: kurtosis run ${{ github.workspace }}
run_with_args:
strategy:
matrix:
file_name:
[
"./.github/tests/mev.yaml",
"./.github/tests/mev-mock.yaml",
"./.github/tests/mix-with-tools.yaml",
]
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup 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 kurtosis-cli
kurtosis analytics disable
- name: Run Starlark
run: kurtosis run ${{ github.workspace }} --args-file ${{ matrix.file_name }}
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup 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 kurtosis-cli
kurtosis analytics disable
- name: Kurtosis Lint
run: kurtosis lint ${{ github.workspace }}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment