Skip to content

Commit

Permalink
Merge branch 'unstable' into sync-reward
Browse files Browse the repository at this point in the history
  • Loading branch information
ensi321 committed Feb 23, 2024
2 parents 4470cd5 + 8943ab6 commit 017565e
Show file tree
Hide file tree
Showing 336 changed files with 4,574 additions and 3,754 deletions.
6 changes: 6 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,9 @@ ignore:
- "supporting-docs"
- "docker"
- ".github"

flags:
unit:
paths:
- ".*"
carryforward: true
13 changes: 13 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# We use these images during sim and e2e tests
# TODO: Upgrade Geth once the Nethermind issue is resolved else it's causing following error
# Rejected peer id=134e2c1a76745626 addr=192.168.0.3:9052 conn=staticdial err="useless peer"
GETH_DOCKER_IMAGE=ethereum/client-go:v1.11.6
# Use either image or local binary for the testing
GETH_BINARY_DIR=
LIGHTHOUSE_DOCKER_IMAGE=sigp/lighthouse:v4.6.0-amd64-modern-dev
# We can't upgrade nethermind further due to genesis hash mismatch with the geth
# https://github.com/NethermindEth/nethermind/issues/6683
NETHERMIND_DOCKER_IMAGE=nethermind/nethermind:1.18.2
# We mostly use mainnet for unit testing
# Changing this value may impact the tests which are written with mainnet in mind
LODESTAR_PRESET=mainnet
13 changes: 13 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ module.exports = {
},
//ignore rules on destructured params
{selector: "variable", modifiers: ["destructured"], format: null},
{
selector: "import",
format: ["camelCase", "PascalCase"],
},
],
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-floating-promises": "error",
Expand All @@ -76,6 +80,7 @@ module.exports = {
"@typescript-eslint/no-unsafe-call": "error",
"@typescript-eslint/no-unsafe-member-access": "error",
"@typescript-eslint/no-unsafe-return": "error",
"@typescript-eslint/no-unused-expressions": "error",
"@typescript-eslint/no-unused-vars": ["error", {varsIgnorePattern: "^_", argsIgnorePattern: "^_"}],
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/restrict-template-expressions": [
Expand All @@ -94,6 +99,7 @@ module.exports = {
"func-call-spacing": "off",
// Force to add names to all functions to ease CPU profiling
"func-names": ["error", "always"],
"import/namespace": "off",
//if --fix is run it messes imports like /lib/presets/minimal & /lib/presets/mainnet
"import/no-duplicates": "off",
"import/no-extraneous-dependencies": [
Expand Down Expand Up @@ -204,6 +210,13 @@ module.exports = {
"import/no-named-as-default-member": "off",
},
},
{
files: ["**/perf/**/*.ts"],
rules: {
// A lot of benchmarks just need to execute expressions without using the result
"@typescript-eslint/no-unused-expressions": "off",
},
},
{
files: ["**/test/**/*.test.ts"],
plugins: ["vitest"],
Expand Down
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
custom: https://gitcoin.co/grants/6034/lodestar-typescript-eth-consensus-client-by-chains
custom: https://etherscan.io/address/0xb4da52336092db22fe8e036866d59c6488604f89
2 changes: 1 addition & 1 deletion .github/actions/core-dump/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ runs:
shell: sh

- name: Backup core dump
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: core-dump
path: /cores/*
5 changes: 5 additions & 0 deletions .github/actions/dotenv/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: "Setup env variables using .env file"
description: "Load .env file from root of repo and setup for CI runner"
runs:
using: "node20"
main: index.js
29 changes: 29 additions & 0 deletions .github/actions/dotenv/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const fs = require("fs");
const core = require("@actions/core");
const dotEnv = require("dotenv");
const envFile = ".env.test";

if (!fs.existsSync(envFile)) {
core.setFailed("File .env not found");
}

const result = dotEnv.config({path: envFile});
if (result.error) {
core.setFailed(result.error.message);
} else {
core.setOutput("env", result.parsed);
core.info("Env file loaded");
core.info("Populating env variables...");

for (const key in result.parsed) {
const value = result.parsed[key];
core.info(`${key}=${value}`);

// Export variable
core.exportVariable(key, value);

// Set to output so it can be used in as the input for the next job/step
core.setOutput(key, value);

}
}
58 changes: 58 additions & 0 deletions .github/actions/setup-and-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: "Setup and build the repo"
description: "A task to reuse setup steps during multiple jobs"
inputs:
node:
description: Node version
required: true

runs:
using: "composite"
steps:
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{inputs.node}}
check-latest: true
cache: yarn

- name: Node.js version
id: node
shell: bash
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT

- name: Restore build
uses: actions/cache/restore@v4
id: cache-build-restore
with:
path: |
node_modules
packages/*/node_modules
lib/
packages/*/lib
packages/*/.git-data.json
key: ${{ runner.os }}-node-${{ inputs.node }}-${{ github.sha }}

- name: Install & build
if: steps.cache-build-restore.outputs.cache-hit != 'true'
shell: bash
run: yarn install --frozen-lockfile && yarn build

- name: Build
if: steps.cache-build-restore.outputs.cache-hit == 'true'
shell: bash
run: yarn build

- name: Check Build
shell: bash
run: yarn check-build

- name: Cache build artifacts
uses: actions/cache@master
with:
path: |
node_modules
packages/*/node_modules
lib/
packages/*/lib
packages/*/.git-data.json
key: ${{ runner.os }}-node-${{ inputs.node }}-${{ github.sha }}
4 changes: 2 additions & 2 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ jobs:
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-debug-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
working-directory: 'nodejs'

- name: Upload build to artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: nodejs-debug-build-${{ github.event.inputs.version }}
path: nodejs-debug-build-${{ github.event.inputs.version }}
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
runs-on: ubuntu-latest
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:
echo "Deploying ref: $DEPLOY_REF"
# Checkout the correct ref being deployed
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ env.DEPLOY_REF }}

- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: "https://registry.npmjs.org"
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
runs-on: buildjet-4vcpu-ubuntu-2204
needs: npm
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand Down Expand Up @@ -49,10 +49,10 @@ jobs:
if: needs.tag.outputs.is_rc == 'true'
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Needs full depth for changelog generation
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
Expand Down Expand Up @@ -132,7 +132,7 @@ jobs:
needs: [tag, npm]
if: needs.tag.outputs.is_rc == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: scripts/await-release.sh ${{ needs.tag.outputs.tag }} rc 900
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish-stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand Down Expand Up @@ -55,10 +55,10 @@ jobs:
if: needs.tag.outputs.is_stable == 'true'
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Needs full depth for changelog generation
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
Expand Down Expand Up @@ -132,7 +132,7 @@ jobs:
needs: [tag, npm]
if: needs.tag.outputs.is_stable == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: scripts/await-release.sh ${{ needs.tag.outputs.tag }} latest 900
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
Expand Down
15 changes: 4 additions & 11 deletions .github/workflows/test-sim-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ jobs:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: yarn
cache: yarn
- name: Node.js version
id: node
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -90,13 +90,6 @@ jobs:
ENGINE_PORT: 8551
ETH_PORT: 8661

- name: Upload debug log test files
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: debug-test-logs
path: packages/beacon-node/test-logs

- name: Pull geth withdrawals
run: docker pull $GETH_WITHDRAWALS_IMAGE

Expand Down Expand Up @@ -144,7 +137,7 @@ jobs:

- name: Upload debug log test files
if: ${{ always() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: debug-test-logs
path: packages/beacon-node/test-logs
Loading

0 comments on commit 017565e

Please sign in to comment.